 <p>I've specifically had a lot of gain using Test Driven Development (TDD) with C++ on a huge monolithic server application.</p> <p>When I'm working on an area of code, I first ensure that that area is covered with tests before I change or write new code.</p> <p>In this use case I have huge gains in productivity. </p> <ul> <li>To build and run my test: 10 seconds.</li> <li>To build, run and manually test the full server: min 5 minutes.</li> </ul> <p>This means I'm able to iterate an area of code very quickly and only test fully when I need to. </p> <p>In addition to this I have also utilised integration testing which take longer to build and run, but only exercise the specific piece of functionality I am interested in.</p>