XP Plugin for RUP
- I've been questioned recently about the xP plugin for the Rational
Unified Process (RUP) that ObjectMentor recently created for
Rational. It is only available currently for RUP customers with
license ID's, but I got a pretty good feel for what and how this was
done at a Rational demo site:
We've been struggling for some time with the difference between
traditional methodologies and agile methodologies. In my mind, this
difference is primarily based in the process control theory division
of defined vs empirical, that is: command and control vs emergent and
adaptive. I've always viewed RUP as a traditional methodology, but
one implemented in a hypertext tool rather than the traditional
database. However, I've been pleased that the underlying principles
that Grady Booch and others adhere to are very close to agile and
that they are making efforts to "lighten" RUP.
With this background, I was quite interested to look at the xP plugin
for RUP. I came away with mixed feelings. On the positive side, I
think that this plugin makes xP more understandable to people coming
at it from a traditional command-and-control background, and that are
trying to use xP within the RUP mindset. This will help
institutionalize and cause acceptance of many of the excellent xP
On the negative side, I think the xP plugin cuts the heart of agility
right out of xP. Roles are identified and people asked to fulfill
them. Workproducts (artifacts) are defined and are shown to be
created sequentially - such as a user story is an output from a
release plan. The inspect/adapt cycle is lost, and the still unknown
mechanisms of emergence on which we all rely are turned into mini-
machines that can be repeated over and over. That is, the xP plugin
makes the systems development process look repeatable, CMM
certifiable, and like something that anyone can plugin and run like a
good command-and-control manager.
The heart of xP that you read in the xP series of books and sense in
conversations with Kent, Ron and Ward is lost in this translation. My
biggest concern with the plugin is that xP will be co-opted by this
commercialization of it. People will buy the plugin, implement it,
improve their engineering practices with it, but in no way realize
the spirit of it. The plugin is great for RUP, bad for xP. It reminds
me of the commercialization of love on TV.
I've never been shy in saying what I think. Take a look and let me
know what you think.
> It reminds me of the commercialization of love on TV.No reason why there couldn't be a RUP plugin for that ! I can easily
see it - Inception, Elaboration, Conception, Alimony...
- This tagline omitted for technical reasons -
I have the current edition of the XP Plug-in. After reading your characterization, I re-read the entire plug-in as well as the preview on the Rational site to see if I had missed something. I also re-read your keynote from XP2002 in Alghero ( http://www.xp2003.org/xp2002/talksinfo/schwaber.pdf ). I did not find anything in the plug-in itself that would justify the characterization that it “cuts the heart of agility right out of XP.” What Object Mentor has done here is the same thing I do with CMM. CMM and the RUP, and XP for that matter are all about fear.
Many things have caused people pain as they have done software development through the decades. Each CMM KPA is a fear that projects do well to be aware of and take action to avoid IF needed. Both defined and empirical approaches address these fears. One can take each CMM KPA and describe how agile processes and organizations address the fear it embodies. What Object Mentor has done with the XP-Plug-in is view the RUP from the same perspective. Each RUP phase, artifact, role etc represents a fear that the RUP address with a defined process element. The plug-in explains how the fears/objectives driving the RUP process elements are addressed with XP practices.
There is almost no common element between the baseline RUP product and the XP Plug-in except for the organization under the tree browser. There are no activity diagrams purporting to dictate the order in which activities are done. There is no ‘hump” diagram breaking the work into disjoint disciplines. The XP Roles and XP artifacts are exactly the ones described in all the XP books and they are described in the same way. There are no phases. Instead, the plug-in describes how XP addresses the goals of each phase in the RUP. Most every role in the RUP is addressed by one of the canonical roles in XP except for the role of coach. This is ironic because the RUP is unusable for the majority of projects without a coach to guide the team in identifying which parts of the framework are useful for this particular project.
This initial release is a rough draft published to solicit feedback. Object Mentor promises to have a copy available on their site “real soon now” so that people without access to www.rational.net can contribute (http://www.objectmentor.com/processImprovement/xpRupResourceCenter/index ). The initial release is all XP except for 6 pages that stick out badly as having little to do with the rest of the site. The commonality is more at the values level … iterative development, test continuously, write real code from the very beginning, etc. The presentation of XP is sparse; there are only 100 pages of html content. How it expands will depend on the feedback they get. What is not strong enough yet is the emphasis on people over process you call out so eloquently in your keynote. Neither the RUP nor CMM nor PMI offer any theoretical principles to help one reason or decide what to do. All are collections of stuff that seem to have worked for some situations to keep one out of some kinds of trouble. Agile/Lean thinking changes this to focus on people rather than process. We need to make these principles accessible to the community we recommend agile practices to.
Most developers and managers will never read the literature on XP or any other methodology. This plug-in seems to be an effort to make XP available to teams in a compact, usable form.
XP is sort of an open source methodology. The community shares openly what it learns and makes a living by applying it and adding value around the edges. We need to provide feedback to the team to make the people over process principle very visible and compelling. Perhaps the commercialization of XP can be more like the commercialization of Linux?
The last couple versions of the RUP have moved distinctly in the direction of agile as you recognize. Contributions from Grady B. and Gary P. to discussion groups and their presentations at conferences are increasingly agile. I believe it is in the best interests of all to do what we can to keep pushing it in that direction and to keep the core values in the forefront rather than permit details to dominate. After all, the RUP suffers far more from the corruption and misapplication than XP. RUP becomes a waterfall or worse under many managers with artifacts and activities splashing around wastefully.
- Tom Poppendieck