Why adopting Test Driven Development?
Write a test that covers a use case or some functionality, then let the test run and fail. Once this is accomplished write as little code as possible so that the test passes. After the test passes turn the code into clean code; meaning refactor, simplify, adhere to convetions, etc. Done? …repeat that cycle. That approach is called Test Driven Development (TDD) according to Kent Beck. But why are we doing that?