Software Features, Pick One

A few months back I saw a tweet that stuck with me. It was from Alton Brown. I’m not a foodie, but for some reason, this one stuck in my head. I think it’s because it resonated in other parts of my life. Mr. Brown said:

You can have your food plentiful, cheap, or good…pick any two.

While I completely agree with this postulate, again, I’m not a huge fan of food. I like eating, I enjoy good, but I can’t tell you the difference between what’s good and bad. I just know what I like and what I don’t like (which isn’t much).

This statement stuck with me because I feel there’s the same trade-off in software. Here’s my quote:

You can build something cheap, fast, good looking, reliable, marketable, trendy, usable or useful… pick one.

What do you think? Not too far off, am I?

About Chris Missal

Oh hey, I'm a Senior Consultant for Headspring in Austin, TX. I've been working in software professionally since 2006 and I really, really love it. I'm mostly in the Microsoft world, but enjoy building computer things of all sorts (to be vague). When I'm not slinging code, I'm probably out and about slinging discs, bowling balls, or good beer with great friends.
This entry was posted in Comments, Development, Rant and tagged , , , , , , , . Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Justin Lovell

    Unfortunately, Chris, some things that you listed there requires some “innovation.”

    For example, software needs to be reliable to trend. To trend, it needs to be marketable. To make it to market, it needs to be useful *and* usable.

    Fast / cheap / good looking depends whose audience your software is for.

    • @google-ab6f5020d5e9ce52e6e5bb6394df2439:disqus Care to expand on what you mean by “innovation”? I can see that going t a couple different directions. Innovation by the way the software is developed, or innovation by the technology used? I totally agree with you on understanding the audience before determining which one item to push towards though.

  • Chris, in considering your options, most are complimentary, for example, it’s entirely possible to build a system that is good looking, reliable, marketable, trendy, usable AND useful.

    Fast, I’m not sure if you meant built quickly or one that performs well.

    If you mean built quickly, then Fast = Cheap and these are definitely at the exclusion of the other aspects.

    I love the spirit of your post.  Good custom software is expensive.  This is something I personally struggle with on a weekly basis.  It is difficult to educate our potential customers who, for the most part, have been spoiled by inexpensive software (off-the-self, freeware, etc).

    I once had a customer ask me “I spent $20,000 to have this software built, why is this report so slow?  My Simply Accounting cost $99 and the reports are almost instantaneous!” – Sigh

    I’m not sure if I can pose your likely rhetorical question to any of my clients, but it does speak to the education we struggle with on an on-going basis.

    Thanks for sharing!


    • Poor choice of words on my part. By fast, I did mean built quickly. Thanks for the feedback Mike!

  • Anonymous

    My boss has been saying “quality of features”, “quantity of features”, or “cheap” (pick any 2) for 4 years. I like your “pick 1″ variant.

    • Puts a whole new spin on things, doesn’t it? :)

  • “good, fast, cheap: pick 2″ is the universal quote and has been applied to software for decades now. on the surface, it rings true. its easy to understand that two out of three of these things always play against the other

    but it’s basically a lie. it’s our way of saying stasis is the acceptable norm. its how we justify not changing, not improving, not tackling the challenges of the status quo. but there are decades of research, study, and practice – including software development – that show this to only be true if we let it be true. 

    the current popular term is “continuous improvement” or “kaizen” or some other variation of the whole “lean” thing… but it’s been around for a long, long time, with many different names.

    • Moti

      Why is it that you believe it can change, or  it needs to change? why should this quote be universal truth for architects (of real buildings, that is), civil engineers and electrical engineers, but software engineers should be any different.
      The definition of good changes over time, and definition of fast  changes between projects, and cheap is of-curse subjective, but the truth stands. 
      Actually, I believe that us refusing to take this and shove it up the customersemployers faces (and believe me, I’ve seen civil engineers do it, I’ve seen electrical engineers do it, and heck, my construction contractor shove it to my face dozens of times), is the slippery slope that ends in 501 manifestos and similar.

  • Wayne M

    Sadly in my experience, “fast” always wins, sometimes in a photo finish with “cheap” to the point where quality doesn’t even leave the starting gate.