# RUP - IBM Rational Unified Process/Phases

The process is divided into four lifecycle phases, where all of them may happen in one or more iterations. Each phase usually contains five workflows: requirements, analysis, design, implementation and tests. Each phase has a milestone and is executed an assessment to determine if goals have been meet.

## Lifecycle phases
### Inception

This phase is oriented to achieve agreement between customer and team on requirements, the expectation for the functionality, and the procedural approach that is to be taken to implement the project.
Basic activities for this phase are:
* Express clearly project scope: to capture context, as well requirements, constraints and key features for acceptance criteria.
* Plan and prepare business case: to assess alternatives for risk management, team organization and project plan.
* Possible draft architecture: draft architecture through some PoC development.
* Prepare environment: assess project and organizations, select tools and which parts should be improved.

#### Milestone

At phase end they are checked against following criteria:
* Stakeholder concurrence on scope definition and cost/schedule estimates.
* Requirements understanding as evidenced by the fidelity of the primary use cases.
* Credibility of the cost/schedule estimates, priorities, risks, and development process.
* Depth and breadth of any architectural prototype that was developed.
* Establishing a baseline by which to compare actual expenditures versus planned expenditures.

#### Artifacts

Some of the expected artifacts for this phase are:
* Vision.
* Business case.
* Risk list.
* Software plan.
* Iteration plan.
* Main use-cases are identified.
* Configuration management environment is set.

### Elaboration

Aim for this phase is to construct an architectural baseline that implements a working application with limited functionality, and to formulate an agreement with customer to further pursue the project.
Basic activities for elaboration are:
* Create baseline architecture: create an executable architecture
* Refine vision
* Create detailed iteration plans and baselines for construction
* Refine use case and prepare construction phase: at the end of the phase 80% of use case descriptions should be complete.

#### Milestone

At phase end they are checked against following criteria:
* Vision and product requirements are stable.
* Architecture is stable.
* Test approach and validation are approved.
* Tests and prototype execution has proved main risks are mitigated.
* Iteration plans are complete enough and with trustful effort estimation.
* Stakeholders agree on vision.
* Real costs × planned costs are acceptable.

#### Artifacts

Some of the expected artifacts for this phase are:
* Prototypes.
* Risk list.
* Development case.
* Tools
* Software architecture document.
* Design model
* Data model
* Implementation model
* Vision
* Use case model
* Tests suite

### Construction

This phase is oriented to supporting documents, software product, test suite and user manual. Objective here is to understand all requirements and finish development based on baseline architecture.
Basic activities for construction are:
* Manage resources, control and process optimization.
* Component development and acceptance criteria test development.
* Product release assessment based on acceptance criteria.

### Transition

Transition starts after initial product testing has been performed and the system has been finally deployed. Its objective is to assure software is available to end user.
Basic activities for transition are:
* Execute implanting plans.
* Finish support material.
* Test released product in development environment.
* Create product release.
* Get user feedback.
* Adjust product based on user feedback.
* Make software available to end user.

## Efforts by phase

It is expected to have the following effort distributed across phases:
| | Inception | Elaboration | Construction | Transition |
| Effort | 10% | 30% | 55% | 5% |
| Elapsed time | 20% | 35% | 40% | 5% |
Each phase has workflows, as depicted in the diagram below:
Based on this graphic it is possible to realize that a workflow does not end with one phase, it can be extended over a project timeline, only with less effort.