Avoiding The Iron Triangle


Published on

Many software development projects run afoul of the "Iron Triangle" of project management: the interrelated constraints of Scope, Schedule, and Resources. This talk explores these constraints and how to realistically manage them.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Avoiding The Iron Triangle

  1. 1. Avoiding “The Iron Triangle” John A. Lewis Chief Software Architect Unicon, Inc. 29 July 2010 © Copyright Unicon, Inc., 2010. Some rights reserved. This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/us/
  2. 2. The Iron Triangle
  3. 3. Iron Triangle Constraints <ul><li>Interrelated constraints of Scope, Schedule, and Resources.
  4. 4. Change in one of these constraints has a necessary effect on one or both of the others.
  5. 5. If out of balance then one or more of them must change/break.
  6. 6. Or the resulting quality is destroyed by artificially meeting the constraints by cutting corners. </li></ul>
  7. 7. Crux Of The Problem <ul><li>Real crux of the problem: It is easy, even unavoidable, for the constraints to be out of balance at the beginning of a project.
  8. 8. To make matters worse, they can get more out of balance as the project proceeds.
  9. 9. Many reasons for this problem that all stem for them fact that we have only limited ability to control, or even truly understand, all three constraints and the relationships between them. </li></ul>
  10. 10. Constraint: Scope <ul><li>False Premise: One can detail how complex software should work before it is built.
  11. 11. Conditions that control Scope tend to change: </li><ul><li>Understanding of the domain evolves.
  12. 12. Business has new ideas on project.
  13. 13. Underlying needs/priorities shift. </li></ul><li>Waterfall projects lock scope at the beginning and intentionally make it hard to change.
  14. 14. Successful projects must accept & embrace significant changes in scope as they proceed. </li></ul>
  15. 15. Constraint: Schedule <ul><li>Estimating software development is highly imprecise.
  16. 16. We never build the same thing twice! “Construction” analogies are false.
  17. 17. Still need to estimate, but use estimates properly. Useful for planning and baseline, but not as guarantee or promise.
  18. 18. Given that scope is likely to change, detailed estimates aren't valuable anyway. </li></ul>
  19. 19. Constraint: Resources <ul><li>Most predictable/controllable constraint.
  20. 20. Mostly people, some hardware/software.
  21. 21. Need motivated, qualified people with good chemistry.
  22. 22. Avoid “Mythical Man Month” thinking: </li><ul><li>&quot;Adding manpower to a late software project makes it later.&quot;
  23. 23. Larger teams have diminishing, even negative, returns. </li></ul><li>Can use agile to parallelize work, but this still adds overhead and has costs </li></ul>
  24. 24. The Elastic Triangle <ul><li>Reality: Must allow at least one of the points of the triangle to vary, making it “elastic”.
  25. 25. Hard to accept, since it means uncertainty.
  26. 26. Which to vary? </li><ul><li>Resources easiest to control, and changes have negative impact, so lock this in.
  27. 27. Allow either scope or schedule, or both, to vary as best suits the project. </li></ul><li>Overall, flexibility and quickly adapting to change is the key to project success. </li></ul>
  28. 28. Questions & Answers John A. Lewis Chief Software Architect Unicon, Inc. [email_address] www.unicon.net