Let’s make it clear: TDD can’t work effectively for small companies.
I worked for a big TelCo firm where this works very good. However, there are developer teams (many of them) and testing teams. Also there are architects, who document features thoroughly before anything is done.
After the architect work is done, the developers and testers begin to work separately. This way functional and system/integration tests are finished when the code is done, and actual testing can begin.
You may argue this is not TDD, but that’s the closest you can get without losing efficiency. In fact, testers can start working earlier and may finish earlier; and there is a possibility for developers to run partial function tests during the coding phase. You may note that there are no unit tests mentioned. Those are made by the developers, whenever they see fit. Testing teams don’t (and shouldn’t) care about implementation details.
There was a time when I was proud having a project with 100% code coverage. But having all features thoroughly tested in a gray box manner is more important than testing individual functions in the code.