Concept: Elaboration Phase
The second of four phases in the project lifecycle, when architecturally significant risks are addressed.
Relationships
Main Description

The purpose of this phase is to mitigate technical and non-technical risks. Technical risks are typically addressed by establishing the baseline of an executable architecture of the system and providing a stable basis for the bulk of the development effort in the next phase. Non-technical risks are addressed by delivering key capabilities in close collaboration with stakeholders, allowing us to answer questions such as:

  • Does stakeholder A concur with the usage paradigm as implemented by the first delivered scenarios?
  • Can we leverage this open source component?
  • Can we acquire this commercial component?
  • Do we have personnel with the appropriate competency?
  • Have we validated that the team can collaborate effectively to deliver working software?

There are objectives for the Elaboration phase that help you address risks associated with requirements, architecture, costs, and schedule, among others [KRO03]:  

  1. Get a more detailed understanding of the requirements. Having a good understanding of the majority of requirements allows you to create a more accurate plan and to get buy-in from stakeholders. Be sure to gain an in-depth understanding of the most critical requirements to be validated by the architecture. This does not mean that every use case needs to be detailed, but that you have detailed key use cases, and understand remaining use cases well enough to size them.

  2. Design, implement, validate, and establish the baseline for the architecture. Design, implement, and test a skeleton structure of the system by designing, implementing, and testing a small number of critical scenarios. Although the functionality is not complete yet, most of the interfaces between the building blocks are implemented and tested, and the type of architecture and required architectural mechanisms are identified. This result is referred as an executable architecture.

  3. Mitigate essential risks, and produce accurate schedule and cost estimates. Many technical risks are addressed as a result of detailing the requirements and of designing, implementing, and testing the architecture. You may also have to address non-technical risks, such as legal and financial issues related to usage of open source or commercial components. Refine and detail the high-level project plan.

Key considerations

The number of iterations in the Elaboration phase is dependent on, but not limited to, factors such as green-field development versus maintenance cycle, unprecedented system versus well-known technology and architecture, and so on.

A maintenance project may for example combine Inception and Elaboration into one iteration that may be only a few days long, since the objectives of these phases can be rapidly addressed.

A new unprecedented system may require several iterations to establish and baseline an executable architecture, and to address all non-technical issues. For such a project, you start by designing, implementing, and testing a small number of critical scenarios, in order to identify what type of architecture and architectural mechanisms you need. You also detail high-risk requirements that have to be addressed early in the project. You test enough to validate that the architectural risks are mitigated. In later Elaboration iterations, you fix whatever was not right from the previous iteration, and design, implement, and test the remaining architecturally significant scenarios, ensuring that you check all major areas of the system (architectural coverage), so potential hidden risks arise as early as possible.

More Information