Test Driven Development (TDD) is a fundamental engineering practice for high-quality and easily adaptable software development. It's use is usually tied to Agile software development, though its origin is actually in a set of principles knows as eXtreme Programming. But what is Test Driven Development? And what makes it such a great tool?