Someone has to represent the customer. This person should be closely involved in the project. (With commercial / shrink-wrap products, this is typically a Product Manager or a knowledgable developer or tester or etc.)
If this is a "best practice", then why don't people do it?
- process doesn't support it (eg: BDUF, Waterfall, etc)
- "not enough time"
- development isn't the "customer's" top priority
- the project isn't the "customer's" top priority
- the "customer" isn't development's top priority
- politics, poor working relationships
How is it any different if done "eXtreme"?
- Include a real, live user on the team, available full-time to answer questions.
- "customer" goes to demos, IterationPlanning, stops by often, answers questions, prioritizes
- "customer" provides test data, writes functional tests
- "customer" participates in ReleasePlanning
What other practices support this practice?
- SmallReleases makes the customer happy
- CommonVocabulary improves communications with the customer
- UnitTesting makes the customer feel good
- OnSiteCustomer gets what he wants, gets more feedback on requirements (self supporting)
What other practices are supported by this one?
Next: CodingStandards
-- AndrewFuqua - 31 Mar 2002