I’m not sure about MVP (Minimum Viable Product). I get the concept, and I agree with it—it’s an important concept within Agile, but I feel it gets misunderstood in software development as an excuse to let bad code through.
That’s not entirely fair – the bad code, or rather, the shortcut code, often goes through review and into production with the intention of being improved at a later date. A ticket is created and put onto the backlog.
In the mean time new projects and deadlines are coming in. The Product team start planning it all out with the help of the developers. That code improvement falls deeper into the backlog.
Even if there’s an active participation from Product to tackle tech debt it’s often such a big list that many things are left behind to languish forever – the occasional tech debt sprint is never enough – meanwhile that new project and its deadline is adding to the tech debt and backlog and the whole cycle repeats.
Every 2 years the developers start thinking about a rewrite of the entire platform because the bugs are spilling out of the cracks (coupled with industry pressure to be on the latest and greatest tech).
Can this be solved? Can the demands of product and development co-exist?