Unified Process: Transition Phase and Eleventh Iteration
We have now completed the design and implementation of all required functionality, and we shift our focus from construction to the release of the product. This is known as the transition phase of the Unified Process, the final iteration of the project.
We concentrate here on software deployment, integration test, and requirements tracing. For the five core workflows, we plan to achieve the following goals:
- Requirements: Usually this workflow is not applicable to the transition phase. However, we postponed to this iteration the definition of requirements for deployment of the software. Therefore, we must determine, in collaboration with the business customer, which is the best way of distributing the developed software.
- Analysis: In this phase, this workflow is applicable only to software deployment and problems that have been found during integration testing. If we detect malfunctions of the software that lead to changes in the design or implementation, we must analyze the impact of these defects on the remaining components (this is also known as impact analysis). If the impact introduces a high risk to the overall release of the software, we must determine, together with the customer, whether the problem must be fixed or whether we can document it in the release notes and fix it in a later version or service pack.
- Design: No major changes to the design should be made in the transition phase. We change the design only to address problems found during testing. An impact analysis must be created for all changes.
- Implementation: Implementations necessary for the software deployment are done during this phase. Furthermore, smaller bug fixes may be addressed.
- Test: Unit tests have been written and performed to fulfill the criteria to continue with the next iteration within the construction phase. In this phase, all unit tests will be rerun and additional integration tests will be created. Before the software can be released, the deployment procedure also must be tested to make sure the customer is able to install and use the software. Furthermore, we trace all requirement keys to implementation, unit test, and integration test to ensure that no requirements have been forgotten.
The acceptance criteria to conclude the transition phase include the successful run of all unit and integration tests. All problems found during these tests either must be corrected or, with customer approval, must be listed in the release notes. Furthermore, all requirement keys must be traceable to the implementation and to at least one unit or integration test where applicable.