Preface
The book you hold in your hands, or see on your screen, is the result of a series of studies of how teams all over the world specify, develop, and deliver the right software, without defects, in very short cycles. It presents the collective knowledge of about 50 projects, ranging from public websites to internal back-office systems. These projects involved diverse teams, from small ones working in the same office to groups spread across different continents, working in a range of processes including Extreme Programming (XP), Scrum, Kanban, and similar methods (often bundled together under the names agile and lean). They have one thing in common—they all got the practices of collaborating on specifications and tests right, and they got big benefits out of that.
Different teams use different names for their ways of dealing with specifications and tests, yet they all share a common set of core principles and ideas, which I hold to be essentially the same thing. Some of the names that the teams used for these practices are
- Agile acceptance testing
- Acceptance Test-Driven Development
- Example-Driven Development
- Story testing
- Behavior-Driven Development
- Specification by Example