Introduction to Life Cycle Selection


This series of posts is my set of notes on the Agile Practice Guide, a collaboration between the Agile Alliance and the Project Management Institute (PMI) as a supplement to PMI’s Project Management Body of Knowledge of more traditional project management methodology.

The current chapter I’m reviewing is chapter 2 on an introduction to agile, and the final section is a bridge to the next chapter 3 on Life Cycle Selection.   It contrasts agile to other types of life cycle such as predictive (i.e., traditional), iterative and incremental in terms of the rationale for choosing those other types of life cycle.   The choice usually comes down to one of two factors:

  • degree of uncertainty of technology
  • degree of uncertainty of requirements
  1. PREDICTIVE–Projects which have a low degree of uncertainty in terms of BOTH technology AND requirements, or to put it another way, projects which have clear and stable requirements and clear technical challenges with little difficulty can use a predictive life cycle.   This is where the bulk of the planning occurs up front, and executing occurs in a single plan in a highly sequential process, hence the alternate name of a waterfall methodology.
  2. ITERATIVE–An approach that allows feedback for unfinished work to improve and modify that work.   This is used if there is uncertainty in terms of the requirements so that these can be refined through the process of increments.
  3. INCREMENTAL–An approach that provides finished deliverables that the customer may be able to use immediately.   This is used if there is uncertainty in the use of technology because is focuses on that which is actually reliably useful (focus on quality).
  4. AGILE–An approach that is both iterative and incremental to refine work items and deliver frequently.

Iterative and incremental methods have evolved to reduce waste and rework because they add:

  • Very short feedback loops
  • Frequent adaptation of process
  • Re-prioritization
  • Regularly updated plans
  • Frequent delivery

Projects that have a low-to-medium level of uncertainty in terms of technology and/or requirements are considered COMPLICATED, and those that have a medium-to-high level of uncertainty level of uncertainty in terms of technology and/or requirements are considered COMPLEX (see the Stacey Complexity Model diagram in Figure 2.5 on p. 14 of the Agile Practice Guide).

Agile combines elements of iterative and incremental methods and works well for projects that:

  • Require research and development
  • Have high rates of change
  • Have unclear or unknown requirements, uncertainty, or risk
  • Have a final goal that is hard to describe

By building a small increment and then testing and reviewing it, the team can explore uncertainty at a low cost in a short time, reduce risk, and maximize business value delivery.

This uncertainty may be centered on three characteristics that typically have elements of high uncertainty:

  1. Product specification (is the right product being built?)
  2. Production capability (can the product be built this way?)
  3. Process suitability (is this an effective way for the team to work?)

However, if the degree of uncertainty of technology and/or requirements goes from high to very high, the project goes from COMPLEX to CHAOTIC, and may reach the limits to which project management can reliably deal with the project.   One of the variables (requirements or technology) needs to be contained in order to be able to deal with the project using a suitable life cycle.

This post is merely an introduction to the topic of project life cycles.   The next chapter, chapter 3, goes into the contrast between agile and the other three types of life cycles, predictive, incremental and iterative.  It is only after this chapter discussing the differences between these life cycles that the agile practice guide will focus on agile itself in terms of how to create an agile environment.

 

 

 

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: