Exciting (for .Net/VS Developers) .Net 4 and VS 2010

Posted October 2, 2008 by rharbridge
Categories: Development, News

Tags: ,

Just wanted to point out that a few days ago Microsoft unvieled some information on the new .Net and Visual Studio enhancements they are preparing for 2010.


That’s right I am super excited to play with the new stuff before I have even gone through every new feature released in the 2008 packages. (Personally one of the things I have been loving recently is the CSS and styling UI enhancements see Daniel Moth’s good screen cast of these here (if interested): mms://wm.microsoft.com/ms/uk/msdn/nuggets/v2_CSSinVisualStudio2008_Moth.wmv)

I really like many of the new focuses that Microsoft is putting forward and the way Team Foundation Server is improving the rate of process adoption in many development groups. The further they get with the enhancements the easier it is to develop and really focus on developing (if you are a developer) without being as distracted by the troubles of communication and tracking.

Even if you aren’t a developer this is still good news, because the more they work towards that UML approach and enhance the ways Business Analysts and Consultants can communicate their requirements and expectations to developers the more powerful the developed solutions will be.

Excited for the future,
Richard Harbridge


Google’s New Browser (What it really means.)

Posted September 11, 2008 by rharbridge
Categories: General

Tags: , , , ,

Yes Google has a new browser. Yes it is as fast as Firefox, and yes IE 8 is coming out soon and is also looking pretty enticing.

But the real thing here that is interesting isn’t the functionality that has been released for Google and IE 8’s browsers yet. The real interesting things are what will happen next.

Microsoft has been at this for a long time, and they have gotten very smart about it. The newer products like SharePoint 2007 and many of their online services work best with IE. That is: They have features that ONLY work in IE. This forces many users (especially in business) to use IE in order to get the full power out of their everyday applications.

Google’s new browser isn’t really about the features it has, it’s about the fact that now there is nothing stopping google from releasing features on google’s search engine, youtube, google ‘office’, and other google owned sites/applications that we use everyday that ONLY Google Chrome works with. Let’s face it if Google did make a move like this, then you would see a real upset in the browser wars. Because this means that Google now has some of the most popular and widely used internet resources (youtube and google search) advocating google chrome.

Microsoft has been keeping their work in this regard (works best in IE) limited to the business world for the most part. Google would be dropping that kind of concept right into the public domain.

To me, that is far more interesting than anything else about Google’s new browser,
Richard Harbridge

How to Handle Angry, Frustrated or Upset Clients

Posted August 21, 2008 by rharbridge
Categories: Client Management, Improving Client Relationship

Tags: , ,

This sounds really simple.

It is simple.

At a glance everyone knows that when someone is angry, whether they are a client, co-worker, your boss, or your mom the way to handle it is with patience, by being receptive, appreciative and by being empathic to their needs. The hard part (I think) is finding a way to turn the situation into a positive one (and trust me, every situation can be turned into a positive or beneficial one).

So lets go over the ‘Steps’ for how to handle these kinds of potentially dangerous situations and provide some advice for how to turn it into an advantage.


    Let the other person know you want to hear about it. Do not use any body language or say anything that could be interpreted as “I don’t want to hear it”, or “I don’t have time for this.”

    You would not believe how many people I see who pride themselves on their conflict and client management skills who immediately cross their arms (maybe subconsciously) when someone begins ranting about some issue. Your instinctual reaction is going to be to become defensive, protective, or try to avoid it. Crush this feeling and instead EMBRACE the issue.You  want them to immediately feel that they have a valid point and that you are there to help them. First appearances and reactions are often the cause for the most conflicts because even if you embrace the issue after, they will remember it took THEM to convince you that they were right.


    But what if the client or staff member is wrong? Don’t worry about it, if you know they are wrong you can convince them of it without ever taking an opposing stance. Phrases like “I can understand your frustration with that”, “Absolutely you have every right to be frustrated.”, “I would be frustrated if that happened to me…” etc all build on you agreeing with them. You cannot win an argument so never let it become one.


    So now let’s say that now that you FULLY understand their issue (if you don’t then you should not try to convince them or resolve it) and you want to turn it into something positive.

    At this point the advantage is that you have created NO negative effects from this conversation. The best way to convince a person they are mistaken is to get them to convince themselves. The way I like to do this is simply to point out new ideas that they might not have thought of, but to do it modestly.Be confident. If it is a real issue make sure they feel like you not only understand it, but will also ensure that everything that can be done about the issue will be done. “We will do everything we can” may seem like a good phrase but most people (especially if they are interacting with you most) would prefer to hear “I will put all my attention on this immediately and make sure that we do everything we can to resolve this issue as soon as possible.” It’s exact, it’s confident and it provides PERSONAL assurance that not only do you understand the issue but that it’s IMPORTANT. After all, they would not have brought it up unless they thought it was important right?

  4. GIVE THEM AN ESCAPE ROUTE (if you convinced them they made a mistake) AND COMPLIMENT THEM

    What’s important here is that as soon as the person realizes they are mistaken they will want to escape the conversation, or excuse their response. That’s why it’s important to give them escape routes with your words. “I wonder if we offer a solution like that… Let me check… Oh gosh, we sure do, what a silly place to keep that information, I could not even find it and I work here… I will make sure to talk to communications about this…” is an example of a phrasing that excuses them while providing value to the ‘complaint’ or issue so they don’t feel like they wasted their time.

    You can even do it so that it helps make them feel more appreciated. Phrases like “It’s people like you who help our business”, “You’ve really put a lot of thought and effort into explaining this, and I want you to know I really appreciate it.”, “This is great, now we can make sure we don’t run into issues like this in the future all because of the effort and time you have put in to help us resolve it…” etc etc


    If you followed the above steps there is absolutely no reason to ever avoid speaking about the time they were upset or try to convince them later that it was less important. Instead just make sure when it is brought up (because they won’t forget) that you talk about the good things, like how fast you responded, how you understand and emphasize with their issue previously and how you (or the resolver) personally dealt with it and put large amounts of effort into making sure the client received the best service possible.

Happiness is bliss, and everyone wants to be happy,
Richard Harbridge

Beating Big Projects

Posted July 30, 2008 by rharbridge
Categories: Project Management, Project Planning

Tags: , ,

Big Teams are Big Trouble

Your boss comes and gives you a (big fat) sizable undertaking. We all run into situations where you have to meet a deadline that does not allow you to accomplish the project with small project teams. So the first instinct is to add manpower to the project and increase the size of the project team to reduce the time it will take to complete the project. This is a very dangerous assumption and is a faulty one. I am not going to go into all of the details, but I will make a reference to the ‘Mythical Man Month’ which was presented by Frederick P. Brooks Jr. a long time ago. Basically the concept of the man month argument is that men (project members) and months (time) are interchangeable. Frederick P. Brooks Jr. explains that this is not indeed true. In fact adding men (project members) will almost always increase the months (time) it takes to complete a project.

The greater the size of the team the more intercommunication required, the more partitioning of work and delegation of tasks, and the harder it is to determine performance and status of the project.

So what do you do if it’s a large project? The worst way to approach it is to accept that it is a large project and as such will require a large team and so you just make the large enough that the time should be decreased. This is called the brute force approach where you shovel resources into the project in order to try and decrease the total time it will take to accomplish it. This always results in greater cost, more issues, and all sorts of concerns when it comes to upgrading and building upon the solution.

The simple answer or solution is that there should never be such a thing as a large project. That if the analysts, architects, and those who create the concepts of how the solution, or system will function do their jobs correctly the result will be either many small projects, or it will be broken down enough that separating aspects of the solution into individual projects should be possible. The truth is that difficult if not impossible deadlines always happen and that real world scenarios are rarely so simple.

For these special circumstances you create a manageable project team. That is a project team that is well within your abilities and that of your project management staff to manage effectively. This team will be your powerhouse that will do most of the work. To decrease the total time it takes to complete the project you add more resources. However, when you add these extra resources you make them supporting resources. They are extra satellite groups that provide support and assistance to the core project team.

This is not a new concept, Harlan Mills proposed it a long time ago, and I just think it’s always good to point it out from time to time. Harlan said that the most effective team for accomplishing large projects is one that is designed similarly to a surgeon’s team. Just scale his model out, and I believe it will result in the least costly and best end solution being completed. (This is my interpretation of his model, not his model word for word.)

  • The Surgeon
    The surgeon is the one who does most of the work; they have the education, training, and skills to do the best job, with the least amount of waste.
  • Co-Surgeon
    The co-surgeon thinks and evaluates the surgeons work. While often as skilled as the surgeon they often have less experience.
  • Administrator
    The administrator takes care of people, relationships, money and of course the necessary components. It’s the administrator’s job to ensure that the resources such as office space, staff, or objects that are required are provided and that everyone’s administrative needs are met.
  • Editor
    The editor takes care of documentation. While often the actual procedures, and work is completed by the surgeon, and much of the documentations important technical references are done by the surgeon the work of organizing that material and preparing it for others to read and understand.
  • Program Clerk
    The program clerk maintains records of the work completed, keeps up to date knowledge of the current status of the work being done and the technical properties of that work so that it can be interpreted and reused by both machinery and humans.
  • Secretary
    The secretary handles all project correspondence and primarily supports the administrator, editor and helps to co-ordinate communication for the support personnel.
  • Toolsmith
    The Toolsmith creates, maintains and upgrades the tools the surgeons will use. The toolsmith does not need to be directly included in the process of the ‘surgery’ but will be aware of the needs of the surgeon. Once the Toolsmith has defined a surgeon’s need they either find an existing tool for the surgeon that will satisfy the surgeons need, or create one for the surgeon. In a programming sense think of the Toolsmith as the person who creates the utilities that are made available to the Surgeon, but note that these utilities are more or less defined by the surgeon and his/her needs.
  • Tester
    The tester prepares test cases for the system as a whole (based off the functional specifications) as well as the day to day tests required for component testing and debugging.
  • Language Lawyer
    The language lawyer is your research staff. The individual who will optimize the work being done by find a neat and efficient way to do difficult, obscure, or tricky things. If there is a need he will also act as the individual who will find the relevant material and information to help improve a decision or aspect of the surgeons work.

While this concept was created to handle the management of information technology projects I believe it is universally applicable to all kinds of projects. The advantage of this system is that the surgeon (and often co-surgeon) need to understand the ‘surgery’ they will be doing, and why, or the project tasks and overall direction. But the support personnel should not need to know all the details resulting in a much greater conceptual integrity. (Limit the number of people who need to be responsible.)

So the secret to managing big projects that require (due to time constraints) a larger team is to use the surgeon approach as much as possible. That way you can keep your projects as healthy and happy as possible.

Hope this helps,
Richard Harbridge

Corporate Memory – The Good, The Bad, and The Ugly

Posted July 29, 2008 by rharbridge
Categories: Project Management, Project Planning, Uncategorized

Tags: , , , , , ,

Throughout the world more and more businesses (regardless of type, or size) are creating initiatives, are planning the implementation of, are implementing, or have implemented corporate memory management and support systems. Some names relating to Corporate Memory Management and Support systems are knowledge base, knowledge sharing, knowledge capturing, lessons learned, collaboration centers, and so on and so forth.


The goal of these systems is simple: “Promote an environment that captures and shares the knowledge and experience gained by individuals, and collective groups to the organization as a whole in an organized manner so that everyone can benefit from the progress, work, and lessons learned generated on a daily basis.”

The benefits of something like that are obvious, novices can gain the insight and experience of veteran staff, new staff can find all the resources they need, the cost to manage, transfer knowledge, and train staff decreases while the capabilities of each staff member increases and as a result so will customer satisfaction.


The most common answer I hear to this is “by applying technology”. While I wish it was this easy, I assure you there is a very large amount more than just technology involved in providing a good Corporate Memory solution for any company. The technology is often an important tool that can be used to improve a corporate memory solution, but the reality is that the actual corporate memory solution can always be done, with or without technology.

This isn’t a new concept, companies have been doing it for a very long time, and those who have done it well have become exceedingly successful as a result.

The best way to create a corporate memory solution for your organization is rather simple. Just follow the few steps I outline below and you will have a much greater chance than if you missed one of these crucial items.

1. Don’t rely on technology to solve your problems.

You see this happen all the time. People hear about a content management (or document management), and collaboration system and often believe that by implementing this system you will have the automatic collection and sharing of all corporate data.

The truth is that the business processes, data to be collected, the communication and training, and the overall user acceptance of the system all play a far greater role than the technology does in a corporate memory management solution. The technology just supports these other areas that must be clearly defined, planned, and implemented in order to have a good corporate memory solution.

2. Information requires context to become knowledge.

This is important. Information is not knowledge. Information alone is unusable as corporate memory without context. The context provides a way for everyone to relate the information to something they can use. It’s the relationships to business processes, and metadata (related information) such as purpose, and how it can be applied that makes the information become knowledge that is usable by the individual, or organization.

So to implement a corporate memory solution for your organization you have to figure out what all of those business processes, purposes, and metadata will be. Don’t worry you don’t need to know all of it, just everything around the first information expected in the system and a plan to ensure that as more information comes in you will be able to keep up with that information’s context to ensure it becomes knowledge, and doesn’t remain information and just ‘clutters the shelf’.

3. Knowledge requires maintenance.

Many people forget that knowledge requires maintenance. It has to be constantly evaluated to see if it is still relevant, to ensure that the relationships and metadata are still appropriate and that they still provide a purpose and application in the business. Knowledge that isn’t well maintained falls into disarray, it becomes outdated, it degrades belief in the corporate memory solution as a whole, and most importantly it becomes unusable to the individual and organization. Without maintenance it becomes information with a pretty dress (and unlike fashion these outdated clothes don’t come back into style – zing!).

So make certain you have a good maintenance plan, and not just the technology, I am talking about communication, training, and of course the constant evaluation and analysis of corporate memory.

4. Corporate memory is organic.

Some people often think of corporate memory as data. Which in many ways it is, but the key is that it is organic data, which grows and changes overtime. This is a wonderful beautiful thing. What it means is that while your business grows, evolves, and changes the knowledge contained in corporate memory will grow, evolve and change with it.

What this means is that your corporate memory solution must be able to grow, evolve and change along with the corporate memory and your business. Things like a good maintenance plan (that is constantly evaluated) and a good framework for managing information context are integral to the success of a corporate memory solution.

5. You do not harvest knowledge, mine it, or fish for it.

Knowledge capturing and understanding that knowledge’s context cannot be achieved by harvesting, mining, or fishing. You can’t just harvest documents, mine them for the information you think is important and guess what contexts that knowledge can be used for. If you do that all you end up with is information. This as I mentioned earlier is unusable in a corporate memory solution.

Instead you need to create (forgive the bad analogy) the fertile field in which knowledge can grow and plant the seeds. Remember that knowledge is organic, and that initially while you set up the plan, framework and solution that it will change overtime and that it is impossible to guess how the knowledge will grow. This planning and hard work to create a solution is the field in my analogy. And the seeds are the first pilots, communication methods, and training aspects that you implement to get your corporate memory solution to grow (in the direction you want it to).

If you try and harvest, mine, or fish for the knowledge you will just end up with barren fields that don’t bear fruit. (Last one, I promise.)

If you carefully think about those points I am confident you will implement a corporate memory solution that will not only provide wonderful opportunity, growth and power to your organization and its members, but you will also have done it in such a way that you don’t have to redo all of the work a short time down the road just because the technology changes (which it always will).

Thank you and best of luck to your corporate memory solutions,
Richard Harbridge

Client Communication and Analysis

Posted July 26, 2008 by rharbridge
Categories: Client Management, Improving Client Relationship

Tags: , , ,

Clients are the lifeblood of most businesses, especially those in the professional services market. Keeping your clients happy, motivated, and involved is extremely important to your businesses continued success.

I have wrote some simple guidelines and tips that come from past experience when dealing with clients while acting in various roles or capacities.

If you are an analyst:

  • Experience can sometimes be a double edged sword.
    One of the things many of us fall into is the desire to blanket clients needs based on previous experiences. This is a very dangerous thing to do. When a client says I need an intranet that does this, this and this. Keep in mind that while that experience is a wonderful asset and may be spot on for what the client desires you have to make sure that the client actually wants that.
  • Product mapping before fully understanding the client’s needs.
    I know if your business sells a product that your first instinct is to map the clients needs to your product, but as an analyst you need to get the client needs before you map them. All of those needs if possible. One of the worst things that can happen is you miss an integral client need because either you didn’t ask, or you made an assumption.
  • Involve the client.
    Remember that your client always (although some may not seem it :P) the project to succeed. In fact most of them are willing to do some work on their side and you should always take advantage of this. It’s okay to push a little work onto the client, just make sure they know you can do it for them, but it might be faster, more effective or less costly if they do it internally.
  • Remain in contact.
    When analysis is finished Keep in Contact with the client. I know normally this is more of a consultant thing, but as an analyst you have interacted with them quite a bit, it is always good to keep that communication channel open because you can learn about all the requirements you missed, and help improve your analysis abilities so that you miss fewer and fewer requirements as time goes by.

If you are a consultant:

  • Update update update.
    Your client always wants to know how things are going (if a project is going on with them involved). Keep track of the progress of the work you are involved in and update the customer regularly. Now I am not saying spam them every day, then they will get frustrated, instead summarize things for them each week as an example so they know where things are. Feel free to play with the summary a little, and make sure you keep that personal touch.

    Example (my comments in italics):
    Hello John,

    How was your weekend? (I always like to update clients on Mondays, as Friday updates most do not read and Fridays are often very busy.) Did you get a chance to visit the cottage with Sally and Janie? It was perfect weather and I felt like jumping into a lake a couple times. (Write something personal to the client to help maintain a healthy corporate, yet personal relationship.)

    I am sending you this status update to let you know the current progress of the project. As always contact me if you have any questions.

    <<Template filled out of status report details, make it easy to read with a high level indicator such as Good, Running Behind, or Ahead of schedule or something like that.>>

    Thank you,
    Richard Harbridge

  • How to handle out of scope or change requests.
    If a client brings something new to your attention hear them out. Think about the item carefully. Is this important to the client? Will this make the application, service, or project better for the client? Was it really something that should be in scope? Keep in mind that you are there to help facilitate and manage the clients needs. If it’s something small typically I try and find a way to get it done, keeps the client happy and you know you tried your best and can honestly return with a response to the client that is either we can do it, or we can’t however I have another solution for you. Never return with a we can’t do it without an alternative. Let’s drop feature A, and we can include this new feature B.
  • Represent your companies interests and your clients interests.
    Always represent your own companies interests first. Let’s face it, that is the way the business world works, and it’s a good thing. However don’t forget most of the time as the consultant you are also the only person in your company that can properly represent your clients interests. If project scheduling is complicated by overdue items, or other projects impacting your own make sure that you try your best to ensure your client still gets what they need by the end of the day. Understand the impact it will have on your own business (normally fairly easy to do) and make sure if it does have an impact on the customer that they know about it as far ahead as possible and know that you personally are representing their interests and doing everything you can to ensure the project schedule is impacted as little as possible.

    A client is going to be upset if a deadline isn’t met either way. If you let them know and try to do everything you can to help reduce the impact I promise they won’t be MORE upset.

If you are supporting a client:

  • To a client they are all that matters.
    Remember that even though you may be supporting 20 clients that each and everyone of them believes their problems to be of the highest priority. Accept that and do your best to make the client feel like they are the number one priority.
  • Keep a knowledge base for issues and issue correction.
    I cannot count the number of times I have said to myself, I know we fixed this before, but I can’t remember how. Document fixes, and do it in a way that categorizes them and makes it possible to search, find, and apply the fixes to recurring issues. If you don’t have one make sure you get at the very least a change management and issue tracking application to help facilitate this.
  • Capture new feature requests or enhancement requests.
    Support often is notified by the client that something they are trying to do or want to do is not possible with the system. In these situations it may be an issue that needs to be corrected but often can be an enhancement or feature that would be great but isn’t part of the current delivery. In these situations capture the request, talk with the client and support them in the fact that it is not in the system and let them know you will look into it. Then submit it to the appropriate channels in your organization to create a Change Request, or to create new projects. Most of the work businesses get nowadays (due to competitive markets) comes from recurring clients.

I know alot of this seems obvious but sometimes it doesn’t hurt to be reminded of important things that will help your business keep happy, satisfied customers.

Helping one client at a time to make a better tomorrow (or some such),
Richard Harbridge

The Importance of Communication Planning

Posted July 25, 2008 by rharbridge
Categories: Change Management, Project Management, Project Planning

Tags: , , ,

Anytime you implement new technology, improve upon existing technology or simply intend to implement a project that impacts departments, or groups of people in any direct way you should always have a communication plan.

One of the biggest things I see often is a project reaching implementation (or sometimes after implementation, if your lucky a bit before) not having a sufficient communication plan (or any at all in some cases).

What is a communication plan? To me it is the planned method and pattern to which you will notify your target audience, and improve user response and acceptance. It has a target audience (or several) and the key messages or benefits that the target audience(s) are recieving from your new system.

It lets users know how they will be effected, when and how they can receive training, when the new system will impact them and/or be available, what tools they will have available to them, related resources to decrease load on trainers and administrators while providing users with the tools to evangelise and get excited about it on their own.

Letting the effected users know how it will effect their day to day jobs or their business processes in a planned manner will allow you to improve overall acceptance, understanding and decrease the resistance always encountered when a change is implemented.

So next time you write a project plan, or are working in a project find out if there is a communication plan, and if not, find out why, because odds are in almost every situation your project induces change, and without a plan for how to handle that change and communicate it to the effected audience the change will not be as well received.

Communicating my message to you,