Today I attended a meeting where IBM/Rational got to extol their glorious Unified Process (RUP). RUP has a lot of good sides, and I think a lot of the high-level ideas are very good. Phases, workflows, artifacts, and roles all make sense. The concepts can be used to understand any process, even “non-processes” like code-and-hack. The central question then is whether the components of RUP individually are the right ones for a given project and whether their composition is appropriate.
IBM repeatedly highlighted the configurability of RUP. This configurability is an answer to many of the objections in this memo. However, at some point in time one must ask oneself whether it makes any sense to call what one is doing RUP. The speaker from IBM asserted that he had been doing RUP-for-one as well as RUP for as small teams as 3. I felt he was stretching RUP meaninglessly far. With his interpretation of RUP, I could merely assert “I am doing RUP” and carry on without changing the way I work!
Anyho: to the details. I think RUP gets the following core parts wrong:
I have a confession. I looove gadgets. With many knobs and blinking lights and cool stuff. Stuff like Blinkenlights makes me quite excited. When I was young, I used to play with hours with math. I invented the hyperparabola, which was my own term for a formula that combined a hyperbolic function and a parabolic function. I could make a neat curve based on the formula.
Opening Rational’s RUP tool gives me the same feeling. It has so many cool artifacts and roles and work processes and all this stuff. You could get lost for hours in the documentation just following links and reading process descriptions and artifact templates and workflows. There are cool activity diagrams showing you that “in order to implement an operation on a component, you: choose an algorithm, choose data structures appropriate to the algorithms, define new classes and operations as necessary, and Code the operation”. What wonderful non-sense. Trivial if you know it already, dangerous if you don’t. There tons and tons of this stuff!
When I showed my hyperparabolic function to my teacher, he asked me what it was for. I didn’t have a good answer to him. It was basic mental mastrubation. Playing with ideas for the sake of playing with ideas. I wonder how much of RUP is the same.