Every new application starts with the purest intentions. A new codebase means an opportunity to create simple, clean code and avoid past mistakes. Even with our best efforts, deadlines and platform constraints will impede these goals and give way to suboptimal solutions and hacks. It’s not anyone’s fault, it’s just something developers do.
As a program gets older, it’s inevitable that it will incur “technical debt,” which is code we will need to rewrite due to poor design choices and shortcuts used to finish quickly. It’s fragile and breaks easily. Technical debt is in the dark corners of an application that no one ...