Wednesday, July 16, 2008

OpenUp, an agile method

Agility has been trendy since some years, but it is not just fashionable ; it is a right way to ensure that software development will produce a high quality software in time and matching the customer needs.
It exists well-known agile methods like XP, Scrum, DSDM, and so on... We won't discuss today about them, but in particular of the OpenUp method which has been developped since 2 years under the umbrella of the Eclipse Consortium, right next to the EclipseWay method, the agile method directly derived from the Eclipse development scheme.
OpenUp states for Open Unified Process, and is based upon an iterative and incremental approach.
In my point of view, this method could match quite well the Change function assertion, which stipulates that the success can be formalized by the following function :
Change Function = F(Perceived Crisis/Perceived Pain of Adoption)
For the Perceived crisis aspect, we all actually know projects which don't end, are abandonned, or don't achieve goals the customer wanted to reach. Industrialization of the sofware process is quite far behind today industrialization in automotive, aerospace or even games domains. Agility is a pragmatic way to industrialize at low cost and in effective manner software engineering.
For the Perceived Pain of Adoption aspect, I find that OpenUp is a good mix between more traditionnal concepts/vocabulary and agiles ones. For someone who understood the agility paradigm and is used to use traditionnal methododologies like for instance RUP, transition will be softer.

OpenUp rests upon three angular stones :
  • requirement management through the use of use cases and scenarii
  • hazard/risk management
  • an approach clearly centered on architecture very early in the life cycle
OpenUp can be used for small projects, but it is best suitable for larger size projects IMO.
OpenUp follows the Agile manifest too, i.e. centered on :
  • the team : "people and interactions rather than process and tools"
  • the application : "Functionnal sofware rather than complete documentation"
  • the collaboration : "Collaboration with the customer rather than contract negocaition"
  • accepting changes : "React to changes rather than follows a predefined planning"
Moreover, OpenUp proposes the following project life cycle in 4 phases:
  • Starting the project (Inception) :the goal is to get agreement of the actors of the project on what we have to do and how
  • Elaboration : the goal is to discriminate the technical risks from the non technical ones
  • Construction : the goal is to develop at the best cost a full product which can be deployed in an operational manner
  • Transition : the goal is to ensure that the software is ready to be delivered to the end-user customers
OpenUp overal process

Inside each phase you have an iteration phase lifecycle, and inside this iteration phase micro-increments (typically daily).
It is not the topic of this post to describe in details the OpenUp method, so I enjoin you to visit the OpenUp web site here for further information.

2 comments:

Heather said...

Hey, nice site you have here! Keep up the excellent work!

Agile Process

xavier mehaut said...

Thanks a lot Heather