InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Agile Fixed Price Contracting

Posted by Deborah Hartmann Preuss on Jul 03, 2006

Sections
Process & Practices
Topics
Agile ,
Agile Techniques ,
Agile in the Enterprise
Tags
Planning ,
Budgets ,
Complementary Practices ,
Contracts & Negotiation
Agile Fixed Price Contracting - surely this is an oxymoron?

On the high-traffic ScrumDevelopment newsgroup, where some of the industry's most senior Agile managers and developers dialogue, an interesting question has appeared: "Is it possible to run SCRUM with fixed price contracts, especially custom projects?"  This topic has appeared periodically in the last few years: interestingly, for such a busy list, there is often little response to questions on this topic.  In this case, the heavyweights (no pun intended :-) have weighed in:

Mike Beedle, co-author of the original Scrum book recognizes the problem:
"I understand your frustration. The "big fixed price project" situation happens in most large companies, and in many small and medium ones is not uncommon."
Beedle went on to offer a series of suggestions in three categories:
  1. Estimate for the Overhead Upfront (Bloat Upfront)
  2. Use the "Fixed Bid" to your advantage aka stong Change Management
  3. Do "Fix Bid" as "Fixed Number of Hours"
And in response to this more detailed question:

> how can we provide a fixed price estimate for all the
> sprints/ iterations up front? Or even can we?

Ron Jeffries replied with his usual candour:
"You certain can ... you can do the estimates the same way you would were you not doing Agile. I would imagine that that didn't work very well in the past, and that it would continue not to work very well in the future."
Note that recently Mike Dwyer posted a useful link on this list to an article in Crosstalk, Journal of Defense Software Engineering., entitled "Lessons Learned Using Agile Methods on Large Defense Contracts" by Paul E. McMahon, Certified ScrumMaster (CSM).

Some Scrum Trainers do include an optional module in the CSM training on contracting.
Fixed Price? Don't get stung. by paul browne Posted
If you want fix the price, other things have to fluctuate by Rob James Posted
  1. Back to top

    Fixed Price? Don't get stung.

    by paul browne

  2. Back to top

    If you want fix the price, other things have to fluctuate

    by Rob James

    In my opinion, if you are fix pricing, then you have to have other elements (the 4 pillars) of your project fluctuate/float (Project Management 101). And that is OK, as long as you do it in a structured, managed and Agile way.

    My preferred approach is to make the scope float. When starting on the project we break down the requirements into User Stories that get prioritized and estimated in a full day workshop.

    If you are going to estimate, you are going to start thinking solution. When we do this, we prioritize the solution as well (I call this horizontal prioritization). On the left of the prioritization is the simplest technical solution vs the right is the most complex "perfect world" technical solution.

    Based on this work, we know that the project may be a "3 month project for 6 developers/testers". There is your cost right there! Now you go ahead and do what you can from the list of priorities in that time.

    You are agreeing a baseline for your scope and you basically captured the must haves with the wish lists. Because the process is a collaborative one with your customer you are continually re-addressing this baseline scope (when you schedule work for the next sprint). So when you deliver a simple solution to a business problem, the customer has the power to re-prioritize the 'rolls-royce' solution ahead of another story after they have done their testing.

    The customer gets their fixed price quote, and you get your Agile project.

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.