has several CustomerResponsibilities
. What are the capabilities
such a customer should have?
From From the XpMailingList
There are three capabilities I look for in a customer.
First, I want them to actually know lots, and have access to quick and
reliable feedback when they don't know. The best customers actually used the
legacy system for years, and perhaps supervised and/or trained other people
to use the system.
Second, I want them to have vision for where the system could go next. They
need to be able to get beyond "shift-F7 here, please" to think about what
the business needs.
Third, because there is no one source of information for any interesting
system, they have to be able to create a piecemeal, emerging view of what
the system needs to do. I was going to say "consensus", but that's not
right. In any new system there will be winners and losers among the
audience, and the best you can hope for is maximizing value and excitement
and minimizing pain and obstruction. --KentBeck
The big question is how often can you find this IdealCustomer?
(Chapter 4, Balancing Power
list five characteristics. Summarizing, a good customer:
- Understands the domain
- Understands how software provides business value in the domain
- Is determined to deliver value regularly (in small steps)
- Can make decisions
- Accepts responsibility
In their experience, accepting responsibility is the most difficult part.
(It's also the one that is not explicitly listed in the capability list given earlier.)
(p. 142) lists the following skills:
- being able to write good stories
- being able to write AcceptanceTests (where the customer is helped by the Tester)
- make decisions
The best customers are those who will actually use the system being developed, but who also have a certain perspective on the problem to be solved.
kind of ideal customer would be one who says:
- I want a new application similar to those of competitors X, Y, and Z, only better.
- Use your own head and do the best you can.
- Here's the money.
he really means it and if
you have the necessary domain knowledge in your team - then this situation can be quite nice, also. ;-)
Of course, this customer does not really exist. But: we have one customer who gets pretty close.
According to PlanningExtremeProgramming
(p. 123), the best customer KentBeck
ever saw had spent seven years using the legacy system. Then she spent three years supervising other representatives. This left her with complete knowledge of the existing system and an understanding of where the system was weak, where mistakes were likely to be made, where duplicate information was required. She was also fearless in making decisions but conscientious about verifying them after she made them.
You should look for a single person who can confidently speak for business. This person needs experience, contacts, vision, and courage [PlanningExtremeProgramming
, p. 123]
If you can't find a single person to act as a customer, you'll have to have a committee of customers. Make sure TheCustomerSpeaksWithOneVoice
If that doesn't work, you may have to give disagreeing customers different budgets, which is all they can spend. Both customers then need to be available to answer questions.
| See also WorkshopOnCustomerInvolvement