2006/12/13

OpenUP: a short intro to the Open Unified Process

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.

OpenUP roles and subprocesses

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 main worproducts and their realtion to roles/subprocesses can be viewed here:

OpenUP roles and workproducts

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:

OpenUP Iterations

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:

OpenUP iteration assesment

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 principlesAgile manifesto
Collaborate to align interests and share understandingIndividuals and interactions overprocess and tools
Evolve to continuously obtain feedback and improveResponding to change over following a plan
Balance competing priorities to maximize stakeholder valueCustomer collaboration over contract negotiation
Focus on articulating the architectureWorking software over comprehensive documentation

Does it work? I cannot tell, but at least looks like its building blocks have proven to work often.

1 comentario:

kelly dijo...

Intriguing ... I must learn more!

thanks!