Yep - I learned it in my first job after college. We had a hacked-together app that was 99% complete. It then remained 99% complete for the next 2 years as we fixed bug after bug after new-bug-that-was-introduced-by-the-last-bugfix.
The codebase was unstable from the very beginning. It did eventually ship when we had added enough duct tape, but it never turned into a solid app.
Towards the end of year 1 I already knew that most of this simply needed to be re-written and done differently, but I was overruled by more senior folks who were responsible for this mess. It was always "we can't do this now, because we need to ship as fast as possible".
The codebase was unstable from the very beginning. It did eventually ship when we had added enough duct tape, but it never turned into a solid app.
Towards the end of year 1 I already knew that most of this simply needed to be re-written and done differently, but I was overruled by more senior folks who were responsible for this mess. It was always "we can't do this now, because we need to ship as fast as possible".