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.
- Customers, Whole Team
We implement tricky details correctly.
Some software is straightforward: just another UI on top of yet another database. But often, the software that’s most valuable is the software that involves specialized expertise.
- Ubiquitous Language
- Whole Team
- Real Customer Involvement
This specialized expertise, or domain knowledge, is full of details that are hard to understand and easy to get wrong. To communicate these details, use customer examples: concrete examples illustrating domain rules. Customer examples go hand-in-hand with ubiquitous language, which is a way of unifying the language used by programmers, domain experts, and the code itself.
To create customer examples, you’ll need people with domain expertise. Ideally, they’re part of your team. If not, you’ll have to go find them.
Your team might include people who have developed a layperson’s understanding of the domain. Programmers, testers, and business analysts often fall into this category. They may be able to create customer examples themselves. Even so, it’s a good idea to review those examples with real experts. There can be tricky details that a layperson will get wrong.
To create and use the examples, follow the Describe, Demonstrate, Develop process.
...to continue reading, buy the book!
In this Section
- Customer Examples
- Alternatives and Experiments
- Further Reading