TDD will actually slow development efforts down and skew the architecture - it's a heavy solution and unit-testing is not always straightforward (mocking everything does not help). Note - not against test, just not seeing enough universality/necessity is test-driveness. It is much better to organize the code from the very start in a way, which make inter-dependencies clear. Component architecture is one example of good code organization.
One thing I recently learned to make it easier for developers to understand the code is to invest in clear architecture's mental model, like described here: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.6107&rep=rep1&type=pdf
With the clear mental map for the code structure any developer can easily find building blocks (or clear places for the missing ones) for the new feature and functions to reuse. This is actually orthogonal to TDD, but I bet it has more impact than TDDing over the code incremented in ad hoc way even with TDD.