Posted on 31 January 2005 under Management

The iron triangle of project management is a little bent. I just don’t think it works reliably for software. And remember, there’s nothing worse than a bent triangle when trying to manage a project.

What is the iron triangle? Its the rule of thumb that says that the resources, scope and duration of a project are linked and any change to one of these three aspects necessitates a compensatory change to at least one of the others. In short it says that you can’t ask for more stuff without adding more resources or accepting that it will take longer.

So, why doesn’t this always apply to software? Well the problem has to do with quality (which is generally treated as part of the project’s scope). There are three relevant types of quality:

  1. Code quality - how well structured is the code/architecture, etc;
  2. Process quality - how well suited to the relevant people and domain is the development process used on the project; and
  3. Business implementation quality - how well does the project meet the business need(s).

Given this, if you want something to be high quality then it will take longer or will require more resources than something of lesser quality. WRONG!!!

Consider a project with a high degree of code quality. This project will proceed more smoothly since fewer difficult to identify or isolate problems will occur. What about a project with high process quality? Again the project will be smoother since the process will be well suited to the task (and people) at hand.

The difficult quality type to demonstrate an inverse relationship with is “business implementation quality”. However, there is a neat out for me (phewww). Business implementation quality is derived from the other two types of quality - good code leads to good business outcomes and good processes lead to accurate modelling and requirements elicitation.

This means that we can place our hands on our hearts and say that an increase in scope (via quality) will reduce time and cost of software projects. Hence the bent triangle - it simply doesn’t work all the time for software.

P.S. Please note that I am explicitly not including quality in the ISO 9001, CMM, etc sense here. In my experience this stuff increases time and cost and adds little to scope.

?>?>