The OnsiteCustomer 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? ---- In PlanningExtremeProgramming (Chapter 4, ''Balancing Power''), KentBeck and MartinFowler 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.) ExtremeProgrammingExplainedEmbraceChange (p. 142) lists the following skills: * being able to write good stories * being able to write AcceptanceTest''''''s (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. ---- The '''other''' 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. Now, '''if''' 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. ---- CategoryCustomer | See also WorkshopOnCustomerInvolvement