Wednesday, October 26, 2005

The Value of Project Management

There are some companies that have built reputations for being able to consistently manage projects effectively. However, the vast majority of organizations have a more spotty reputation.

Does your organization have any of the following characteristics?
  • Projects completed late, overbudget, or not meeting the functionality requirements of your client
  • Weak standard processes and techniques used inconsistently by project managers
  • Project management is reactive, and not seen as providing value
  • The time required to manage projects proactively is not built into the workplan, since it is considered 'overhead'
  • Projects are 'successful' in spite of a lack of planning and project management, though heavy stress and overtime work throughout the life cycle.

Good project management discipline is the way to overcome these shortcomings. Having good project management skills does not mean you have no problems. It does not mean that risks go away. It does not mean that there are no surprises. The value of good project management is that you have standard processes in place to deal with all contingencies.

Project management processes and techniques are used to coordinate resources to achieve predictable results. Project management is an art and a science. Project management is a science in that it relies on proven and repeatable processes and techniques to achieve project success. It is an art because it has a lot to do with managing and relating to people, and requires intuitive skills to apply in situations that are totally unique for each project. A good project management methodology provides the framework, processes, guidelines and techniques to manage the people and the workload. A good methodology increases the odds of being successful, and therefore provides value to the organization, project and the project manager.

The value proposition for project management goes something like this. It takes time and effort to proactively manage a project. This cost is more than made up for over the life of the project by:

  • Resolving problems more quickly
  • Not working in areas that are outside of the scope of the project
  • Resolving future risk before the problems occur
  • Communicating and managing expectations with clients, team members and stakeholders more effectively
  • Building a higher quality product the first time.

People who complain that project management is a lot of 'overhead' forget the point. Your project is going to face issues. Do you want to proactively resolve them or figure them out as you go? Your project will face potential risks. Do you want to try to resolve them before they happen, or wait until the problems arise? Are you going to communicate proactively or deal with conflict and uncertainty caused by lack of project information? Are you going to manage scope or deal with cost and deadline overruns caused by doing more work than your budget covers? Are you going to build quality into your process, or fix problems later when they will be more costly to resolve?

The characteristics of the project are not going to change whether you use a formal project management process or not. What changes is how the events are dealt with when the project is in progress. Are they dealt with haphazardly and reactively, or proactively with a smoothly running process?

After reading this section so far, you might wonder why everyone does not utilize good project management techniques. Or you might think about yourself - why aren't you using them? There are probably a couple reasons.

  • Good project management requires an upfront investment of time and effort.Many people consider themselves to be 'doers'. They might not be as comfortable with their planning skills. Many times there is a tendency to discuss a problem, and then go out and fix it. This works when you have a five-hour change request. It doesn't work on a 5,000 hour project. Resist the urge to jump right in. The project will complete sooner if you properly plan it first and then have the discipline to manage the project effectively.
  • Your organization is not committed.It's hard to be a good project manager in an organization that doesn't value project management skills. For instance, if you take the time to create a Project Definition document, and your client asks why you were wasting your time doing it, then you probably are not going to be very excited about the planning process on your next project. To be effective, the entire organization must support a common project management process.
  • You don't know how to.You may find that the lack of project management processes is not a matter of will, but a matter of skill. Sometimes people are asked to manage projects without the training or the experience necessary. In those cases, they struggle without the right tools or training to manage projects effectively.
  • Senior managers thinks that project management is a tool.When you discuss project management with some managers, they initially think you are trying to implement a tool that allows you to be a better project manager. Actually, if it were a tool, you might have more luck convincing them of the value. Even though some aspects of project management, like the creation and management of the workplan, may utilize a tool, that is not where the value of project management is. When you start talking about processes, best practices and templates, some managers immediately start to think about overhead, delay and fluff. Like some project managers, they fail to immediately connect on the value that a methodology brings with it.
  • You may have been burned (or buried) in the past.A common criticism of methodology is that it is cumbersome, paper intensive and takes too much focus away from the work at hand. Sometimes this criticism is a feature of the first bullet point above. Other times, it is a legitimate concern, caused by not scaling the methodology to the size of your project. For instance, if you were required to develop a fifteen page Project Definition document even if your project is only 250 hours, you may have been turned off. However, this is not usually a methodology problem as much as it is a misapplication of the methodology.
  • There is a fear of control from team members.Many people like to be able to do their jobs creatively and with a minimum of supervision. They fear that formal project management techniques will result in tight controls that will take the creativity and fun out of the work. To a certain extent they are right. However, common processes and procedures eliminate some of the creativity in areas where you probably don't want it in the first place.
  • There is a fear of the loss of control from management.If you really want to effectively implement a project management discipline at your company, you must give a level of control and authority to the project manager. Some organizations, and middle managers especially, do not want to lose that control. They may want project managers to coordinate the projects, but the manager wants to make all the decisions and exercise all the control. Formal project management will not be possible in organizations where this fear is prevalent.

Some of these fears are natural and logical, while others are emotional and irrational. Although these may be reasons to be hesitant about using formal project management, they must be overcome. The bottom line on project management is this - if the result of project management was that projects would complete slower, cost more and have poor quality, it would not make sense to use it. In fact, the opposite is true - using sound project management techniques and processes will give you a higher likelihood that your project will be completed on time, within budget and to an acceptable level of quality.


That being said, when you use a project management process, be smart. Don't build the project management processes for a ten million dollar project if your project is only ten thousand dollars. Consider all aspects of how to manage a project, and build the right processes for your specific project.

Sunday, October 23, 2005

Gang of Four Design Patterns

Gang of Four is a group of 4 people who found all possible design pattern combinations for any programming language they are,

Creational patterns
  • Abstract factory
  • Builder
  • Factory methods
  • Prototype
  • Singleton

Structural patterns

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

Behavioural patterns

  • command
  • interpretor
  • iterator
  • mediator
  • memento
  • observer
  • state
  • strategy
  • template
  • visitor

I will try to post samples of each pattern and let us see how it goes.