describing the “as-is” situation was a main deliverable. After detailed study and architectural design finalization, the project manager produced a similar document with the “to-be” situation. She extensively conferred with the users in developing the final version of this document.
Construction
This phase develops the system so that it’s ready for preproduction testing. Previous phases identified most requirements and created a baseline for the system’s architecture. Emphasis then shifted to prioritizing and understanding the requirements, brainstorming a solution, and coding and testing the software. Construction was the project’s largest phase. In this phase, the team built the remainder of the system on the foundation laid during elaboration. The team implemented system features in two time-boxed iterations lasting 24 and 46 working days.
Each iteration resulted in an executable release of the software. The team deployed an early release of the system to obtain user feedback. The team implemented 30 percent of the process flow automations (the most complicated ones) during the first iteration and included them in executable A. They included corrections to Executable A and all remaining process flow automation in executable B. The successful completion of each of the two iterations (not including automated unit and integration testing) ended with a user acceptance test (UAT). This ensured that progress was always based on mutual agreement with the users.
To exit the construction phase, the project had to pass the initial operational-capability milestone. The primary issue was whether the current version was ready to move into the preproduction test environment for system and acceptance testing. The team achieved that milestone with a presentation demo during a workshop with the members of the steering committee.
Transition
This phase lasted 23 days. Transition includes system and acceptance testing and focuses on delivering the system into production. In this phase, the team gradually deployed the system to the target users. Feedback from an initial release resulted in further refinements that they incorporated over the course of two transition phase iterations.
Extensive testing occurred, including beta testing. Fine-tuning of the existing hosted applications and integrated desktop took place as well as rework to address significant defects. Although users and test managers tested integration early enough, during the elaboration (hosting of applications) and construction (UAT in the testing environment) phases, differences in set-up between preproduction or production and UAT environment couldn’t be predicted. Most of the issues resulted from special settings of the hosted applications in the preproduction or production environment. The time and effort spent in the transition phase was significant owing to the fine-tuning required for the entire infrastructure to improve performance and assure smooth, stable operation.
The phased-rollout approach that came next included extensive beta testing by small groups before the company released the system to the whole end-user population, including the final technical documentation with detailed physical-architecture and technical-user manuals. The company conducted exhaustive training programs, addressing both operation and support.
To exit the transition phase, the project team had to pass the product release milestone, which included the following items. Business stakeholder acceptance: the business stakeholders were satisfied with and accepted the system. Operations acceptance: the people responsible for operating the system in production were satisfied with the relevant procedures and documentation. Support acceptance: the people responsible for supporting the system once in production were satisfied with the relevant procedures and documentation. Cost and estimate acceptance: the current expenditures were acceptable, and reasonable estimates had been made for future production costs.
Project Development Issues
As the project progressed, the team ran into several issues, most of which are common in similar projects.
Personnel
The developers adopted the process pretty quickly because many of the object-oriented development practices were familiar to them already and they preferred an iterative and incremental development approach. However, the development team leader and the database administrator (DBA) had a “big design up front” (BDUF)—also known as “big modeling up front” (BMUF)11—mindset that they started to overcome only after seeing that the emergent-design approach actually worked in practice. The business analyst tried hard to learn how to apply use cases effectively in combination with other requirements artifacts. One tester was initially concerned that there weren’t enough detailed models to inspect and review. However, he soon realized that the closer collaboration among the team and the combination of significant developer testing using the bank’s testing tool and testing in the large activities such as system testing and UAT were sufficient.