''Run as Fast as you can and as Far as you can '' It's impossible to run as fast as you can, as far as you can. At some point, you make the tradeoff and either: a) pace yourself, so you can go farther, or b) sprint, so you can go faster. That's only two variables. Now consider the FourVariables. What do you do when you're expected to write code that is as high quality as possible, as cheap as possible, as feature-complete as possible, and as quickly as possible? You do the same thing as problem-solvers have been doing for centuries: You burn yourself out trying to fulfill IncompatibleGoals. It's completely up to chaos to decide which goals, if any, that you successfully fulfill. Solution: (discussed elsewhere, but worth reiterating): * Explicitly choose your variables. * Pick a distance, and run it as fast as you can. Or, * Pick a speed, and run as far as you can. Or, * Pick a quality, cost, and deadline, then allow yourself some leeway by varying scope. * RunAsFastAsYouCanAsFarAsYouCan from the project/employer. Or, * Use ExtremeProgramming techniques to balance these business values. That is called BusinessValueOrientedProgramming.