Dan Poynor wrote:
Cost - the project to be done for a low cost. Quality - the project to be high quality (full of features or content say).
That's scope, not quality. Quality is how clean, simple, robust, and DRY your code is, and how deep your tests go.
Time - the project needs to be finished quickly.
Help the client define the two most important criteria. If the client picks cost and quality, then time to complete the project will be longer.
That means the client has requested more scope. To get there, do the high-business value things first, deploy continuously, review often, and seek every opportunity to exclude scope.
If the client picks cost and time, then the quality will not be as high (less features).
And that is indistinguishable from your first iteration with the above formula. So if the client wants early deployment, they get a lite website with a few high-value features, but it's useful early. (And thanks to ActiveRecord migrations, Capistrano, gems, and plugins, you don't need to bury yourself in rendundant details.)
If the client picks quality and time then the cost goes up.
How? How do you get more features in less time?
You can't lower quality, because that will make you go slower, and will ruin the "pay as you go" and "just-in-time requirements" formulas.