The title of this blog post might better be worded “software is really hard, and it’s still the easy part,” because as a career product guy, I don’t want to downplay the difficulty of creating good software.
There are plenty of times my clients and I have been developing a product and something that should have been easy Just. Wouldn’t. Work. A few months ago, I worked with a founder who was trying to use an off-the-shelf SDK for his relatively straightforward video chat app. It seemed simple enough, but he was on his third dev shop trying to figure out why it wouldn’t connect more than 10% of the time. I ended up emailing the CEO of the SDK company and upgrading to their enterprise tier in order to get some tech support. It still took three weeks to debug.
It’s becoming harder and harder to come up with a software concept that hasn’t already been solved a dozen times in each of a few dozen languages. No one should ever again write a user management system from scratch. Even something as cutting edge as Artificial Intelligence now has flow charts that help you choose the right machine learning algorithm for your task. For most problems, the individual technological components have already been solved and you’re merely bolting them together in a somewhat novel configuration.
And that’s still really challenging. Because, as my good friend and frequent collaborator Todd Sampson likes to say, once you’ve built 80% of the product, you still have 80% of the coding left. It’s often straightforward to wire up a basic end-to-end demonstration of the product showing how a user can move from start to finish. The real effort is handling all the edge cases
And then what? There’s unfortunately a common misconception amongst first-time founders that once you’ve built the technology, everything else just happens.
Ehh. Wrong. Do not pass go. Do not collect $200.
Once they finally get the software working (however long that might take), that’s usually when they realize that software alone doesn’t create a popular product, a thriving community or a viable company.
When you’re initially building a product from scratch, you’re usually trying to please yourself. Even if you’ve done lots of customer research, you have to synthesize that feedback into a working model of how the product should work, and that’s where assumptions come into play. You (hopefully) know exactly what you want, and how it should work. But once you put the product into the market, you’ll quickly learn that you’re only one person, and you’re not even a paying customer.
Now you have to start convincing everyone else why your product is great and why THEY should pay for it. Before you can even do that, you have to get in front of them in the first place.
So how will you advertise? And once they’re on your website, how will you get them to activate? And how will you get them to convert? Did you know that more than 75% of apps are downloaded, used once and then never used again?
A company I co-founded a few years ago ran into this problem. We built the website in three months, nothing complicated, and we made it as simple as possible for our customers to use. We had solid messaging within the web site and quickly populated it with content. We turned it on and… got nothing.
So we tried Facebook advertising. Didn’t work. Direct email. Didn’t work. Direct snail mail. Didn’t work. What started out as a very simple technical solution turned into incredibly difficult customer acquisition. And they’re still trying to figure it out.
Software is the easy part. Software you can fix, because it is cause and effect. If something isn’t working properly, it’s a bug, which means there’s some bad code somewhere that just needs to be hunted down. If you can’t find the source of the problem, add more instrumentation and debug code. You will eventually figure out the problem.
But when your code is working and no one cares, that’s harder. The problem is either an incorrect assumption (which you might never even identify) or a lack of sales and marketing resources (which you might never be able to pay for). Even if you can hire the best, most expensive marketing agency in the world, they aren’t going to hand you a secret playbook on customer acquisition. Back in the day, when IGN spun out of Imagine Publishing, the new executives spent tens of thousand of dollars for a branding agency to come up with the new name Snowball.com. When the executives rolled the new name out to a media-savvy Gen X audience who had watched Clerks just a few years before, the name went over… exceedingly poorly.
It’s often the case that a founder has an idea and his next (and only) thought is, “ok, we just need to build it.” It’s not always that they’re idea was wrong, but more likely they simply never thought about the important work that came after.
Because the hard work begins once the software is working.
I frequently use this phrase with my clients when they launch and nothing happens straightaway. They act all stoic through development and tell themselves they know that they probably won’t blow up on day one. But in the back of their heads, they’re holding out hope that once they launch their service, they’ll go viral and everything will be easy.
The next week there’s almost always a subtle air of frustration and disappointment in their demeanor and I’ve gotten really good at rooting that shit out. When they finally cop to having had unrealistic hopes, I remind them that software is easy and now it’s time to get started on the hard stuff. If you’d be interested in some occasional tough love, send me an email at email@example.com or visit my coaching web site.