Few people who run software businesses believe the adage “If you build it, they will come” (which is a misquote anyway). In addition to doing a great job programming and supporting your product, you also need to:
- make sure that you are creating something people will actually pay for
- find ways to promote your product cost effectively
- communicate effectively what your product does
- choose the optimal price
All of which is commonly known as ‘marketing’. If you don’t get these things at least mostly right, your chances of creating a commercially successful product are slim to nothing. This might sound trivial compared to the complexities of writing tens of thousands of lines of robust, efficient code. But things have a habit of looking easy, until you try to actually do them. How do you know someone will actually buy your product before you create it (as Steve Jobs famously said “People don’t know what they want until you show it to them”)? How can you promote your product so that it gets noticed by the right people at the right time at a price you can afford, when there are so many other businesses competing for the attention of the same people? How do you communicate to a potential customer that your can solve their problem in the few seconds you have before they click the ‘back’ button? How do you decide the optimal price when there are so many factors to take into account, including: ‘price as signal’, anchoring, segmentation and competitor pricing? These aren’t trivial problems.
I think many developers look down on marketing as a job for people who are not clever enough to be developers. In truth marketing is difficult to do well. Humans are much more complex than microprocessors or programming languages. They don’t even make decisions on a rational basis much of the time (see the excellent Predictably Irrational for more on this). Given that we often don’t understand ourselves, how can we expect to understand groups of strangers? Marketing also has a (not entirely undeserved) reputation for manipulation and deceit. But it doesn’t have to be like that. Good marketing is about understanding your customer and communicating effectively with them. Manipulating and tricking people rarely works in the long-term anyway.
You can hire marketing people. But how are you going to know if they are doing a good job if you haven’t tried it yourself? Given that marketing is a useful skill to have, how do you get good at it? The key is to learn to like it. It is easier to be good at something if you like doing it. The trick for me was to re-frame marketing as just another form of hacking, but this time hacking the human rather than the computer. How can I use the tools available to get the maximum number of sales from a finite amount of money and effort? Will I get better results if I try this audience/channel/wording/image? Once I looked on it that way, it became an interesting challenge.
The good news is the average developer has a real advantage over traditional ‘touchy feely’ marketing people in increasingly technical/numerate areas of online marketing, such as pay-per-click, A/B testing and analytics. Make the most of it. Also, you can take a scientific approach: form a hypothesis (Facebook ads will give a positive return on my time and money), run the experiment (puts some ads on Facebook) and measure the results (how much did each sale cost).
There is an old joke. Two men are taking photographs of a lion, when the lion starts heading straight towards them. One of the men drops his camera and starts running. “You’ll never run faster than than the lion” says the other man. “I don’t have to” he says “I just have to run faster than you”. Similarly, you don’t have to be a marketing genius. You just need to be a bit better than your competitors, many of whom are developers who don’t like marketing.