Will Extreme Programming kill your customer?

Chet Hendrickson

The customer is expected to control almost every aspect of Extreme Programming. She has to decide what the software should do, she controls the schedule, she must specify the tests that close the loop on the process, and she has to understand the problem domain and the software designed to address it. She must keep up with a team of XP developers working flat out, quite often while she is doing her regular job, and she has to remain healthy, both mentally and physically.

Is this job doable?

This is the least understood aspect of XP and is the greatest human issue confronting the penetration of Extreme Programming.

The C3 Project began with someone who, seemingly, could do all these things. Marie Dearment was the supervisor of monthly and biweekly payroll for Chrysler’s Corporate Disbursements Department. When C3 was restarted under Kent Beck’s coaching, Marie sat down and wrote the user stories we needed for the first release plan. She was able to explain how the stories fit together. She assigned their priority. She questioned our estimates. She would have made the estimates, if we had let her, and she would have down about as well as we did. She approved every acceptance test. She did a hundred other things that we eventually took for granted.

We don’t know how Marie learned to do all of this. Marie didn’t know how she knew it. She must have known before we started the project, because we don’t know how Marie knew these things, we were not able to help her do them. And, because Marie didn’t know, she wasn’t able to teach others how to help her.

Eventually, it became too much.

A few months after the launch of C3’s first phase Marie developed a facial tick, it was the most visible symptom of too many hours at the office, too much stress and too much time away from her family. Marie was able to transfer to a less stressful job and her place was taken by a very bright and dedicated man named Paul Kowalski.

At the beginning, we thought Paul was an improvement. He was less stressed out and since he didn’t have Marie’s vision of the final system, he was amenable to our suggestions for making our lives easier.

In due course, we realized that Paul didn’t know how to be an XP customer. It should not have been a surprise; we had done nothing to teach him. We didn’t know how to teach him, since we didn’t know how Marie had done it.

All we did know was that the job had been too much for the only person we had ever seen actually do it.

This leaves us with two questions. The first, ‘How do you do train an XP customer?’ is beyond the scope of this discussion. The second, ‘Can you do everything that is required to be an XP customer and remain healthy?’ is the largest human issue surrounding Extreme Programming.

I don’t know the answers to either of these questions. I have walked a very fine line when mentoring a project’s customer. I have tried to make them understand that they can and should control the project, while making them aware that they must delegate and most importantly, not neglect their life.