Introduction
Iterations in Construction have a WBS similar to iterations in the Elaboration phase, with activities happening in
parallel. There is a different emphasis on how activities address the phase objectives though.
Architecture is expected to be stable when this phase starts, allowing the remaining
requirements to be implemented on top of it. Another advantage of validating the Architecture and eliminating as many risks as possible during Elaboration is to
provide more predictability in Construction, which allows the Project
Manager to focus on team efficiency and cost reduction.
Functionality is continuously implemented, tested and integrated, resulting in builds
that are more and more complete and stable. A beta or “prerelease” may be deployed to a sampling of the intended
audience at the end of Construction, since the delivery of the actual release is the main focus of the next phase.
Below you find the activities performed in a typical iteration during Construction phase.
Manage Iteration
Similarly to other phases, Project
Manager – supported by the team – launches the iteration, allocates work, tracks status, and handles issues and
risks. Although the high-priority and architectural significant risks were mitigated during Elaboration, new risks may
appear during Construction – such as having the right amount of resources to obtain the desired degree of
parallel development.
Manage Requirements
During Inception, most requirements are captured. The high-risk requirements are detailed, implemented and validated
(through a working Architecture) during Elaboration.
During Construction phase, requirements management demands less time from the Analyst, but
there still may be low-risk requirements to be detailed or refined, in a way they can be assigned to Developers to work on.
Refine Architecture
The Architecture was proposed and baselined at the end of Elaboration. Critical
requirements were expected to be implemented, tested and integrated as part of the baselined architecture. As the
remaining requirements are implemented during Construction, the Architect identifies commonalities among solutions
being developed by the various Developers
and leverages reuse where possible. Some degree of refactoring of the Architecture may be needed to accommodate putting common pieces together.
Develop Solution (for requirement) (within context)
A pattern similar to the Elaboration phase happens during Construction when it comes to breaking down requirements into
development tasks and assigning each requirement within a context to a Developer.
Requirements at this stage are mostly of medium-to-low level of risk, but usually they represent the largest slice from
the total amount of requirements to be implemented in a project. Thus, it is expected that this activity is
instantiated multiple times (once per requirement within context), thus alllowing parallel
development to happen. Continuous integration allows functionality to be added to the code base constantly,
which helps the achievement of more and more complete builds
of the software.
Validate Build
Similarly to Elaboration, this activity happens in parallel with Develop Solution activity. The intent is to validate that a stable “beta” release is
achieved and users may be able to perform acceptance test.
Ongoing Tasks
Similarly to any other phase, Any Role on
the team can submit change requests. Since at this point in time the software being developed is
achieving “beta” quality, defects of high priority are generally addressed during Construction
iterations and Transition iterations. Enhancement requests can be either planned for subsequent Transition
iterations or for a next release of the product.
Assess and Plan Next Iteration
As part of the assessment, the objectives for Construction phase are expected to be demonstrated by the “beta quality”
release of the software, thus supporting the possibility of transitioning the software to its end-users. The
prioritization of work for the next iteration (existing change requests and possibly a few remaining requirements)
takes place. Project
Manager, Analyst, Stakeholders and the remaining team members agree on what is supposed to be
developed in the next iterations (either late Construction phase iterations or Transition iterations) or subsequent
releases of the product.
|