I asked this to my pair on my first day here at Pivotal.
“That’s on purpose. A user story is a promise to have a conversation. When we start a story, we’ll have a discussion with the client to fill in the details.”
“Ok. So we’ll just ping them on Skype or something?”
“No. They’re sitting at the desk right over there.”
In XP, the onsite customer is a domain expert that is part of the development team. Their responsibility is to answer questions, resolve disputes, and set small-scale priorities, according to Kent Beck in Extreme Programming Explained: Embrace Change.
In past projects, contacting a client involved emails, IMs, or phone calls. My stories needed detailed descriptions. Description-less stories risked building the wrong thing. So I labeled them “blocked,”” and project velocity suffered.
In my current project, having an onsite customer has made a huge impact.
Eliminating story descriptions has simplified iteration planning meetings. Just write down a short title and move on. Discuss the details later.
Constant client communication has helped avoid misunderstandings. Not once has a pair built the wrong thing. Developer time isn’t wasted.
Delivered stories rarely go untested for longer than an hour. A quicker turnaround has shortened system feedback time.
An onsite customer was one XP practice that was missing from my past projects. What client would be willing to give up one of their full-time employees? After four weeks of working on a team with an onsite customer, to me, the answer is clear: a client that wants their product to succeed.