Test driven development is an important and valued part of agile practices. In test driven development (in short TDD) developers first write tests for new functionality (e.g. a class) and later they implement it. The order is crucial and I will explain later why.