Activity: Elaboration Iteration [1..n]
Activities performed in a typical iteration in Elaboration phase, the involved roles and main objectives.
DescriptionWork Breakdown StructureTeam AllocationWork Product Usage
Relationships
Parent Activities
Description

Introduction

Most activities during a typical iteration in Elaboration phase will happen in parallel. Essentially, the main objectives for Elaboration are related to better understanding the requirements, creating and baselining the architecture for the system and mitigating top priority risks.

Below you find the activities performed in a typical iteration during Elaboration phase.

Manage Iteration

The Project Manager launches the iteration allocating work items to team members (some project teams will prefer to have members volunteering to perform work). The Project Manager collaborates with the team to break down the work items into development tasks to be performed in that iteration. This provides a more accurate estimate of time to be spent on what can be realistically achieved.

As the iteration runs, the Project Manager performs monitoring and control of the project by regularly checking the status of work done, the work to be done next and blocking issues (in some projects, this checking is done through daily meetings). That gives a more precise understanding of how the work in an iteration is moving ahead. As needed, the team makes corrections to achieve what was planned. The overall idea is that risks and issues are identified and managed throughout the iteration and everyone knows the project status.

Manage Requirements

During Elaboration, requirements can still be captured and outlined as customer needs arise – the prioritization of requirements will say when new requirements are going to be implemented. High risk – or architecturally significant – requirements are detailed to the extent needed to be used as input to architecture and development activities in the current iteration, plus planning for the next iteration.

Note: The emphasis on finding, outlining and detailing requirements will vary from phase to phase. Iterations in Inception and early Elaboration tend to focus more on identifying and outlining requirements in general, and detailing high priority and architectural significant requirements. During iterations in late Elaboration and early Construction, the remaining requirements are usually outlined and detailed.

Define Architecture

The main objective for the Architect during Elaboration is to propose an Architecture that addresses the requirements with high architectural risks, thus providing a solid – yet resilient – foundation on which the system functionalities are built.

The Architect analyzes the architectural constraints, identifies available assets to build the system, defines how the system will be structured, and identifies the initial abstractions and mechanisms that have to be provided by the Architecture.

Through all the iterations, the Architect:

  • identifies commonalities between different requirements and in order to leverage reuse
  • defines strategies for achieving quality requirements
  • captures and communicates architectural decisions
Develop Solution (for requirement) (within context)

As the requirements planned for the iteration are broken down into development tasks, these are assigned by the Project Manager to Developers (some projects will prefer to have team members signing up for development tasks themselves).

The solution to be developed is for a particular requirement within a context, which reflects the idea of breaking down requirements into development tasks, as seen in the activity Develop Solution.

As an example, a particular use-case scenario within the context of database access could be assigned to a Developer, whereas the same scenario within the user interface and business logic contexts could be assigned to a different Developer. In this example, more than one Developer is working on a particular piece of functionality to be delivered in a particular iteration. As they develop the requirement within the context they were assigned to, they perform tests and integrate their work in order to create builds.

This activity is instantiated multiple times, once for each development task planned for that iteration.

Validate Build

The intent is to validate that the high priority requirements implemented reflect a robust Architecture on top of which the remaining requirements can be implemented. As Developers develop the solution for the requirements in a given iteration, the integrated source code is unit-tested. Then, a separate Tester conducts system-level testing in parallel with development to make sure the solution – that is continuously being integrated – matches what is specified in the requirements. Test Cases describe which requirements are being tested in that iteration. Then, the Tester defines what techniques to use, what the data input is, what test suites to create. As tests are performed, eventual defects found are reported and make part of the Work Items List, so they can be prioritized and assigned to team members accordingly.

Ongoing Tasks

This activity includes tasks that happen throughout the iteration in an ongoing basis and are not necessarily part of a plan. For example, at any time, Any Role in the project team can issue a change request, either because there are requests for enhancements or defects are found. These change requests are part of the Work Items List and get to be prioritized and assigned to team members – anyone can be assigned to make changes in order to develop enhancements or fix defects.

Assess and Plan Next Iteration

Towards the end of the iteration, Project Manager conducts the iteration assessment and plan for next iteration. This activity is performed in conjunction with Analyst and Stakeholders and the team.

As in any other iteration assessment, demonstration of implemented functionalities planned for that iteration is the key success criteria. During iteration assessments in Elaboration though, the phase objectives should be kept in mind. As Elaboration iterations are performed, an executable architecture evolves, being baselined at the end of the phase. In addition, requirements are better understood and detailed. Essential risks – including the architectural ones – have been mitigated. This all helps Project Manager to produce more accurate estimates for project schedule and cost.

Properties
Event-Driven
Multiple Occurrences
Ongoing
Optional
Planned
Repeatable
More Information