Test Driven Development (TDD) involves writing tests before code to drive the development process. It emphasizes: 1. Starting with writing an acceptance test for the thinnest slice of functionality, known as a "walking skeleton". 2. Writing unit tests by following the "write tests backwards" approach of specifying the test name, call to code, and expectations before writing code to pass the test. 3. Using mock objects to guide interface design by specifying the required services of an object rather than its provided features, promoting narrow, role-based interfaces between objects.