blob: 6ad6fe760e4c2e2aee81ef691275604e09c130a9 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
xmlns:xmi="" xmlns:org.eclipse.epf.uma=""
xmlns:epf="" epf:version="1.5.0" xmi:id="-5xbLr54QjpynnPU8ZJ3_fw"
name="new_concept,_DI_tICNaEdyCq8v2ZO4QcA" guid="-5xbLr54QjpynnPU8ZJ3_fw" changeDate="2007-07-22T16:30:20.319-0700">
Iterations in OpenUP keep the team focused on delivering incremental customer value every few weeks by delivering a&#xD;
fully tested demo-able or shippable build (product increment). This creates a healthy focus on ensuring that whatever&#xD;
is worked on is of value to the stakeholders. Decision making must happen faster since there is no time for endless&#xD;
debate. Iterative development focuses on producing working code reducing the risk of analysis-paralysis. Frequent&#xD;
demonstration of working code provides feedback mechanisms that allow course corrections to be taken as needed.&#xD;
Iteration planning, estimation, and progress tracking are centered on work items. The iteration plan is created by&#xD;
selecting the top-priority work items. Agile estimation techniques are used to understand how many work items can&#xD;
safely fit within the time-boxed iteration, and work items are filtered to ensure that the chosen work items will allow&#xD;
the team to deliver upon iteration objectives agreed to by stakeholders. Progress is demonstrated through continuous&#xD;
completion of many small work items (see &lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../openup/guidances/concepts/micro_increments.html&quot; guid=&quot;_S80VwCNbEdyCq8v2ZO4QcA&quot;>Micro-Increments&lt;/a>).&#xD;
Just as a project goes through a lifecycle, iterations go through a lifecycle with a different focus for the team&#xD;
depending on whether you are in the first versus the last week of the iteration, see Figure below and &lt;a&#xD;
class=&quot;elementlinkwithusertext&quot; href=&quot;./../../../openup/guidances/supportingmaterials/references.html#JAZZ&quot;&#xD;
guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;>[JAZZ]&lt;/a>. An iteration starts with an iteration planning meeting that is a few hours&#xD;
long. The initial one or two days are typically focused on further planning and architecture to, among other things,&#xD;
understand the dependencies and logical ordering of work items, and architectural impacts of the work to be done. Most&#xD;
of the time during an iteration is spent on executing the micro increments. Each micro increment should deliver tested&#xD;
code to a build, as well as validated artifacts. To give additional discipline, stable builds are produced at the end&#xD;
of each week. More attention is spent on these builds to make sure that the quality is not eroding and issues are dealt&#xD;
with early so the success of the iteration isn’t jeopardized. The last week or last few days of the iteration typically&#xD;
have a stronger emphasis on polishing and bug fixing than earlier weeks, even though new features are added as&#xD;
appropriate. The goal is to never let quality erode, thus ensuring&amp;nbsp;that a high-quality useful product increment is&#xD;
produced at the end of the iteration. The iteration ends with an assessment (with stakeholders) of what was built, and&#xD;
a retrospective to understand how to improve the process for next iteration.&#xD;
alt=&quot;Picture shows an iteration that starts with a planning meeting, has stable weekly builds, and ends with an iteration review.&quot;&#xD;
src=&quot;./resources/iteration_lifecycle.jpg&quot; />&#xD;
&lt;em>An iteration goes through a lifecycle with a stronger focus on planning and architecture early-on and a stronger&#xD;
focus on bug-fixing and stabilization toward the end.&lt;/em>&#xD;
Team members work more effectively if they can influence what they do and how they do it, rather than operating in an&#xD;
environment where they are told what to do. Giving the team the ability and responsibility to organize their work and&#xD;
determine how to best meet their commitments motivates team members to do their best. This also helps them collaborate&#xD;
to ensure that the right skills are applied to the appropriate tasks. Self organization impacts many areas, including&#xD;
how planning and commitments are made (by a team, not by individuals), how work is assigned (you sign up versus get&#xD;
assigned), and how team members view their role in the project (team member first, job function second).&#xD;
&lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../openup/guidances/guidelines/self_organize_work_assignments.html&quot;&#xD;
guid=&quot;_rmBEkJjsEduad8I_c-ogIA&quot;>Self organization&lt;/a>&amp;nbsp;requires a few things to work:&#xD;
Transparency and commitments are crucial to aid in team communication and to bring out the best in the team&#xD;
members. Open communication about the team’s commitments related to the iteration lifecycle, and personal&#xD;
commitments made relative to micro increments ensure that execution problems are vetted and the right people are&#xD;
focused on solving them.&#xD;
Coaching is required to help teams self organize and to remove barriers for success. The assumption is that the&#xD;
project manager is the coach. This requires that the project manager avoid a command-and-control style of&#xD;
management in favor of a coaching style. This has been a key recommendation in management books for the last two&#xD;
decades, but some project managers may still not be able to make that transition.&#xD;