One of the challenges of building software is transitioning an MVP into mature software.

Tales over tales have been told about companies who have overgrown their MVP stage, but somehow decisions are made to keep building features on top of a supposedly MVP software that isn’t designed to scale.

In the end, after many many years, the company is then left with a monolith behemoth with a list of never-ending tech debt.

Eventually, this software will be impossible to upkeep without frustrating both the business-side and product-side.

My suggestions to prevent this:
1) Always spend 5-10% time reducing tech debt - VERY important
2) Spend money on continuous education - better yet, make it mandatory
3) Tech lead need to spend time on an R&D and find ways to upgrade incrementally
4) Never, ever skimp on good product/project management practice so the company always have a feature list (and their test suites) handy


Spend some 3-5 minutes reading about Technical Debt on wikipedia.