Page 45 -
P. 45
2 - PROJECT LIFE CYCLE AND ORGANIZATION
As stated in Section 1.10 of this Software Extension, “agile” is not a project life cycle; it is a term used to
characterize certain attributes that adaptive life cycles share to varying degrees. Adaptive life cycles for software
projects are illustrated on the right side of the life cycle continuum in Figure 2-1 of this Software Extension.
Attributes of agility for adaptive life cycle software projects include, but are not limited to: 2
• Increments of working deliverable software are produced on a periodic basis.
• Durations of adaptive iteration cycles vary from daily to weekly to monthly, but usually not more than
monthly.
• Adaptive iteration cycles are often of the same duration (i.e., are “time boxed”) but some cycles may be
of longer or shorter duration by exception.
• Increments of working deliverable software are not necessarily produced by each iteration cycle—
increments and iterations are distinct.
• Requirements, design, and the software product emerge as the project evolves.
• A representative customer, customer’s representative, and/or knowledgeable user is involved on a
continuing basis; involvement includes observation of periodic demonstrations of working, deliverable
software at the ends of iterative development cycles that produce increments of working deliverable
software (i.e., on a daily, weekly, bi-weekly, or monthly basis). In addition, a representative customer,
customer’s representative, or knowledgeable user provides guidance for further product development
based on demonstrations of working deliverable software and the constraints on project scope (schedule,
budget, and resources).
• Adaptive software development teams are small (i.e., 10 or fewer members) and are self-organizing;
large projects include multiple small teams.
• All members of each software development team are assigned to one project at a time.
• Each software development team includes the generalists and specialists needed to accomplish the work
activities; functional experts may be involved periodically or as needed.
Some additional attributes of iterative software development that may be incorporated into an adaptive software
project life cycle are presented in Table 2-2.
The short duration of iterations allows rework to be integrated within the iterations rather than accumulated
as a large rework effort that should be accomplished at the end of software development. Performing rework in
small increments is more cost effective than the large amount of rework that typically occurs during the integration
and testing phases of a predictive life cycle for a software project because the software developers have all of the
details in mind and the amount of rework to be accomplished is small.
Adaptive project life cycles are particularly appropriate when a precise, early definition of customer needs
is difficult or when the technology is used in a way that is different than has historically been applied. Although
adaptive practices tend to improve overall quality and reduce total cost of ownership of software over its product
life cycle, the cost-of-quality curve differs from that of predictive software project life cycles. This point is discussed
further in Section 8 on Quality Management of this Software Extension.
©2013 Project Management Institute. Software Extension to the PMBOK Guide Fifth Edition 33
®