Any code base will contain build up Technical Debt over time. This is even more true for code that does not have any automated tests.
You can easily see the symptoms of Technical Debt:
Velocity begins to erode – the team spends as much or more time fixing defects as they do adding new functionality
Making changes to the code becomes more difficult
A change in one part of the code creates defects in one more more other parts
Developers say things like, “Don’t touch this part of the code. We don’t know how it works, but it works!”
Technical Debt, like credit card debt, must be managed and paid down in order to be able to move forward. Developers must be empowered to identify debt and fix it immediately – the short term hit on velocity will pay off handsomely over time!