This document discusses techniques for agile software development using test-driven development (TDD). It provides examples of writing tests first before developing code and refactoring legacy code without tests by adding new features using TDD. The benefits of TDD include fast test execution, controlled development process, and no regressions. Developing code using TDD for a set data structure is presented as an example. The document also provides contacts for further information.