Project Management MethodsThere are all kinds of projects, and methods used to manage and organize them. Experts analyze types of projects, how they are managed and try to discover and report the reasons why some projects fail while others succeed. In the previous section, I talked about management of teams and how to have a healthy team so I'll avoid that concern in this section. This section concentrates on best practices and methods for managing projects. Best practices and methods that are most effective on a given project vary depending on the characteristics of the project. Project CharacteristicsBelow I have listed some major characteristics that will influence team performance on the project and therefore affect risk. In some cases, when the project in conceived, the technology to be used or tools to be used may not yet be determined. However some preliminary ideas in these areas should be available during the inception phase of the project for a rough estimate of risk.
Project PhasesMost projects in one form or another go through the following basic phases:
|
This is a brief description of a conventional project cycle. There have been many variations to this theme with regard to order and methodologies, but the work is essentially the same. If the above steps are taken one right after the other it is known as a typical waterfall development process.
Various project management or development methods allow for project corrections to be made at different points along the project's life cycle. Some methods allow for constant corrections while other methods allow for few corrections. Whether a greater frequency of corrections is worthwhile depends on the project characteristics and the risks involved. Projects that have high requirements risk should have more opportunity for project corrections.
The amount of project planning that should be done is dependent on the characteristics of the project. Larger projects and more complex projects should have more up front planning.
Projects that are complex should have a significant amount of project prototyping. This prototyping would normally be a throw away prototype which is used to test the technology and the ability of the team to use it. In this way the technological risk is mitigated without jeopardizing the project. This testing should be done early in the life of the project, normally during the inception phase, and possibly during the elaboration phase. This testing can be done by temporary subteams of one or two individuals.
Regardless of the size or complexity of the project delaying integration of parts of the system being worked on by different workers increases project risk. Therefore system integration should be done as often as is reasonably possible. This is because as more work is done, there may be more required to correct any wrong assumptions or errors made earlier in the project. If there is a high degree of confidence in correct communication between members of the team, this risk may be considered to be decreased, but it would be unwise to be overconfident in this area.
The comments about system integration are also true here. System testing should be planned or done before or during implementation. This is an important aspect regardless of the type of project.
I have not mentioned a word about quality and don't really consider it when picking a development method. This is because picking the right development method for the right project will determine the quality of the project to a large degree. There are also other methods to further assure quality such as testing of the system or product by a quality team. The quality team would be a separate team than the developement team and its sole purpose is to find defects in the system or to determine general product quality. This document will not delve deeply into quality assurance mechanisms since that is a subject that other books cover and volumes can be written about it.
Different management and project development methods allow for varying amounts and times of the following:
Some management methods include:
Although the Rational Unified process and extreme programming apply to software development, their development and management methods can be successfully applied to other types of projects.