What’s so hard about writing software?

I recently received an email which read:

“Hi, I was wondering, if I give you a good idea for your program, and I mean a really good idea for an improvement (and my idea is simple to implement too!) could I get a little royalties from your sales”

Where to start… I think the emailer had failed to understand where the difficulty in writing and deploying software lies. Having ideas is easy, everyday millions of people have ideas, some of them brilliant. Now this may sound a little controversial but unfortunately those ideas in and of themselves are valueless, it is only in the embodiment of the ideas that value starts to be created. Eric Sink talks more about this in his excellent article on Starting Your Own Company:

“Although you may not believe it right now, ideas are essentially worthless. You are emotionally invested in your idea. You’ve spent lots of time convincing yourself and others that the business will work. You are devoted to your idea and you do not want to give it up.

But like it or not, your idea alone is not valuable. In the business world, ideas are worthless. Real value comes from good execution.”

So is the difficult part in writing the actual software? Well, not really. Writing software is, for the most part, fairly easy. Not as easy as having ideas but it’s not that hard to write a small utility, especially if it only needs to run on your machine. Sure, it’s a little harder writing something that will install and run reliably on the Wild West like eco-system we call Windows. But an automated build and test system along with VMWare Workstation goes an awful long way to making this simpler.

Where things get a little tricky is the modification and enhancement of an existing product. The list of enhancement requests for FileLocator Pro is large and there are some real gems of ideas in there. The trouble is that many of them just don’t fit into the basic way FileLocator Pro works. So we often ask the question “How many people will we really annoy by changing the way the product works versus how many people will absolutely love the new features”.

But all those difficulties are nothing compared to the biggest issue. Building something that people will pay for. In the real world most people would not think twice about spending $40 on a night out, many would think that was positively cheap. Yet in the intangible world of consumer software many people will balk at the idea of spending $30 on a piece of software that then can own and use for life.

Now I’m not saying that I’m immune to the cheap-skate mentality when it comes to paying for software. It’s only fairly recently that I’ve realised that paying for the best software rather than going for free alternatives more than pays for itself in the the productivity increases. However, most people will settle for a free mediocre program rather than pay for a great one especially if it’s something they’ll only use occasionally, a sentiment which is not hard to understand.

Anyway, back to my emailer. I tried to explain that I would be pleased to hear about his idea but I wouldn’t be able to offer any sales royalty. He (I assume it was a he) was quick to write back and let me know the foolishness of my ways:

“Anyways I realized how to do it myself, to [sic] bad you don’t want to know what it is.”

I wrote back wishing him all the best, and I truly meant it. Writing software that people will pay for is hard, really hard.