Agile Book Club: Test-Driven Development (with Mike “GeePaw” Hill and J.B. Rainsberger)

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.

Reading:
📖 Test-Driven Development
📖 Fast, Reliable Tests
📖 Spike Solutions

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

The Art of Agile Development Book Club takes place Fridays from 8:00 – 8:45am Pacific. Each session uses an excerpt from the new edition of my book, The Art of Agile Development, as a jumping-off point for a wide-ranging discussion about Agile ideas and practices.

Visit the event page for more information, including an archive of past sessions. For more about the book, visit the Art of Agile Development home page.

If you liked this entry, check out my best writing and presentations, and consider subscribing to updates by email or RSS.