Programming Microsoft Visual C++
| Many projects can benefit from taking an iterative approach and using a RUP configuration that is low on the Waterfall/Iterative scale. To accomplish this, teams need to gain experience with iterative development; have good process support, mentoring, and training; and enhance their tool environment. The benefits of moving toward iterative development are often significant, but know-how, good process support, and good tool support are limiting factors. The amount of ceremony required varies from project to project, depending on project size, technical complexity, contractual and regulatory considerations, automation, system life, and team distribution. The "old school" of process improvement focused on moving projects toward higher ceremony. An undesired side effect of many such attempts, such as MIL-STD-1521B and SEI CMM, was the tendency to drive projects toward waterfall development due to costly inspections and document-centric approaches. There were improvements to project quality and predictability, but often at a price ”huge cost increases and an inability to adapt rapidly to changes. Newer efforts such as SEI CMMI lead project teams primarily toward high-ceremony approaches while also encouraging iterative development. The "new school" of process improvement focuses on moving projects toward iterative and risk-driven development approaches, with continuous integration and testing. This movement provides many benefits, with the main drawback being the need for additional education and improved process and tool environments. Many, but not all, projects would benefit also from moving slightly toward a lower ceremony development approach. This approach normally decreases development cost but could, at least for complex projects, come at the price of reduced quality. However, using an iterative approach, as well as investing in the right tool environment, can more than compensate for this issue. Among the new school of process improvement, we consider the RUP and other agile processes such as XP, Scrum, and Adaptive Development. Project teams should, however, be conscious about optimal positioning along the Low Ceremony/High Ceremony axis. Moving too far toward High Ceremony may increase development cost and decrease flexibility with limited gains, while moving too far toward Low Ceremony may cause quality and communication issues, especially for larger and more complex projects. The Rational Unified Process is a process framework that allows you to produce customized process configurations that are iterative and risk-driven, with continuous integration and testing. The RUP configurations can be placed almost anywhere on the Low Ceremony/High Ceremony axis. Projects should first decide where they want to be on this axis before customizing the RUP product. When reading this book and working with the RUP product, it is important to remember the flexibility that the RUP provides you with in terms of placement on the process map. Chapter 2 describes the core principles of the RUP approach that apply for more agile as well as high-ceremony adaptations of the RUP. Chapter 4 walks through an extremely low-ceremony and agile implementation of the Rational Unified Process. Chapters 6 “9 describe the RUP with a balance between low- and high-ceremony development, and Chapters 10 and 11 describe how to customize and implement the RUP product to find the right balance between low and high ceremony. We've seen that the RUP can be configured to suit a variety of project sizes and requirements. In the next chapter we will see how it can be used in the most simple implementation, Project Deimos. |