Everyone's heard the old adage, "Fast, good, cheap: pick two." It's called the Iron Triangle or Project Triangle.

Fast, good, cheap

I'm not going to make this argument about the world in general but in software this just doesn't work.

Why? Because software quality is paramount and poor-quality software is a complete showstopper as far as "fast" is concerned. You can't build any decent-sized piece of software on a poor foundation. If the code is good it will be easy and quick to change. If the code is poor it will be slow and painful to change.

Cheap will start out cheap and nasty by design but will morph into "expensive and nasty" very, very quickly, and then you'll be stuck with your expensive-yet-cheap-and-nasty legacy application and a team of developers quickly heading for the door before the midden hits the windmill.

In software your best options are "fast and good" (if you can find a crack team) or "slow and good" but neither of those is cheap.