We understand the goals and frustrations of our customers and end-users.
An XP team I worked with included a chemist whose previous job involved the software that the team was working to replace. She was an invaluable resource, full of insight about what did and didn’t work with the old product. We were lucky to have her as one of our on-site customers—thanks to her, we created a more valuable product.
In an XP team, on-site customers are responsible for choosing and prioritizing features. The value of the project is in their hands. This is a big responsibility—as an on-site customer, how do you know which features to choose?
Some of that knowledge comes from your expertise in the problem domain and with previous versions of the software. You can’t think of everything, though. Your daily involvement with the project, although crucial, includes the risk of tunnel vision—you can get so caught up in the daily details of the project that you lose track of your real customers’ interests.
To widen your perspective, you need to involve real customers. The best approach to doing so depends on who you’re building your software for.
In personal development, the development team is its own customer. They’re developing the software for their own use. As a result, there’s no need to involve external customers—the team is the real customer.
I include this type of development primarily for completeness. Most personal development ...