The old line “good, fast and cheap: pick any two” is tossed around a lot to describe software projects. Last night Scott Trudeau let me in on an inversion of this triangle that he picked up from the 37 Signals folks at SXSW, and I dug up this comment by David Heinemeier Hansson on their blog:
Economic constraints are great. So rather, the wording would be “we’ll work to give you the best application we can within the specified vision/overview and X amount of dollars.” Fixed time, scope, and price is not a viable approach to software development for the vast majority of projects.
Mr. Hansson certainly wasn’t the first to apply the good/fast/cheap theory to software, but I really like the way he framed it in terms of software contracting bids.
You can have a fixed timeline and fixed features, but if we need to add more resources to meet the timeline you’ll need to pay. You can have a fixed timeline and fixed price, but we’ll cut features if we have to in order to meet the timeline and price. You can have a fixed price and fixed features, but you’ll have to be flexible on the delivery date. Fixed price, fixed timeline, fixed scope: pick any two.
In order to pull this off you need to be able to turn away potential work—which smacks of elitism and won’t please the business people—but from the programming side it’s a breath of fresh air.