Many companies regard themselves as software startups but don’t operate that way. Instead of creating a product that can be resold with minimal effort, they provide bespoke customizations to satisfy client requirements in order to make that next sale. Supporting the burgeoning complexity of one-off rules, integrations, and the stream of maintenance tasks consumes company time, and requires hiring more people. Over time, a company may find itself effectively becoming an execution team for clients, not a scalable tech company in charge of its own strategy.
The entire point of a tech startup is that it scales, by which I mean: in order to increase revenue by 10x, you only need to increase the team size a little bit. Software is the only industry where this works because the marginal costs of duplicating and running code any number of times is negligible. This is why tech companies have such a high P/E ratio, and can raise money and IPO. Your goal is to create a business that sells the exact same thing multiple times.
I’ve seen so many tech companies doing this simple thing all wrong. They spend huge amounts of effort in customizing or extending their software for particular clients’ circumstances. The real cost isn’t even in cobbling something together to get a sale over the finish line; it’s the ongoing support costs to keep these customized solutions up and running later, and the enormous opportunity cost of so much mental bandwidth being squandered on fractured and tactical efforts, rather than singular strategy. While some customer flexibility is needed in early days to get a business off the ground, it can be hard for companies to then “break the habit” and assert a product vision that is truly scalable because it is minimally customized.
Here are the basic rules I set for the companies I advise:
- Ruthlessly eliminate low-margin business. Areas where doubling business would require doubling staff represents “bad” revenue. These are a breeding ground for constant internal distractions, customer escalations, and product complexity that causes tech debt and slows everyone down.
- Sell existing product to new customers; avoid selling new products to new customers. You should be iterating on a working pattern of product success, rather than allowing sales outreach to dictate the development roadmap.
- Sell new products to existing customers. If you can, set the expectation you’re partnering on an experiment. This lets you validate the offering and makes it much easier to reverse course if an approach is untenable without putting a new customer relationship at risk or committing to an albatross around your neck.
- Don’t mistake a culture that heroically meets external demands for a high-impact culture. The goal isn’t to work long hours, it’s for each person’s effort to have an outsize impact on revenue. You don’t want to insist that engineers and product leaders build everything for everyone as an execution arm of the business; you instead want product and engineering to be partners in strategic upfront thinking about how to create a product-business offering that is as narrow and focused as possible.
Less is more when it comes to product development and startups. It’s better to deliver one product with 20% of the features that 80% of your customers use regularly, instead of chasing bespoke offerings for each customer — if you do that, you’d probably be better off just being their employee.