Page 46 -
P. 46
2 - PROJECT LIFE CYCLE AND ORGANIZATION
Table 2-2 Attributes of Iterations in Adaptive Software Project Life Cycles
Attribute Goal
Multi-Stage Iterations: Iterations incorporate as many Systematic elaboration of product scope
software engineering stages as desired (from analyze Reduction of technical risk using iterations of
to test).
construction, integration, and testing followed by
demonstration
Vertical Slices: Iterations can deliver increments of Detection and correction of integration issues and
functionality that include as many architecture interface defects on a continuing basis
components as desired.
Increased understanding for software developers,
customers, users, and other stakeholders based on
intermediate software deliverables
Short Durations: Iterations typically range in duration Timely oversight and corrective action based on
from daily to monthly. frequent demonstrations and reviews of evolving,
working software
Time Boxes: All iterations are planned to have the Simplified project planning
same duration. Improved estimates, based on accumulated data such
as velocity and burndown rate
Another important aspect of adaptive software project life cycles is the relationship among product scope, size,
cost, and schedule. For many adaptive life cycle projects, the cost and schedule for each iterative cycle are fixed
because the number of personnel and the time box are fixed for each iteration. The scope of work, and therefore
the product features that can be implemented on each iteration are adjusted to fit the constraints of fixed cost and
fixed schedule per iteration.
For adaptive software projects, the software to be developed is often characterized by stories, use cases, or
features implemented rather than modules or lines of code implemented. An adaptive project team quickly learns
how much work can be accomplished during each iterative cycle. Accumulated experience also allows teams to
accurately forecast how much time it will take to complete the implementation of a set of features. A measure of
productivity derived from the production rate, called velocity, is the ratio of work products produced to the amount
of effort expended by the team during an iteration cycle. Velocity measurements can be accumulated during
development iterations and used to track planned versus actual progress and to forecast final cost and completion
date, which is similar to the way earned value is used to track the construction phase of predictive life cycle projects.
A generic example of a software development method for an adaptive software project life cycle is illustrated in
Figure 2-5. This is a common software development pattern, often used as a basis for agile development methods.
Examples that use variations of this pattern include Scrum, eXtreme Programming, Feature-Driven Development,
Test-Driven Development, and the Dynamic System Development Method.
34 ©2013 Project Management Institute. Software Extension to the PMBOK Guide Fifth Edition
®