How to Start Your Own Software Company

Part 1: Solve a Real Problem

The Path to Failure

I know a lot of people who go about trying to launch a software company the exact wrong way. I know it’s the path to failure, because I’ve followed it many times:

“I want to write a cool app…but, what kind of app should I write?
Oh! Maybe it’d be cool if there were an app that did X!
Hmm…I don’t use apps that do X, and I don’t know much about X, but I bet a lot of other people are looking for something like that and would buy my app!”

Fail.

The Path to Success

The icon of a relatively successful software venture.

One day, I was working on a project for a client. I wanted a way to record my screen while I used the software, then send him a copy of the video, so he could see the software in action.

So, I started searching and found plenty of software for Windows that would let me do what I wanted, but there was only one option on the Mac. It cost a lot more than I wanted to spend, and it looked pretty dated.

I remember thinking, “I wish someone would write a modern piece of mac software for screen recording that didn’t cost so much…”

That was when a light bulb went on in my mind. I was experiencing a real problem that could be solved with software. This is the first half of one of the keys to writing profitable software: it has to solve a real problem.

Eat Your Own Ice Cream

There’s an old expression in the business world: “Eat your own dog food.” Some people later changed this to say “Eat your own ice cream” because not many people find the idea of eating dog food to be appetizing. It means that you are one of the main users of the software you’re writing. You’re not just writing it for others, but you have a real reason to use it.

The reason this is such a powerful principle is that it allows you to stay more in touch with your product. If your software contains an annoying bug that ruins your work, you’ll likely be one of the first to stumble across it. Does your software miss a critical keyboard shortcut? You’ll be one of the first to wish for it.

Beware of the Void

The icon of a relatively unsuccessful software venture.

Once last tip. Just because you are solving a real problem that you’ve encountered doesn’t mean that anyone else actually has this problem or cares enough about it to spend money.

One day, I was sitting in my office, scanning through a log file to try and diagnose a problem a particular application was giving me. While reading line after line of plain text, I thought “Man, it sure would be nice if there were a graphical program for reading through system logs.” That’s when the old entrepreneurial light bulb went off: Another real problem that I could solve with software!

So, I wrote Log Leech, a graphical system log viewer. It was beautiful, streamlined, had fancy animations and was the best-looking log viewer on the market. But it was a pretty lousy moneymaker, at least compared to previous endeavors.

If you compare the problem Log Leech solved to the problem that Screen Mimic solved, you’ might notice see the problem. I wrote Screen Mimic just as screencasting was becoming a thing. YouTube and other video sharing sites had increased in popularity, there were a lot of people who had a need to create video tutorials and demos, and therefore a lot of people who likely had the same problem that I had.

However, there weren’t that many people who had to look through system logs and cared what they looked like. In fact, most people probably that need to search a system log just open up a command line and use grep. So, while there were some people who appreciated what Log Leech did, it didn’t solve a big enough problem to be sustainable.

And thus, we have the second half of one of the keys to writing profitable software: a significant number of people have to be experiencing the problem your software solves.

The First Key to Starting a Profitable Software Company

So the first key to writing profitable software is:

Write software that solves real problems,
problems that a significant number of people experience.

So, for your first homework assignment:

  1. Stop thinking about what kind of app you want to write.
  2. Throughout a normal week, make a list of all of the problems and frustrations you experience.
  3. At the end of the week, highlight any item on the list you think could be solved with software.
  4. Then, put a big circle around the ones that you think a significant number of people are likely to experience.
  5. Choose the one you’re most excited or annoyed about, and move on to the next step.

If you like what you’ve read, stay tuned for more, or get in touch.