## 8.10 Test-Driven Development
Test driven development (TDD) is the practice of writing developer tests and implementation code, concurrently, in fine level granularity.
In Test-Driven Development, the developer first writes a small test to validate a piece of code and then runs the test to confirm that it fails (a sanity check). After, he writes just enough implementation code to make that test pass successfully. This cycle is short and it rarely goes beyond 10 minutes.
In each cycle, the tests come first. Once a test is done, the developer goes on to the next test until there are no more tests to be written for the implementation of the work item currently under development. This also ensures that developers only write the necessary code to implement each work item, as they will be focused on creating the code that validates the tests created.
Another significant advantage of TDD is that it enables taking small steps when writing software, which is safer and far more productive than writing code in large increments.