The goal of the elaboration phase is to baseline the architecture of
the system to provide a stable basis for the bulk of the design and
implementation effort in the construction phase. The architecture evolves
out of a consideration of the most significant requirements (those that
have a great impact on the architecture of the system) and an assessment
of risk. The stability of the architecture is evaluated through one
or more architectural prototypes.
|
|
Topics
|
Workflow details typically performed
in an iteration in Elaboration for
medium sized projects.
|
The primary objectives of the Elaboration phase include:
- To ensure that the architecture, requirements and plans are stable enough,
and the risks sufficiently mitigated to be able to predictably determine the
cost and schedule for the completion of the development. For most projects,
passing this milestone also corresponds to the transition from a light-and-fast,
low-risk operation to a high cost, high risk operation with substantial organizational
inertia.
- To address all architecturally significant risks of the project
- To establish a baselined architecture derived from addressing the architecturally
significant scenarios, which typically
expose the top technical risks of the project.
- To produce an evolutionary prototype
of production-quality components, as well as possibly one or more exploratory,
throw-away prototypes to mitigate specific risks such as:
- design/requirements trade-offs
- component reuse
- product feasibility or demonstrations to investors, customers, and end-users.
- To demonstrate that the baselined architecture will support the requirements
of the system at a reasonable cost and in a reasonable time.
- To establish a supporting environment.
In order to achieve these primary objectives, it is equally important to set up
the supporting environment for the project. This includes creating a development
case, preparing templates, guidelines, and setting up tools.
The essential activities of the Elaboration phase include:
- Defining, validating and baselining the architecture as rapidly as
practical.
- Refining the Vision, based on new information obtained during the
phase, establishing a solid understanding of the most critical use cases that
drive the architectural and planning decisions.
- Creating and baselining detailed iteration plans for the construction
phase.
- Refining the development case and putting in place the development environment,
including the process, tools and automation support required to support the
construction team.
- Refining the architecture and selecting components. Potential components
are evaluated and the make/buy/reuse decisions sufficiently understood to
determine the construction phase cost and schedule with confidence. The selected
architectural components are integrated and assessed against the primary scenarios.
Lessons learned from these activities may well result in a redesign of the
architecture, taking into consideration alternative designs or reconsideration
of the requirements.
Milestone
The Lifecycle Architecture milestone establishes a managed baseline for the
architecture of the system and enables the project team to scale during the
Construction phase. See Milestone: Lifecycle Architecture
for details.
The example iteration workflow shown at the top
of this page represents a typical Elaboration iteration in
medium sized projects. The
Sample Iteration Plan: Elaboration
Phase
represents a different perspective of the breakdown of activities
to undertake in an Elaboration iteration. This iteration
plan is more complete in terms of workflow details and activities, and as such,
more suitable for larger projects. Small projects might decide to do only a
subset of these workflow details, deviations should be challenged and documented
as part of the project-specific process. When planning an Elaboration iteration,
keep in mind that the project's focus may shift from beginning of a phase to
the end, and the iteration workflows may differ slightly from one iteration
to the other.