Test-Driven Development is one of the few truly new Agile ideas. Originally created by Kent Beck as part of Extreme Programming, it’s a fantastic way of making sure your code does what you intended it to do. It’s not perfect, but it’s a powerful tool for creating robust and reliable software. In this session, we’re joined by two folks with decades of TDD experience: Mike “GeePaw” Hill and J. B. Rainsberger.
Mike “GeePaw” Hill was an early adopter of Extreme Programming. He’s a software development coach who works with software organizations around the world. His video essay, TDD & The Lump of Coding Fallacy, is a great explanation of why TDD saves development time.
J. B. (Joe) Rainsberger helps companies deliver better results using Lightweight approaches to software development. He often starts by sitting down with a programmer to build something, but the ensuing conversations tend to turn quickly to matters of operations and difficult interactions among people. He learned Extreme Programming directly from its pioneers and uses what he learned to help programmers write code with less stress.
🎙 Discussion prompts:
Test-Driven Development works best when you take small steps. What are your techniques for breaking work down into small pieces?
When do you find it useful to stop using TDD? (For example, to create a spike solution.) How do you prevent this code from causing problems later?
Avoiding slow and flaky tests is crucial. What do you do to keep your tests fast and running smoothly?
The book emphasizes a classicist approach to TDD, but the mockist approach introduced by Steve Freeman and Nat Pryce is also popular. Which approach do you prefer, and why?
About the Book Club
From October 2021 to August 2022, I hosted a call-in talk show based on the second edition of The Art of Agile Development. The series used the book as a jumping-off point for wide-ranging discussions about Agile ideas and practices, and had a star-studded guest list.