AGILE IN ACTION

Monday, 12 December 2005

The illusion of fixed price contracts

Posted by Simon Baker

Companies need to move away from using fixed price contracts where their expectation is, for a fixed price, they can have everything they ask for delivered on a specified day in the future. How did it get this way?

Managing software development using a defined process is an illusion. Developing software is inherently unpredictable. First, the term ‘stable requirements’ is an oxymoron. Requirements will change. Recognize it and embrace the inevitability of change. If you spend six months working on requirements in order to stabilize them, you’re wasting your time. By the time you finish the requirements the business priorities will have changed, or the competitive landscape will have moved, or the targeted users now want something else. Second, estimating how long it will take to write a piece of software is difficult because it’s a creative activity and not an exact science. It also depends on people who, contrary to popular belief in the industry, are not automatons or plug-compatible-programming-units.

To manage software development effectively you need to use an empirical process that frequently inspects and adapts, rather than a defined process that attempts to predict. There’s always a budget so fix the price of the project. Fix the time too, but agree that scope can be varied to protect the release dates. But this approach doesn’t provide a guarantee that all the required functionality will be delivered. Correct! But this is true for a defined process too. If you thought otherwise you were living an illusion. Essentially, an empirical approach uses a feature buffer and prioritizing the work in order of business value guarantees that some business value will be delivered by the release date, rather than see the entire release slip.

The project should be initiated against a high-level road-map that identifies very approximate content that could be delivered by agreed release dates, with more specific content for each iteration being planned just-in-time. At the close of each iteration, a review is conducted for the customer to accept or reject the functionality delivered by the iteration. At this point, the customer should consciously decide whether to continue with the project or not. Too often the decision to terminate the project is ignored because people are afraid and do not want to acknowledge the smell of the dead fish of failure.

Too many traditional fixed price (fixed time, fixed scope) contracts fail to deliver and their failure isn’t evident until the release slips. If a project is destined to fail you need to smell and acknowledge the distinctive odor from the dead fish of failure as soon possible. The best way to sniff out the smell is to make everything visible, inspect and adapt frequently, and use iterative and incremental development to deliver working software rapidly and regularly.

Creative Commons Licence

Recent Posts

  1. Pursuing features increases total cost of ownership
  2. Organization complexity is a waste farm
  3. Managing costs provides a false sense of security
  4. State of Agile survey for 2011 tells a familiar story
  5. (I can't get no) satisfaction, let alone customer delight
  6. Positive emotions and purpose
  7. People don't buy what you do, they buy why you do it
  8. Too busy chopping wood to sharpen the axe
  9. So you want a fresh apple
  10. Systems are seductive

Archives

  1. 2012 (6)
  2. 2011 (24)
  3. 2010 (31)
  4. 2009 (41)
  5. 2008 (69)
  6. 2007 (152)
  7. 2006 (128)
  8. 2005 (63)
    1. December (22)
      1. Giving trust
      2. Being empowered means being prepared to take a chance
      3. Leading the way
      4. Getting to know people
      5. Slop and slack
      6. What does it mean to be empowered?
      7. Feelings of worth
      8. Martin Fowler has updated The New Methodology
      9. Seeking improvement and receiving feedback
      10. Teamwork and trust
      11. Rules for simplicity
      12. Serenity isn't freedom from the storm, but peace within the storm
      13. How not to do it: Agile development, Microsoft-style
      14. The illusion of fixed price contracts
      15. Effective conversation
      16. Your scrum team needs you
      17. Can trust be restored once it's lost?
      18. Under-promising and over-delivering is a process smell
      19. Daily scrum haiku
      20. Write production-ready code faster with TDD
      21. Kent Beck talks about Extreme Programming and QA
      22. Talking about Selenium with Luke Closs
    2. November (15)
    3. October (11)
    4. August (8)
    5. July (2)
    6. June (1)
    7. May (4)
  9. 2004 (2)

Tags

agile (43) big visible chart (15) conference (39) culture (18) extreme programming (21) leadership (18) lean (47) people (26) planning (17) retrospective (18) scrum (41) story (18) team (30) testing (18) xpday (19)