RUP and XP: A Match Made in Process Heaven?
Jun 17th, 2005 by phil
Many assert that the Rational Unified Process (RUP) and Extreme Programming (XP) are complimentary processes. It seems a little counterintuitive that you can have two processes in place in the same organization at the same time and everything will work. The RUP and XP couldn’t be more different in terms of their approach to development and where they place their priorities. Actually, it is their dissimilar natures that make these two processes work so well together.
In another article, I made the following observation:
Any creative product reflects the biases of its creator, and the RUP reflects a project management bias at the expense of other areas of software development. This is why many point to Extreme Programming or other agile processes as being complimentary to the RUP…
The RUP seriously shortchanges the construction phase of software development. Every possible activity has been covered in mind-numbing detail right up to the point where the developers put their fingers on the keyboard and start coding. It is easy to miss this gap in coverage amidst the blizzard of RUP rules and guidelines, but once you see it you can’t ignore it. I refer to this omission as RUP’s “Construction Gap”.
By an amazing coincidence, Extreme Programming is a construction-driven process that minimizes project management and ignores architecture almost entirely. You could say that XP has a “Design Gap”.
So, on the one hand we have an architecture and management heavy process that is weak on actual construction while on the other hand we have a construction heavy process that is weak on architecture and management. One of these processes is loved by managers while the other is revered by developers. One produces paperwork while the other produces code.
I am exaggerating the strengths and weaknesses of the two processes in order to make a point, but the point is still valid. The RUP and XP do compliment each other nicely since they both focus on areas where the other is very weak.
In a hypothetical project that uses both processes, the RUP would be followed closely during the Initiation and Elaboration phases. Requirements are gathered as use cases and prioritized. The development team begins to assess risks and estimate development time. A high-level project plan is created based on small iterations and implementing the use cases with the most business value first. Risks are mitigated using practices that are pretty much common to both processes. When it is time for the Construction phase to begin RUP fades out and the XP rules take over. In this scenario, the goal of using the XP process is to get software out the door. The goal of using the RUP is to make sure that software is the right software.




