And that brings us to another point – even though you might think that it's going to take more time to refactor and then develop your feature, in my experience it usually takes less time or the same amount of time overall. "Overall" here includes all the time that you would spend debugging, rolling back releases, sending out bug fixes, writing tests for complex systems, etc.
It might seem faster to write a feature in your complex system without refactoring, and sometimes it is, but most of the time you'll spend less time overall if you do a good job of putting the system in order first before you start adding new feature. This isn't just theoretical – I've demonstrated it to be the case many times.
I've actually had my team finish projects faster than teams who were working on newer codebases with better tools when we did this. (That is, the other team should have been able to out-develop us, but we refactored continuously in the service of the product...