> If I'd let it deteriorate into a random bowl of software stew, I have come to a dead end by now, eternally firefighting instead of progressing.
It's real. It's what I'm doing at work now.
Every few months we start a new big project. Sometimes they're business-driven (end users can now have many X instead of one X), sometimes they're compliance-driven (we now need to block users who associate with users in blocked countries), sometimes they're tech-debt-driven (migrate from self-managed VMs into a dedicated provider).
We keep finding missing parts we overlooked. Sometimes it's from us having rushed it, other times it's from consultants getting fired while they're working on it, and others struggling to continue the vision in the right direction. Sometimes it's bad tooling - our new managed Kafka host has a mirror-maker tool that doesn't quite mirror properly, or intellij/gradle will flag that a class is missing, but not why (i.e. which dependency is missing!).