In 1992, Ward Cunningham coined the metaphor “technical debt” to highlight how companies weigh their short-term earnings against the long-term viability of a software product. Business dynamics have evolved a lot since then, but the metaphor still works.
Favoring a short-term plan for a faster time-to-market option isn’t always a bad thing, as long as the company has a backup plan to deliver well-designed code that simplifies future iterations and innovation.
But for startups, rework is difficult as deadlines and scarcity of resources prevent developers from producing clean, flawless code. Startups prioritize short-term plans and focus more on adding functionality to reach milestones, sign up top customers or raise funds. This shuffling of the script and disrespect for the long-term vision trigger the technological debt.
I’ve worked closely with over 25 startups and learned a lot from their journey from the early stage to the growth stage. I realized that avoiding tech debt is made easier with a few ground rules.
Here are four rules startups must follow to avoid tech debt:
Don’t let specific implementations continue for more than three months
Startups often try to customize their products to meet the demands of their main customers. Sometimes this leads to two products – a generalized version and a customer-specific version, and converging between them becomes difficult over time.
To stay on track, companies start cutting costs, which destabilizes the product. I’ve seen engineering teams work on customization for an entire year and then spend 20 months merging and stabilizing the core product.
The foundation of any software product is directly responsible for the best sizing and maintenance.
Startups usually work with a lead 18 to 24 months before raising the next level of funding. If they rework to generalize resources, they could lose an expensive quarter to stabilization.
What to do:
When teams work on custom features for longer than the specified schedule, merging them back into the core product becomes complex. It’s best to recognize that products cannot be customer-specific right from the start. Startups should consider the platform and think ahead about future maintenance.