407.0 Determine Lifecycle Model
There are many ways to execute a project. Although classic waterfall (analysis, design, construct, test and implement) can be used on all projects, it is not always the best model for all projects. Depending on the characteristics of the project, other lifecycle models may be more effective. The following descriptions will help provide some guidance on the best fit for the lifecycle model and templates to use for the project.
-
Waterfall. Waterfall is a linear model where each phase happens sequentially over time. It is best utilized when you have a pretty good chance to gather most all relevant requirements at one time. Likewise, you need to think you can get most all of the technical design correct on the first pass. If you do a poor job of gathering requirements and designing the solution, you will end up with a lot of rework and pain since the waterfall model focuses on these areas one time.
-
Iterative. This is a specific model for custom software development. A classic iterative model might be more applicable if the requirements and design elements will be difficult to gather in one pass. In this case, the initial requirements are gathered and then a partial solution is designed, constructed and tested. Then the project team uses the partial solution and what they have learned so far, to collect additional requirements and then design and build more of the solution. The project stops when all of the requirements and gathered and a full solution is built.
-
Package / vendor selection & implementation. This model is specifically used if your project consists of the evaluation and selection of packages or vendors. There are times when a package or vendor selection is a part of a larger project. In that case the package / vendor selection activities would be added to another schedule model.
-
Enhancements. This model is used when you are modifying an existing solution. It assumes that many of the design decisions are already made since the new work needs to integrate into a solution that already exists. If the enhancement is very large, it is possible that the iterative development model could be used. Otherwise, enhancements are typically done with a Waterfall model.
-
Releases. This model is used when you are batching together a number of changes into one release package. This is usually the case when you have a number of enhancements. The Release model allows you to select a specific set of enhancements to implement, work on all of them at once, and then implement the entire set of enhancements all at once.
-
Research and development. This model is used when you are performing research on some type of solution. The analysis consists of determining your requirements and seeing how you can satisfy the requirements. The project may end after the research is completed, or else you can proceed to a development phase. The development phase is used to create a short-term solution that simply determines if the solution is viable. The activities are streamlined since the solution will be thrown away after the final proposal is made.
-
Agile. The Agile model is similar to iterative but contains a number of unique processes and techniques. Agile is a good model to use when your project is highly exploratory – in other words, you need to uncover the requirements and the nature of the solution as the project progresses. It is also a good model if you have a highly collaborative relationship with your client and if your project team can work quickly and adapt to changes swiftly. Many developers state that Agile should be the first choice for software development and that the other lifecycle models should only be used if the alternative is substantially better option than Agile. (This statement is open to debate.)
In addition, since the waterfall model has been around the longest time, and because it is the easiest to understand, it is usually the default model of choice unless one of the other lifecycle models is especially appealing.
There are other lifecycle models as well, but these are the major models that are described in the LifecycleStep product.
[Previous - 406.0 Determine Project Size] [Next - 408.0 Project Roles and Responsibilities]
Product info: project management, project lifecycle, analysis phase, , design phase, lifecycle design, construct phase, test phase, implementation phase, project lifecycle consulting, project lifecycle methodology, Agile