The key to iterative development (and, therefore, implementing the RUP) is to embrace the notion that early failure is good. An iteration that fails early in the Elaboration phase, for example, is a success, provided that the failure is for the right reasons. To illustrate, an iteration in Elaboration may have the goal of proving that a project's performance requirements can be met with a certain architecture. Yet the team is unable to achieve the required performance with the chosen architecture. At the iteration's conclusion, the team might decide to scrap the architecture or make significant changes to it. The next iteration is successful as a result of the changes made due to the lessons learned in the first failed iteration. The ultimate result is project success through lessons learned, with minimal schedule risk. I have encountered common patterns in organizations attempting to use the RUP the wrong way. These are covered in Appendix A, "Common Mistakes Utilizing RUP." |