The mid 2000s were a crazy exciting time to be a hobby programmer. We’d suffered through a decade or so of trials to test our merit — The ASP/PHP Wars, The Trouble of Tables, DHTML, WAC-FR & sIFR, and of course — IE 5.5 for Mac. But things were finally looking up. We had a free database that was easy to administer, hosting was becoming affordable, broadband was becoming the norm in middle-class households, browsers could render CSS half-competently, web frameworks were becoming accessible to novices, and best of all, we could finally use transparent PNGs. The web was coming of age, and the barrier to entry was falling fast. If you had a computer, internet, and some free time — you could help build it.
As for myself, it felt like I had accidentally accrued the skills to turn dirt into gold. The blogs I followed trended toward product launches, and it felt like everyone around me was succeeding. The formula for success seemed simple:
- Pick a task that people already use software for (communicate, organize, write, etc).
- Build a better piece of software to accomplish the task.
- Iterate on it with customer feedback.
- Build up enough revenue to quit your job and work on it full time.
I can’t help but feel our industry doesn’t think this way anymore. It feels like the hobby programmers of today are only interested in building Unicorns — a really stupid name for companies valued at a billion dollars or more. People don’t start hacking on projects anymore, they become CEOs and start looking for funding. If it doesn’t capture the entire market, what’s the point of showing up?
This shift in mindset has made Silicon Valley feel like some kind of Wall Street 2.0 Incubator. We’ve attracted the worst kinds of people to our industry, grown our companies recklessly fast, insulted our customers with security breaches & poor quality, exploited our employees, and signed away most of our winnings to professional executives and venture capitalists. We stopped building products that allow people to do more. Now we build products that make people use more.
Working in software isn’t as exciting as it used to be. Reasons to be excited are drowned out by assholes announcing how busy they’ve been fucking people over to make themselves rich. It’s embarrassing.
I don’t think Unicorns are good for our industry.
I’ve grown to love the concept of a family business over the past few years. Operationally speaking, they’re the same as any other business. But philosophically, they’ve made decisions about how to run the business such that it benefits & reflects the values of the family running it. I like these businesses because they tend to treat their customers much better than traditional growth-focused businesses.
We don’t really have a concept of family owned software businesses yet, but I do think we can try to emulate the best parts of them. What would that look like?
Treat People Well + Make Money + Build Rad Shit
In most software businesses, revenue is looked at as a metric of unlimited potential. With unlimited potential comes unlimited opportunity costs. Almost every decision feels like it weighs against future maximum revenue. But what if you purposefully put a target on the amount of money you want to make to one million dollars a year? Instead of worrying about opportunity costs at every turn – taking funding, hiring that sketchy VP of Sales, partnering with that company you hate — you can focus your effort elsewhere: employees, customers, and product.
Employees
You don’t need a lot of employees to run a million dollar product. I’d say you can do it pretty well with about five1:
- 1 person focused on the business/company
- 1 person focused on customer support
- 3 people focused on product development
Five people is a small enough number to treat very well as a company. You don’t have to worry about getting tangled in communication struggles, management strategies, political battles, and satisfying hundreds of people with every decision. You can get to know five people really well. Everyone can build a strong connection to each other.
Since you’re not focused on growing your valuation, you can ignore the employee-hostile game of Stock Options. Instead, you can choose employee-friendly equity strategies like performance bonuses, profit-sharing, and granting actual equity (shares) & issuing dividends. Everyone involved can make a lot of money and have a real incentive to invest themselves into the business.
Since you’re not playing the Stock Option game, people can leave when the time is right without ruining their financial future. Employees can leave or stay because of the work and the company, not tax law. Nothing is more poisonous to your company’s work ethic than having a bitter employee stick around when they’re no longer invested.
Five people is a small enough number to manage well. Common practice says 5-7 people is about the right number. You don’t have to implement any complicated management strategies. You’ll probably be managing them without any explicit effort because you’ll have a relationship with every employee.
My point here is that sticking to a small number of employees avoids the vast majority of difficult problems in running a company. And as every engineer knows, the best way to solve a problem is to not have it in the first place.
Customers
If you want to make a million dollars a year, you don’t need millions (or hundreds of millions) of customers. 12,000 paying customers at $7 per month can do it. That’s not an insurmountable amount of people.
You don’t have to cross cultural boundaries to get 12,000 customers, which means you aren’t trying to force one design pattern for everyone in the world. You don’t have to worry about internationalization, localization, or learning how business is done in Japan. You can stick to what you know, and do it really well.
12,000 is a small enough number to make sense of your customer metrics. You can build an intuitive understanding of the flow of signups, upgrades, downgrades, and cancellations. You can reach out to people who enjoy your product and those who don’t. Ask them why. Get to understand your customer’s motivations.
This all makes for a better relationship between the company and its customers.
Product
Product teams are fueled by context. With a small team and a small customer base, every member of the product team can build a solid understanding of your customers and the business. This makes for better product decisions, which means more revenue and higher customer satisfaction.
The most common poison for a product team is communication overhead. In order to put up the best solution for the problem, you need to be able to get lost in it. You need long stretches of uninterrupted time2 to do your job best. Most businesses don’t admit how costly things like company wide announcements, project management, interviewing, internal politics, and large scale collaboration are on productivity. They all work against flow, and should be considered a handicap on product teams. Small teams substitute process with trust, eliminating overhead.
It’s an order of magnitude easier to change direction with a small company. Big companies are like cargo ships — they can turn, but it’s going to take quite a while. Being able to change direction quickly makes it cheaper to throw away an idea that isn’t panning out well. You don’t have to force bad ideas. Bad ideas can fail and be replaced by good ideas. This is how you build a good product.
Make Money
Ignoring the valuation game makes the whole process of making money extremely straight forward. The more money you bring in, the less money you spend, the more money you take home.
Software is an extremely high margin business. We have all kinds of financial freedom that other businesses never experience. Once you get to the point where you can make payroll, money starts to add up fast. Other businesses require additional storefronts, employees, or raw materials to grow. But software doesn’t work that way. A 3 person product team can grow a product indefinitely.
And that’s kind of the thing about million dollar products. They rarely stay million dollar products. It might grow to a twenty million dollar business. But so long as you’ve built your values around the idea of a million dollars, you will grow in a high-margin, high-quality way.
You can make a lot of money building Unicorns. I’ll (eventually) do very well off my last gig because of it. It’s a fine way to run a software business. It’s a very fast, very intense way to operate. The whole world pays attention.
But this tunnel-vision our industry has settled into is silly. It’s skewed our motivations and confused our priorities. Not every product needs to be a Unicorn.
There’s a million other ways to run a business. People don’t start pizza shops to compete with Dominos. They start them because they love pizza.
And everyone knows the local pies are better.
1: This is far from a rule — it’s an example. Don’t take it too literally.
2: A 5 minute interruption may only take five minutes, but it can cost hours.