Page 44 -
P. 44
2 - PROJECT LIFE CYCLE AND ORGANIZATION
most, in conjunction with features that are added subsequently. The analysis and architect phases may be revisited
based on demonstrations of the deliverable product increments.
As illustrated in Figure 2-4, increments 2, 3, and 4 add features that build on previously built features in
accordance with prioritization of the feature sets. Each increment of product capability is verified with respect to
the requirements for that feature set during the Test stage and validated by demonstrating incremental capabilities
for the appropriate stakeholders during the Demo Working Product stage. Verification techniques during the Test
stage may include testing, analysis, inspection, and review.
Iteration may occur (or not) within the Design, Construct, and Iterate stages and within the Test stage, as well
as between the two phases.
In Figure 2-4, the feedback arrows from development of an increment to a previous one indicates that adding
new features may expose defects to be fixed in the previous increment or that refactoring of a previous increment
may be needed to better accommodate the features being added.
The number of features included in a feature set, the time allocated for development of the features, and the
resources to be applied provide a trade-off space of features, time, and resources. The duration of each incremental
development phase is often limited to one month or less so that feedback is provided frequently and corrections
can be made before defects are propagated to larger units of software, which would require more rework.
Development of increments may be overlapped in time, as indicated in Figure 2-4, or they may be developed
sequentially. Incremental development can be overlapped when a partially completed increment provides a basis
to allow the following phase to proceed, and provided there are sufficient resources to permit development of two
increments to proceed concurrently.
Incremental software development may be on the predictive side of the life cycle continuum or on the adaptive
side of the life cycle continuum, depending upon how the prioritized feature sets are managed. Predictive product
development establishes the feature sets and the priorities among them prior to starting the incremental development
phases, perhaps to satisfy schedule and resource constraints when the requirements are known and are stable;
changes to feature sets are tightly controlled. An adaptive approach allows features and feature sets designated for
subsequent increments to be reprioritized and modified prior to starting the incremental phase in which they will be
implemented but features are tightly controlled during development of the corresponding increment.
®
• Iterative-incremental product development. Section 2.4.2.3 of the PMBOK Guide states that most
life cycles develop the product both iteratively and incrementally. As indicated in Sections 2.4.2.2 and
2.4.2.3 of this extension, iterative and incremental development are distinct concepts that allow software
project life cycles to combine project iterations and product increments in various ways.
2.4.2.4 Adaptive Life Cycles
®
According to Section 2.4.2.4 of the PMBOK Guide: “Adaptive life cycles (also known as change-driven or agile
methods) are intended to facilitate change and require a high degree of ongoing stakeholder involvement.”
32 ©2013 Project Management Institute. Software Extension to the PMBOK Guide Fifth Edition
®