Throughout this book you will see references to the Unified Process lifecycle. This is the lifecycle used in RUP and OpenUP, and all other processes part of the Unified Process family. It is one of several lifecycles supported in the EPF. Even though the practices in this book typically apply to any iterative lifecycle, they work particularly well with the Unified Process lifecycle.
The lifecycle describes the time dimension of project, that is, how a project is divided into phases and iterations. It divides a project into four phases: Inception, Elaboration, Construction, and Transition, each ending with a well-defined milestone.[18] Each phase has specific objectives:
Each phase contains one or more iterations (see Figure 1.3), which focus on producing a product increment, that is, the working code and other deliverables necessary to achieve the business objectives of that phase. There are as many iterations as it takes to adequately address the objectives of that phase, but no more. If objectives cannot be adequately addressed within the planned phase, another iteration should be added to the phase, but this will delay the project. To avoid such a delay, make sure that each iteration is sharply focused on just what is needed to achieve the business objectives of that phase, but no less. For example, focusing too heavily on requirements in Inception is counterproductive; so is not involving stakeholders. Figure 1.3. The Unified Process Lifecycle.Each of the four phases in the Unified Process lifecycle consists of one or several iterations. Each iteration builds on the result of previous iterations, delivering a product increment one step closer to the final release. Product increments should include working software, with a possible exception being the product increments produced in the Inception phase for new applications.
The Unified Process lifecycle provides a great deal of flexibility. Product increments may be internal only and may be demonstrated or deployed only to select project stakeholders. Other product increments may also be released for use by customers. For example, some projects benefit from the deployment of several product increments to the production environment, which allows end users to adopt the most critical capabilities more rapidly. You can do this by rapidly moving into the Transition phase and having several Transition iterations, each deploying a release into the production environment (see Figure 1.4). Figure 1.4. Incremental Delivery Using the Unified Process Lifecycle.Projects that deliver product increments into the production environment often rapidly move into the Transition phase. Once in Transition, they deliver a new product increment to production at the end of each iteration. The milestone at the end of the Construction phase aims at ensuring that all pieces are together so that the system can be deployed. You should pass this management milestone before undertaking deployments into the production environment.
|