I'm working on medium sized ASP.NET MVC 4 web app, that is about 2.5 years old. Around 25-30k lines of code. The project has never followed any of the good .NET design practices. It is a very tightly coupled solution. There are not interfaces at all.
Do you think it is worth to upgrade the legacy/spaghetti code to follow SOLID principles and implement some design patterns? I know there is quite a good book to work with legacy code (don't remember the actual name).
The problem is that the project is constantly growing and the cost of refactoring is also growing every time new functionality is added. I wanted to spend some time to upgrade it, but when I looked into details of doing so, it overwhelmed me. There is so many changes needed that I don't know where to start with.
Has anyone got any experience with upgrading the legacy code? Was it worth it to spend so much time on it? Any ideas where to start?