Posts Tagged ‘XP’

Difference between RUP and XP Software Development Process

Friday, August 8th, 2008

RUP is a process framework developed by IBM Rational. It‘s an iterative development methodology based upon six industry-proven best practices (see RUP appendix). Over time, a RUP-based project goes through four phases: Inception, Elaboration, Construction, and Transition. Each phase contains one or more iterations. In each iteration, you expend effort in various amounts to each of several disciplines (or work flows) such as Requirements, Analysis and Design, Testing, and so forth. The key driver for RUP is risk mitigation. RUP has been refined by use in thousands of projects with thousands of IBM Rational customers and partners.

XP is a lightweight code-centric process for small projects.  It is the brainchild of Kent Beck and came to the software industry’s attention on the C3 payroll project at Chrysler Corporation around 1997. Like the RUP, it is based upon iterations that embody several practices such as Small Releases, Simple Design, Testing, and Continuous Integration. XP promotes several techniques that are effective for the appropriate projects and circumstances; however, there are hidden assumptions, activities, and roles.

RUP and XP come from different philosophies. RUP is a framework of process components, methods, and techniques that you can apply to any specific software project; we expect the user to specialize RUP. XP, on the other hand, is a more constrained process that needs additions to make it fit a complete development project. These differences explain the perception in the overall software development community: the big system people see RUP as the answer to their problems; the small system community sees XP as the solution to their problems.

When you combine the breadth of RUP with some of the XP techniques, you achieve the right amount of process that appeals to all members of a project and addresses all major project risks. For a small project team working in a relatively high-trust environment where the user is an integral part of the team XP can work very well. As the team becomes more distributed and the code base grows, or the architecture is not well defined, you need something else. You need more than XP for projects that have a “contractual” style of user interaction. RUP is a framework from which you can extend XP with a more robust set of techniques when they are required.