This. At my previous company, the primary product was painfully simple in concept -- just a standard two-sided marketplace.
The day I joined, one of the engineers told me to brace myself for the codebase. I figured it couldn't be too bad, after all, it was just a Rails app. Whew boy, was I ever wrong...
The code was needlessly complex in the worst ways. I'm talking constructors to create constructors, ill-named models that belied their true purpose. The entire thing was a self-referential mess of spaghetti. No one really knew how the whole system actually worked. The app probably had over 400 models, and half of which were probably obsolete.
It was obvious that over the years, no one ever took the time to clean up the code, and people just kept pouring more mess on top of it to meet deadlines. With such a messy codebase, even the smallest change that should have taken hours would take days or weeks.
The day I joined, one of the engineers told me to brace myself for the codebase. I figured it couldn't be too bad, after all, it was just a Rails app. Whew boy, was I ever wrong...
The code was needlessly complex in the worst ways. I'm talking constructors to create constructors, ill-named models that belied their true purpose. The entire thing was a self-referential mess of spaghetti. No one really knew how the whole system actually worked. The app probably had over 400 models, and half of which were probably obsolete.
It was obvious that over the years, no one ever took the time to clean up the code, and people just kept pouring more mess on top of it to meet deadlines. With such a messy codebase, even the smallest change that should have taken hours would take days or weeks.