Test Driven Development (TDD) is a software development process where requirements are transformed into specific test cases that guide the writing of code. TDD involves a repetitive cycle of writing a failing test, creating code to pass the test, and then refactoring the code while maintaining tests that serve as documentation. Key aspects include a solid understanding of programming languages, unit testing frameworks, and a focus on clean code and design principles.