Test Driven Development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases that are failed, then code is written to pass the tests, and finally the new code is refactored if needed. This process allows software to be developed incrementally while facilitating change by providing continuous feedback. The document provides details on TDD patterns and processes like red-green-refactor cycles and using test doubles.