Page 48 -
P. 48
2 - PROJECT LIFE CYCLE AND ORGANIZATION
Select Next Specify
Feature Requirement(s)
Frequent
Team Iterations Prepare
Members and Daily Test Cases
Standups
Demonstrate Add Code for
Capabilities New Features,
Test, and
Potential Refactor
Product
Delivery
Figure 2-6. Internal Development Cycles for Adaptive Software Development
Figure 2-6 illustrates the internal details of the software development cycles in Figure 2-5. Note that features
are translated into requirements and that test cases are written before the code for new features is added (i.e., test-
driven development). Code is added and the software is tested (perhaps iteratively). The software is then refactored
to improve the structure without altering the behavior. Some software developers alter the sequence “add code
for new features, test, and refactor” to “test, add code for new features, test, and refactor.” The latter sequence
indicates an approach that iteratively applies the tests to the code, which will fail without the new features, the
code is iteratively written and the test scenarios are applied until the new code passes the tests; the code is then
refactored.
The next increment of tested, deliverable software is demonstrated to the customer, users, and other stakeholders
when the features in the feature set are implemented. The demonstration may result in acceptance of the software
or may result in requests for revisions. Corrections, additions, and adjustments to the software can usually be
accommodated during the next iteration cycle without disrupting the cadence of iterations because the iteration
cycles are short and the added functionality to be corrected is not large. The short-cycle feedback loop is efficient
because the software developers have all of the details in mind. The team velocity accounts for frequent, small
updates typically encountered in the daily iteration cycles.
In some cases, a correction or addition may be added to the product feature set for later consideration. The
iteration cycles depicted in Figure 2-5 continue until all features in the feature set are implemented or until the
customer, user, and other stakeholders are satisfied with the outcome; or perhaps until time, money, and resources
are exhausted. In the latter case, the most important features have been implemented according to the prioritization
of features in the feature set.
It should also be noted that the scope of an adaptive software project includes other elements of project scope,
as appropriate to the needs of the project, such as architectural design, independent verification and validation,
configuration management, and quality assurance and quality control.
36 ©2013 Project Management Institute. Software Extension to the PMBOK Guide Fifth Edition
®