June 10, 2008

Fixed-Price Contracts and Agile Programming

We’ve written about the disadvantage of fixed-price contracts for agile programming projects before – why fixed-price makes sense for business process outsourcing with its predictable outcomes, but not so much for agile development.

Our main argument was that avoiding fixed-price gives you more flexibility to define your business requirements. You don’t have to know all your requirements at the beginning of an agile project.

Artem Marchenko recently expanded on this argument with two additional sources of flexibility. One is technical obstacles that may be impossible to predict at the outset of the project.

And the second is changing market conditions. The source of this change could be at the micro level (e.g. a competitor enters the market) or a changing macro-economy.

As Artem puts it, “Agile methods acknowledge the market and project uncertainties and try to adapt by building software in small and completely done increments.”

He also points to some additional articles on the subject of agile development and fixed-bid contracts, both pro and con.

How does a company manage financial risk if the project cost isn’t fixed? A company can always set an internal cost goal and end iterations when it’s reached – that would help them manage their content iteration by iteration. The beauty of agile is that there’s something ready to go out after every iteration.