AoAD2 Chapter: Development (introduction)
This is an excerpt from The Art of Agile Development, Second Edition. Visit the Second Edition home page for additional excerpts and more!
This excerpt is copyright 2007, 2021 by James Shore and Shane Warden. Although you are welcome to share this link, do not distribute or republish the content without James Shore’s express written permission.
It’s startling how rarely software development processes actually talk about the nuts and bolts of development. The way your team develops matters. It’s how you spend most of your time.
This chapter includes practices to speed up your development and make it more reliable:
The “Zero Friction” practice removes the delays that slow down development.
The “Continuous Integration” practice keeps your latest code ready to release.
The “Test-Driven Development” practice ensures your software does exactly what programmers intend it to do.
The “Fast Reliable Tests” practice prevents tests from becoming a bottleneck.
The “Refactoring” practice enables programmers to improve the design of existing code.
The “Spike Solutions” practice helps programmers learn through small, isolated experiments.
I first encountered the practices in this chapter through Extreme Programming. Some of them aren’t in the original XP books; instead, they were part of the conversation surrounding XP on Ward Cunningham’s original wiki at c2.com.
Zero Friction is a modern version of XP’s “Ten-Minute Build.”
Continuous Integration also comes from XP. It’s widely misunderstood, so people have come up with new names for it—“trunk-based development” and “continuous delivery” are popular—but continuous integration, as defined in XP, encompasses both. [Beck2004] (ch. 7)
Test-Driven Development is one of XP’s most famous practices. It was originally called “Test-First Programming.” The related practice, Fast, Reliable Tests, is based on my experience putting TDD into practice for the past two decades, with a healthy dose of inspiration and ideas absorbed from the wider Agile community.
Refactoring predates XP, but XP brought it into the mainstream as a core practice.
Spike Solutions comes from Ward Cunningham’s EPISODES pattern language. [Cunningham1995] They’re based on his work with Kent Beck at Tektronix. Ward Cunningham wrote on the C2 wiki: “I would often ask Kent, ‘What is the simplest thing we can program that will convince us we are on the right track?’ Such stepping outside the difficulties at hand often led us to simpler and more compelling solutions. Kent dubbed this a Spike.”1
1Excerpted from the Spike Solution page.
Share your thoughts about this excerpt on the AoAD2 mailing list or Discord server. For videos and interviews regarding the book, see the book club archive.
For more excerpts from the book, see the Second Edition home page.