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