&gt; The process slowly repeats until my feature eventually converges onto a configuration of existing components, with as little new code as possible.<p>Adding less code as possible is good. It means that things are well structured. The speed that you want seems like you want to hack your way through and just increase maintenance time. That is what software development is.<p>If you feel some piece of code should be refactored and re-written &#x2F; extracted, then that is another completely different case. Check what is the value and impact on doing it, both short and long term, and expose your rational to your team.<p>For me the biggest signs of a good codebase is having a clean build system and proper testing.