When you incur technical debt on a project, the result is some code that is hard to deal with. You cannot easily change such code. It is often a hack job.
This debt will slow down progress on your application. It might be that there is only one person who can safely make changes to the code. That adds mega risk to your project.
How can you make progress to escape the technical debt trap? You need buy in from all kinds of stakeholders. Then you must work to break your bonds.
One solution is to to extreme programming. Or more specifically, you can employ pair programming. This can put developers in teams of two to prevent only one person knowing about the code. The teams can also retool areas of the application that are a mess.
It will take a lot of work. However a rewrite here and there can be less costly than a total rewrite. In addition, you are setting yourself up for success if you project is a longstanding one.
A Little Bit of Crypto - I have been trying to figure out to "collision resistant" some of these standard hash functions are. It is a tough concept to get my head around. I figure...