An extension of test-driven development that encourages collaboration between developers, QA, and business stakeholders through executable specifications.