In 1992, Ward Cunningham coined the metaphor “technical debt” to highlight how businesses weigh their short-term gains 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 to get a faster go-to-market option is not always bad, provided the business has a backup plan to deliver well-designed code that would simplify future iterations and innovations.
But for startups, reworking is difficult as deadlines and resource crunch prevent developers from producing clean and perfect code. Startups prioritize short-term plans and focus more on adding functionalities to achieve milestones, sign up marquee customers or raise funding. This roadmap shuffling and disregard for the long-term view trigger tech debt.
I have worked closely with more than 25 startups and learned a lot from their journey from early-stage to growth stage. I have realized that avoiding tech debts becomes easier with some ground rules.
Here are four rules that startups should follow to avoid tech debt:
Don’t let specific implementations continue for over three months
Startups often try to customize their product to meet their marquee customers’ demands. Sometimes this leads to two products — a generalized version and a customer-specific one, and converging them becomes difficult over time.
To stay on track, companies start cutting corners, which destabilizes the product. I have seen engineering teams work on customization for a whole year and then lose 20 months in merging and stabilizing the core product.
The foundation of any software product is directly responsible for better scaling and maintainability.
Startups generally work with an 18-24 month runway before they raise the next level of funding. If they rework to generalize features, they could lose a costly quarter to stabilization.
What to do:
When teams work on custom features for more than the specified timeline, merging them back with the core product becomes complex. It is better to acknowledge that products cannot be customer-specific at the very beginning. Startups should consider the platform and think about future maintainability upfront.