I've been coding for more than 15 years now. I've worked on many different technologies and tryied some different patterns. I always find struggling with the code when the project reach some level of complexity and size. No matter if using MVC, modules, components, event driven. At some points and as soon projects need evolution during the time, it gets messed up in some way.
During the years I've seen that the more design at the beginning the longer it keeps neat, but at some point always get messed up in some way.
I don't mean totally uncontrolled code, or unreadable one, but it's hard to know what parts interacts with each other, what code is related in some manner to another one, ...I always find myself wanting to refactor the project almost from scratch.
I'd like to have an honest opionion from your experiences and if you really find a way to keep the things totally under control.
Is always design before already code the main reason to keep your code clean?
Did you find your tool/framework that sincerely allows you to keep it neater?