This document discusses test driven development (TDD), including that it was created by Kent Beck in 2003 based on concepts from extreme programming. TDD focuses on writing tests before code using cycles of writing a failing test, making it pass, and refactoring. Benefits include more tests and less bugs, higher code quality, and a more modular system, while limitations include needing management support and potential for fake tests. The document provides an example of TDD using JUnit tests for a NameRetriever class.