| <?xml version="1.0" encoding="UTF-8"?> |
| <org.eclipse.epf.uma:PracticeDescription xmi:version="2.0" |
| xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore" |
| xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.0" xmlns:epf="http://www.eclipse.org/epf" |
| epf:version="1.5.0" xmi:id="-Yvy3AKQTjSqBPNxsWkizkQ" |
| name="iterative_development,_LR_g4J9WEdy3Nc4rvuj7bA" guid="-Yvy3AKQTjSqBPNxsWkizkQ" |
| changeDate="2008-10-13T10:52:55.551-0700" version="7.2.0"> |
| <additionalInfo><h3>
 |
| Additional Resources
 |
| </h3>
 |
| <p>
 |
| For more information on the iterative development approach, see the following:
 |
| </p>
 |
| <ul>
 |
| <li>
 |
| Kruchten, P. <em>From Waterfall to Iterative Development - A Challenging Transition for Project Managers</em>. The
 |
| Rational Edge, 2000.
 |
| </li>
 |
| </ul>
 |
| <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
 |
| <p>
 |
| Retrieved from <a href="http://www-128.ibm.com/developerworks/rational/library/content/RationalEdge/dec00/FromWaterfalltoIterativeDevelopmentDec00.pdf">http://www-128.ibm.com/developerworks/rational/library/content/RationalEdge/dec00/FromWaterfalltoIterativeDevelopmentDec00.pdf</a>.&nbsp;&nbsp;(<a href="http://www.adobe.com/products/acrobat/alternate.html">Get Adobe Reader</a>)
 |
| </p>
 |
| </blockquote>
 |
| <ul>
 |
| <li>
 |
| Royce, W. <em>Software Project Management: A Unified Framework</em>. Addison Wesley. 1999.<br />
 |
| </li>
 |
| </ul></additionalInfo> |
| <problem><h3>
 |
| Why adopt this practice?
 |
| </h3>
 |
| <p>
 |
| The iterative approach differs from the traditional software development models, which assume that software development
 |
| proceeds from one phase to another in a sequential manner. For example, in traditional models one first completes the
 |
| requirements specification, which is "set in stone". When the requirements are fully completed, one proceeds to design,
 |
| and then on to the next phase. Towards the later phases of the traditional cycle, disparate software components are
 |
| integrated to produce the final product, and tested by quality engineers and users to remove bugs and validate
 |
| functionality.
 |
| </p>
 |
| <p>
 |
| The iterative approach is the single most significant improvement to the way we build software products in decades, and
 |
| has significantly improved project success because the feedback cycle is built into the software development lifecycle.
 |
| This is especially significant in the more complex applications that support more demanding stakeholders and more
 |
| complex business processes.
 |
| </p>
 |
| <p>
 |
| Iterations are used to reduce the risk of software development projects, and to deliver high value functionality to the
 |
| user early on in the lifecycle. You essentially divide up the project into subsets of functionality based on, for
 |
| example, use cases or use case scenarios. At the end of each iteration, you demonstrate or deliver these pieces of
 |
| functionality to stakeholders, so that they can use the features and provide feedback. This feedback can be
 |
| incorporated into future iterations. The iterative model embraces change through a feedback loop, whereas non-iterative
 |
| models seek to prevent changes, which in turn increases the risk that the developed system does not meet the
 |
| stakeholders' needs.
 |
| </p>
 |
| <p>
 |
| An iterative approach provides business value early on in the lifecycle, thus helping recoup the capital invested. It
 |
| also allows stakeholders to provide feedback while the project is going on, and not at the end when you have spent all
 |
| of the money and time allotted to the project.
 |
| </p></problem> |
| <application><p>
 |
| 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.
 |
| </p>
 |
| <p>
 |
| Begin by making sure that the teams, including stakeholders, understand what the key concepts are, such as:
 |
| </p>
 |
| <ul>
 |
| <li>
 |
| <a class="elementLink"
 |
| href="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/iteration_lifecycle_B16552E2.html"
 |
| guid="_DI_tICNaEdyCq8v2ZO4QcA">Iteration Lifecycle</a>
 |
| </li>
 |
| <li>
 |
| <a class="elementLink"
 |
| href="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/micro_increments_C8773066.html"
 |
| guid="_S80VwCNbEdyCq8v2ZO4QcA">Micro-Increments</a>
 |
| </li>
 |
| <li>
 |
| <a class="elementLink"
 |
| href="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/retrospective_B003F386.html"
 |
| guid="_2PfbIA4QEdy2q5zsU8WDnA">Retrospective</a>
 |
| </li>
 |
| </ul><br />
 |
| <br />
 |
| <p>
 |
| Next, understand how the various participants in a project collaborate on an iterative development approach.
 |
| </p>
 |
| <ul>
 |
| <li>
 |
| The <b>project manager</b> facilitates the planning of the project iterations, coordinates interactions with the
 |
| stakeholders, and keeps the project team focused on meeting the project objectives.
 |
| </li>
 |
| <li>
 |
| <b>Stakeholders</b> 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.
 |
| </li>
 |
| <li>
 |
| The <b>team</b> commits to completing the work within each iteration.
 |
| </li>
 |
| </ul><br />
 |
| <br />
 |
| <p>
 |
| Understand how these groups collaborate when they perform the following tasks:
 |
| </p>
 |
| <ol>
 |
| <li>
 |
| <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/tasks/plan_iteration_957C90DC.html"
 |
| guid="_0keUEMlgEdmt3adZL5Dmdw">Plan Iteration</a>
 |
| </li>
 |
| <li>
 |
| <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/tasks/manage_iteration_E4D93A64.html"
 |
| guid="_8S2aICbYEdqh1LYUOGRh2A">Manage Iteration</a>
 |
| </li>
 |
| <li>
 |
| <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/tasks/assess_results_EC34D88D.html"
 |
| guid="_0l53cMlgEdmt3adZL5Dmdw">Assess Results</a>
 |
| </li>
 |
| </ol>
 |
| <p>
 |
| Also, understand what work products are used as inputs to and outputs from these tasks, such as work items list, risk
 |
| list and <a class="elementLink"
 |
| href="./../../../practice.mgmt.iterative_dev.base/workproducts/iteration_plan_B46FED39.html"
 |
| guid="_0aQBEslgEdmt3adZL5Dmdw">Iteration Plan</a>.
 |
| </p>
 |
| <p>
 |
| Last, understand the various guidelines that explain how to plan, run, and assess iterations.
 |
| </p>
 |
| <p>
 |
| For details on how to adopt this practice, see <a class="elementLink"
 |
| href="./../../../practice.mgmt.iterative_dev.base/guidances/roadmaps/how_to_adopt_85BF1B9B.html"
 |
| guid="_bpWt8OMPEdyM47cGD2jiaQ">How to Adopt the Iterative Development Practice</a>.
 |
| </p></application> |
| </org.eclipse.epf.uma:PracticeDescription> |