What Makes Software Successful? (part I)

It’s the billion dollar question, of course. If anyone could answer this question accurately and predictably, he would be a rich man. Or rather, those who did answer this question accurately and predictably have gone on to become CEOs of highly successful software companies, and generally made themselves unconscionably rich in the process.

You can make software successful by “capturing” a market, effectively locking your customers into your product or annually renewed service (like they have a choice but to renew, right?). But there’s a nicer, and longer-term, way to make your software successful.

In a previous blog entry, I mentioned that when faced with nimble open-source “upstart” competitors, commercial vendors typically pile on the features, believing that that’s what makes software sell. But, luckily for software, there are exceptions. JetBrains, creator of the popular Intellij IDEA Java IDE have recognized that punters are more willing to pay for software which helps increase their productivity.

The rival IDEs are catching up, but developers feel more productive with IDEA because (to massively trivialize what JetBrains have managed to do) they’ve put the buttons in all the right places. IDEA has a smart UI which presents you with the right defaults, so there’s less clicking around, less messing about, to get small, repetitive tasks done.

But the question “What makes software successful?” goes beyond productive UIs. Software becomes successful because people like it. Simple as that. Many open-source (and commercial, for that matter) products have become wildly successful with virtually no marketing or support infrastructure. Somehow they've hit upon that magic formula.

So if you want your software product to sell well, make sure people like it. If they like your product, they’ll evangelize it. And true, genuine word of mouth marketing is something that you just can’t pay for, yet can’t get enough of.

Not to mention that when your rival releases a superior version, your users will be more inclined to wait for your next update rather than instantly jump ship. Kathy Sierra, of “Head First” fame, has written a huge amount of very cool stuff on the subject of creating passionate users; well worth checking out.

It sounds simple, but of course, saying "To make a mint, just make sure your users like your product" is a bit like saying "to build your ocean-going liner, first buy a dockyard, then slap loads of steel plates together".

So, how do you get your users to like your software product? A good start is to make sure that you at least break even: make sure your users don’t hate it. Broken or clunky UIs are a surefire way to turn users off.

Catch Part II here tomorrow...

About the Author

Matt Stephens is a senior architect, programmer and project leader based in Central London. He co-wrote Agile Development with ICONIX Process, Extreme Programming Refactored, and Use Case Driven Object Modeling with UML - Theory and Practice.