Prakash Malani’s blog pointed me to a wonderful article called How to Fail with the Rational Unified Process: Seven Steps to Pain and Suffering [via Wayback Machine]. I hate linking you to a PDF on the Web, but it is well worth printing and reading. I’ve considered myself a RUP skeptic, but the cause of this could very well be the fact that my experiences with it have been using the RUP incorrectly (at fault and peril of the organization that was pushing it on me).
For sake of providing you with a taste of what the article offers, here is the checklist of ways to fail with the RUP:
- You think that inception = requirements; elaboration = design; and construction = implementation.
- You think that the purpose of elaboration is to fully and carefully define models, which are translated into code during construction.
- You think that only prototypes are created in elaboration. In reality, the production-quality core of the risky architectural elements should be programmed in elaboration.
- You try to define most of the requirements before starting design or implementation.
- You try to define most of the design before starting implementation.
- A “long time” is spent doing requirements or design work before programming starts.
- An organization considers that a suitable iteration length is measured in months, rather than weeks.
- You think that the pre-programming phase of UML diagramming and design activities is a time to fully and accurately define designs and models in great detail, and of programming as a simple mechanical translation of these into code.
- You try to plan a project in detail from start to finish, allocating the work to each iteration; you try to speculatively predict all the iterations, and what will happen in each one.
- An organization wants believable plans and estimates for projects before they have entered the elaboration phase.
- An organization thinks that adopting the RUP means to do many of the possible activities and create many documents, and thinks of or experiences the RUP as a formal process with many steps to be followed.