Skip Navigation Links > Process > Phases

Phases and Iterations


A phase is the span of time between two major milestones of a development process. Every well-managed project must pass through four phases:

  • Inception - establish the business case for the project.
  • Elaboration - establish project plans and the architecture.
  • Construction - evolve the architecture into a working system.
  • Transition - deliver the system to the end user.

Within each phase there are a number of iterations. An iteration cycle includes a number of activities such as: requirements capture, analysis, design, implementation, testing, refactoring, quality control, and risk assessment. Each iteration cycle concludes with the release of a fully tested, executable system.

The deliverables presented at the conclusion of a phase are compared against milestones objectives in a formal review process. The milestone review provides an opportunity to assess how well key goals have been met and whether the project needs to be restructured before proceeding with the next phase.

The journey through the four phases (see diagram below) is a called a development cycle. It produces a new generation of the software. Each phase in the cycle consists of a number of iterations through the develop process which is illustrated in the workflow graph. An iteration requires the orderly completion of various activities and concludes with a production-quality executable release.

The output from an iteration constitutes a subset of the final product under development. This means that the product evolves in incremental steps from iteration to iteration to become the final system. Each iteration addresses the concerns of the nine workflow activities shown below. The emphasis on a given workflow activity depends on the phase. For example, during the inception phase the focus is on requirements capture, during the elaboration phase the focus is on analysis and design, and during the construction phase implementation is the central activity while transition focuses on deployment.

RUP humpback chart

Inception Phase
During the inception phase we establish the business case for the system and delimit the project's scope. The business case includes success criteria, risk assessment, estimates of the resources needed, and a phase plan showing a schedule of major milestones. During inception, it is common to create an executable prototype that serves as a proof of concept. At the end of the inception phase, a review is held to examine the life cycle objectives of the project and to decide whether or not to proceed with full-scale development. Business modeling and requirements / supplementary requirements capture are the main workflow activities.

Elaboration Phase
The goals of the elaboration phase are to analyze the problem domain, establish a sound architectural foundation, develop the project plan, and eliminate the highest risk factors. Architectural decisions must be made with an understanding of the entire system. This implies the need to describe most of the system requirements. To verify the architecture, you implement a system that demonstrates the architectural choices and executes significant use cases. At the end of the elaboration phase, a review is held to examine the detailed system objectives and scope, the choice of architecture, and the resolution of major risks and to decide whether or not to proceed with the construction phase.

Construction Phase
During the construction phase, we iteratively and incrementally develop a complete product that is ready to transition to the customer. This means describing the remaining requirements and acceptance criteria, fleshing out the design, and completing the implementation and test of the software. At the end of the construction phase, a review is held to decide if the software, installation sites, and users are ready to go operational.

Transition Phase
During the transition phase, we deploy the software to the customer. Once the system has been delivered, issues often arise that require additional development in order to fine-adjust the system, correct undetected problems, or finish some features that were postponed. This phase typically starts with a beta release of the system which is then replaced with the production system. At the end of the transition phase a review is held to decide whether the life-cycle objectives of the project have been met and to determine if another development cycle should be started. This is also the time to compile the list of lessons learned during the project to improve the development process that will be applied to the next project.

Summary

 

Quote StartEach iteration cycle concludes with a fully tested subset of the final system - a mini-release.

 

Quote StartAt the completion of a development cycle we have a production quality release - a new generation.

 

Quote StartA software system is  development in four phases and involves nine overlapping  disciplines/activities.

 

Quote StartAt the end of each milestone phase a risk assessment takes place to  determine if development can proceed to the next phase.

Top-of-page | Rationale | Principals | Phases | Workflow | Graph