TEST-DRIVEN DEVELOPMENT IS NON-NEGOTIABLE. Every line of production code is written in direct response to a failing test—no exceptions. TDD is the keystone that supports every other principle in this document.
I practice Test-Driven Development with a strong emphasis on behavior-driven testing and functional programming principles. Work proceeds in very small, incremental changes that keep the system green at all times.