I listened to Introducing OpenUP, a very interesting ibm internal presentation by Per Kroll and Ricardo Balduino, and hosted by the Agile@IBM community. I'm highly impressed. The slide set used has quite in common with this powerpoint, available in the Eclipse Process Framework Project (EPF) community news page.
Take the RUP principles, borrow freely from XP, Scrum, Agile Modelling and DSDM, shake, and you get a methodology that makes lots of sense despite having a mostly ungoogleable name...
OpenUP/Basic is organiced around 4 subprocesses: Collaboration, Intent Management, Management, Solutions Development. It has 6 different roles.
Did you notice that the tester role works in the intent management?
OpenUP/Basic is minimal, complete and extensible.
- Minimal means that it is not the kind of methodology where you have a huge role and workproduct initial list that you have to cleanup for your project (and that usually makes you shop more than you really need...): 6 roles, 18 tasks, 20 work products, 200 printed pages.
- Complete: can be manifested as an entire process to build a system (scrum does not deal with the solution construction subprocess)
- Extensible: can be used as a foundation on which process content can be added or tailored as needed. In fact OpenUP consists of
- A base process - OpenUP/Basic
- Extensions to this base process, such as Model Driven Development content
The Work Item List is very close to the scrum backlog (not only for the current iteration, but for all the project). Of course, it is iterative, a la RUP:
But adaptable! The project plan is a 2 pages doc, describing the goals for the different iterations. And, since each iteartion brings its learning, the plan changes:
I really like the concept of "Stakeholder Satisfaction Space".
Other things that I'd like to highlight:
- daily meetings
- test driven developemnt
- use case based
- promotes a readable representation of the architecture. Much of the architecture can be
- Selected instead of designed (patterns)
- Referenced instead of described
OpenUP/Basic instantiates the core values of the agile manifesto in some slightly more concrete core principles:
|OpenUP/Basic Key principles||Agile manifesto|
|Collaborate to align interests and share understanding||Individuals and interactions overprocess and tools|
|Evolve to continuously obtain feedback and improve||Responding to change over following a plan|
|Balance competing priorities to maximize stakeholder value||Customer collaboration over contract negotiation|
|Focus on articulating the architecture||Working software over comprehensive documentation|
Does it work? I cannot tell, but at least looks like its building blocks have proven to work often.