The base methodology – Balancing Agility and Discipline

As I said on my previous post the first part of my methodology was the definition of a base methodology for the software development process. However, in my opinion, there is no perfect methodology for every project. Each one has its own characteristics, limitations, etc. So I picked the work developed by Barry Boehm and Richard Turner on Balancing Agility and Discipline and applied it to my work. So what what is this of balancing agility and discipline?

As software industry is growing rapidly and development teams are required to do their work faster in an environment of constant changes, some people say that the solution is on agile methodologies. They allow a faster development and are more flexible by adapting easier to changes. In spite of being an agile fan I think agile methodologies are not the solution for everything. Traditional methodologies like Waterfall and Spiral models, are more rigorous and plan-driven, however some projects still need this discipline. So how to decided between agility and discipline?

To make this decision easier Barry Boehm and Richard Turner defined 5 variables. These variables are related to the product’s nature and project team characteristics. They are:

  1. Criticality – measures the project loss due to impact of defects.
  2. Size – number of people involved on the project.
  3. Culture – measures the freedom and diversity of the development team. The more high values of freedom and diversity more is the project culture “thriving on chaos”.
  4. Dynamism – rate of change. Normally measured as percentage of requirements change per month.
  5. Personnel – measures the percentage of people with level 1B (people with low experience) on one side and on the other side the percentage of people that is Level 2 and 3 (high experience / experts).

The way they relate to each other is described on the figure below.

5 Dimensions affecting methodology selection

5 Dimensions affecting methodology selection (Boehm B. and Turner R., "Observations on Balancing Disciplina and Agility", in Agile Development Conference, 2003)

What the figure tells is that for values of the variables near the centre agile practises work better, and for values near the periphery disciplined practises are better.  However it’s possible to have some variables with values near the centre, and others with values on the periphery. In this case the best thing to do is to adopt agile practises to manage the variables near the centre, and disciplines practises to manage the rest. This is called a hybrid methodology – a methodology that adapts itself to projects. This methodology is the based methodology I defined for my thesis.

If you want to know more about this subject check the Agile Manifesto, Agile Methodologies, and an interesting book about Software Engineering called Software engineering by Ian Sommerville.

Posted in Studies | Tagged

Share this post

One Response

Leave a comment