Is the Iron Triangle Accurate?

The Iron Triangle is a common way to refer to the different aspects of a software development project.  In his great article, The "Broken Iron Triangle" Software Development Anti-Pattern, Scott Ambler states that "...something has to give, whether you want it to or not". We all know this is true.  If you have fixed schedule and fixed budget, the scope of the project has to be flexible for the other two criteria to be met and the project to have any chance at succeeding.  The one thing that Scott's article doesn't discuss in any great detail is the Quality aspect.

The longer I practice in this profession, the more that I think about the long term quality of the application's code base.  In my mind quality comes in two forms.  The first is the quality that the client defines as a non-functional requirement.  For example, there must be no reported and outstanding defects for the application to be released to production.  Usually the client will define quality in a way that is based on acceptance of the applications functionality in a working state.  The most common measure of that is defects.  The second type of quality is the the one I mentioned at the start of this paragraph; long term quality.  Rarely does the client explicitly define this type of quality.  It will include things like the maintainability of the code base, the ability for new feature to be added, existing ones to be altered.  Really this is all about '-abilities'...maintainability, reversibility, replaceability, repeatability, etc.

If you look at the Iron Triangle the Quality portion of the project is, if included, usually placed in the center of the triangle.  It doesn't really fit into the analogy all that well.  Today Kyle and I were hashing out what the Iron Triangle meant to us in terms of software development.  Neither of us could rationalize the exclusion of both written and visual representations of quality.  After a long IM chat that went in circles, triangles and at one point a dodecahedron (don't ask).  Our final point in the conversation ended not on a shape, but instead on a balance scale.

The point we ended on is that there are four components and 2 reside on each side of the scale.  On one side are Schedule and Budget.  On the other side are Scope and Quality.  We always want our project scale to remain balance and to do that it's all about give and take. Think of each of the four items as weights on the balance trays.  With that in mind, here are some of the common scenarios.

The client increases the Scope of the project. 

To keep maintain the balance you can have four options:

  1. Increase the Schedule
  2. Increase the Budget
  3. Increase both the Schedule and the Budget
  4. Reduce the Quality

The client reduces the Schedule.

  1. Decrease the Scope
  2. Decrease the Quality
  3. Decrease both the Scope and the Quality
  4. Increase the Budget

The client decreases the Budget.

  1. Decrease the Scope
  2. Decrease the Quality
  3. Decrease both the Scope and the Quality
  4. Increase the Schedule

There are ways to make this pattern break.  For example, increasing Budget often equates to adding developers.  As is stated in the Mythical Man Month, this is not practical without incurring a decrease in productivity.  Also, not all developers are created equal.  Adding a poor developer, even early in a project, can often be more of a impediment to than benefit.  As a result our conversation decided that, while important and facts of life, the simplicity of any model (including ours or the Iron Triangle) requires that all needed to be qualified with the statement "...all things being equal".

Thoughts?

posted @ Tuesday, February 24, 2009 7:34 PM

Print

Comments on this entry:

# re: Is the Iron Triangle Accurate?

Left by 5x1llz at 2/24/2009 9:07 PM
Gravatar
the last paragraphy was really essential. because of the increase in budget, it doesn't mean much in relation to an equal increase in quality - I'm glad you made that distinction... after all nine women can't have a baby in one month as they say.. more "resources" ( I hate that word ) don't necessarily translate to quality or free reign for the business/management to play with scope and schedule like playdough..

That being said, I wish you'd elaborate on the myth that quality can be regained somehow when the application is in maintenance... or maybe it's not a myth.. what happens when all the sacrifice is magnified later on when it's time to keep things stable and running in production.

# re: Is the Iron Triangle Accurate?

Left by Tom Opgenorth at 2/25/2009 10:54 AM
Gravatar
Hmmm, I'll have to drink on it, but it seems simple and somewhat contradictory. This implies that to increase quality requires increasing schedule/budget (or decreasing scope). I'm not convinced that is true.

# re: Is the Iron Triangle Accurate?

Left by Gary Pronych at 2/25/2009 12:50 PM
Gravatar
I recently went to an Agile Leadership seminar put on by Mike Griffiths, one of the topics was increasing project velocity.
He (and I) supported your last paragraph that not all developers are equal and adding resources late in a project can be counter productive.

Here is a link to one of his articles on batch size and velocity fluctuations that will add some insight.
http://leadinganswers.typepad.com/leading_answers/2009/01/batch-size-and-velocity-fluctuations.html

# re: Is the Iron Triangle Accurate?

Left by Morten Haug at 3/2/2009 4:05 AM
Gravatar
I've been long playing with shapes myself, and this scale fit my original thoughts well. This was at a time I thought quality was tested into the product, and often late in the cycle. I'm however with Tom above as quality is crucial to keep the speed up in just about every but the tiniest development efforts.

# re: Is the Iron Triangle Accurate?

Left by Trouw Jurk at 3/20/2009 7:36 AM
Gravatar
Interesting theory and I can agree on the statement that "all things being equal".

I'm going to over think this one today..

# re: Is the Iron Triangle Accurate?

Left by Anthony at 11/19/2009 10:12 PM
Gravatar
just wondering what will happen to the scale metaphor if we add to the schedule. It seems that using the same balancing principle/technique that we used for the 3 typical project scenarios will result to an unrealistic expectation on the other dimesion. Let's consider:

Increase Schedule:

- Increase Scope (natural to say bec of longer sked)
- Increase Quality (natural to say bec of longer sked)
- Increase Scope & Quality (natural to say bec of longer sked)
- Decrease Budget (???)

It appears counter-intuitive as more scope/quality and schedule implies more budget (bec. of longer involvement of manpower and more effort) I suppose. Looks like a minor flaw in the analogy.

My 2 cents...

# re: Is the Iron Triangle Accurate?

Left by Anthony B. Rivera at 11/22/2009 5:54 PM
Gravatar
forgot to indicate my complete name ...
Comments have been closed on this topic.