5. Technical Practices
The practices in this chapter describe a radical departure from the way most programmers have behaved during the last 70 years. They enforce a profound minute-by-minute and second-by-second set of ritualistic behaviors that most programmers initially consider absurd. Many programmers have therefore attempted to do Agile without these practices. They fail, however, because these practices are the very core of Agile. Without TDD, Refactoring, Simple Design, and yes, even Pair Programming, Agile becomes an ineffective flaccid shell of what it was intended to be.
Test-Driven Development is a rich ...