Practice: Iterative Development |  |
Create a solution in increments. Each increment is completed in a fixed period of time, an iteration.
Relationships
Content References | How to Adopt the Iterative Development Practice Key Concepts Iteration Lifecycle Micro-Increments Retrospective Iteration Work Products Iteration Plan Work Items List Risk List Tasks Assess Results Manage Iteration Plan Iteration Guidance Iteration Burndown Guidelines Agile Estimation Assign Changes to an Iteration Conduct Project Retrospective Iteration Assessment Iteration Planning Managing Risks Managing Work Items Prioritizing Work Items
Inputs | [Project Definition and Scope] [Technical Architecture] [Technical Specification] [Technical Test Results]
Purpose
### Why adopt this practice? Today's software applications are too complex to allow you to sequentially define the requirements, come up with an architecture and design, do an implementation, carry out testing, and get it all right. Whether you use waterfall or iterative development approaches, your initial requirements, architecture, design, and code will be suboptimal. With waterfall development, you typically do not get meaningful feedback on what improvements can be made until it is so late in the project that it is too costly to make them. By contrast, dividing the project into a series of time-boxed iterations allows you to deliver capabilities that can be assessed by stakeholders at the end of each iteration. This approach provides rapid and timely feedback loops enabling issues to be addressed and improvements made at a lower cost while budget and time still allow, and before the project has gone so far ahead that major rework is required.
How to read this practice
The best way to read this practice is to first familiarize yourself with its overall structure: what it is in it, and how it is organized. Begin by making sure that the teams, including stakeholders, understand what the key concepts are, such as: Iteration Iteration Lifecycle Micro-Increments Retrospective Next, understand how the various participants in a project collaborate on an iterative development approach. The project manager facilitates the planning of the project iterations, coordinates interactions with the stakeholders, and keeps the project team focused on meeting the project objectives. Stakeholders help the project manager and the team on requirements prioritization in order to minimize project risks and maximize business value throughout the iterations. Their constant feedback also directs and improves the quality of the project outcome. The team commits to completing the work within each iteration. Understand how these groups collaborate when they perform the following tasks: Plan Iteration Manage Iteration Assess Results Also, understand what work products are used as inputs to and outputs from these tasks, such as work items list, risk list and Iteration Plan. Last, understand the various guidelines that explain how to plan, run, and assess iterations. For details on how to adopt this practice, see How to Adopt the Iterative Development Practice.
Additional Information
### Additional Resources For more information on the iterative development approach, see the following: Kruchten, P. From Waterfall to Iterative Development - A Challenging Transition for Project Managers. The Rational Edge, 2000. Retrieved from http://www-128.ibm.com/developerworks/rational/library/content/RationalEdge/dec00/FromWaterfalltoIterativeDevelopmentDec00.pdf. (Get Adobe Reader) Royce, W. Software Project Management: A Unified Framework. Addison Wesley. 1999.
This program and the accompanying materials are made available under the Eclipse Public License V1.0, which accompanies this distribution. EPF Copyright.