Good, Soon, or Cheap. Which is it?

Reading “What’s more important, re-use, or time to market?” by Quinton Wall brought back a classic lesson in developing business software and a timeless principle.  It doesn’t matter what kind cloud-based application service you’re using, be it Salesforce.com or Quickbooks Online or Google Apps.  And it also doesn’t matter whether you’re located in Hawaii or Chicago or anyplace in between.

When a business manager asks for a custom web-based cloud application to be developed, they have to make a choice: do they want the app to be Good, Soon, or Cheap?  Here’s the catch: they can only pick two out of the three. So if you want the app to be Good and Soon, it won’t be cheap. And if you want it Good and Cheap, don’t expect it soon. You get the idea.  This simple question forces the manager to make a clear resource-based decision.

90% of the time, the right combination (in software development) is Cheap and Soon, meaning it won’t be Good.  But that’s OK because it just needs to be Good Enough.

Why Cheap, Soon, and not Good? Because I can guarantee that regardless of how well-researched the custom cloud-based software is, the first version will be wrong and require revisions.  So even if you picked Good and Soon, knowing that it would not be cheap, the fact is that you would still have to revise the software anyway.

Why will the software have to be revised anyway? Because until users actually interact with software, they really don’t know what they want.  Only after they play with it will they have a better idea of what they want it to do.

So the key, then, is to develop it Soon.  (Guy Kawasaki says “Don’t worry, be Crappy”). And it might as well be Cheap, because you’re going to have to revise it anyway. Probably several times.

And it’s this basic, timeless principle that kicks back to Quiton’s article which basically says to develop the software now (Soon) and don’t worry about building in additional functionality (Good).

Make it Soon. And Make it Cheap.  Then be prepared to revise it often.