Note: I’m experimenting with bringing back some older writing that seems to still be relevant. I’ve put it in a separate section of this account. Let me know what you think.
First published May 2007
Appreciating what is going well is a powerful alternative to the common engineering problem/solution mindset. This paper describes how Appreciative Inquiry can be applied to XP.
Introduction
Pick your worst problem.
Solve it the XP way.
When it’s no longer your worst problem, repeat.
—Extreme Programming Explained, 1st Edition
This advice from the first edition of XP Explained is a pretty good summary of the engineer’s approach to change: find a problem, solve it. Unfortunately, this approach ignores many of the prerequisites for lasting change.
Change is a complex process, requiring intellectual, emotional, and social effort. Part of the complexity of change is the breadth of the foundation it requires. The person changing needs to be aware of the current situation. They need to clear out any unhelpful emotional baggage about the past. “I’m such an idiot for getting into this situation,” isn’t a helpful feeling or thought. It may be true, but despair prevents change. Change requires energy and ideas. Bringing all of these factors together can be difficult.
The “pick your worst problem” strategy only provides the first of these prerequisites to change, an awareness of the current situation, and that only partially. By listing all of the problems and sorting them, you do get a view of the situation but it’s biased negatively and it ignores whatever is going well. By the time you have decided exactly which problem is worst, you are likely to be depressed by the enormity of your list of problems (after all, all the rest of the problems on the list will still be there after you solve the very worst one). You don’t have the emotional energy to start changing. Plus, you only have examined your problems, not potential solutions. You’re clear about what you’re going to ignore, little more.
Change is not aided by the dominant engineering problem/solution metaphor, where the world is seen in terms of problems to be solved. A programmer who consistently underestimates tasks doesn’t have a “problem” which be “solved” by multiplying by a factor or reviewing estimates with peers or some other simplistic fix. The roots of chronic underestimation generally lie deeper. Improving estimation will likely require intellectual and emotional growth, the intellectual maturity to look honestly at previous estimates and actuals and the emotional maturity to be honest even when afraid of the consequences. Problems are not solved, they are outgrown.
What’s Going Well?
Instead of seeing the world as problems to be solved, see the world appreciatively, by focusing first on things that are going well or have gone well in the past. This assumes that something is going well, an assumption I had tested in a recent workshop. “I was in a meeting last week that was a total waste of time. We argued for hours and when we finally came to a decision it was overruled the next day by someone who didn’t bother to attend.” I asked if there was anything good about the meeting. “Absolutely nothing. I mean, nobody lied during the meeting…” Time out! Honesty is a powerful beginning for improvement. Our problem focus, enhanced by training and practice, blinds us to positives.
There is a style of encouraging change called Appreciative Inquiry that takes advantage of appreciating what is going well. Focus first on positives, current or past, and find in them the energy and ideas to apply to what is happening now. Reduced to a set of steps, here’s how it goes:
Identify a time when things went well.
What were the circumstances? Who was involved? What support was available? How did you feel about your part in that success?
Apply what you know about this success to your current circumstances.
These steps aren’t a rigid recipe, they are an example of applying appreciation. So, for example, I was talking with a team about their release process. They started complaining about how awful their last couple of releases had been. I remembered about appreciation, though, and started applying it.
“Have releases always been this bad?”
“Oh no. Two years ago we rolled releases all the time with no problems.”
“Really? What was different?”
“For one thing we released much more often. Now that it’s so painful we’re taking longer and longer between releases.”
“Anything else?”
“The team was smaller then, so we all fit in one big room. Now the testers are in another building and we have a terrible time communicating with them. It was great to just be able to answer their questions or show them a demo of a change.”
“Well, what would you do if you wanted to get back to smoother releases?”
“First, we’d make the releases shorter. Deferring releases because releases are hard just makes releases harder. Then we’d have the developers and testers sit together. Even if we can’t find a room big enough, it’d be better to split the team so half the testers and half the developers were in one building and the other halves were in the other building.”
This dialog is firmly in the spirit of Appreciative Inquiry:
Focus first on positive experiences.
Discuss negatives in relation to positives.
Move towards positive action.
Energy, Ideas, Clarity
Using Appreciative Inquiry helps satisfy the prerequisites for change:
Energy—the positive emotions associated with what works provides energy for change.
Ideas—the ideas embedded in the positive experiences provide the seeds for change, directly or indirectly.
Clarity—discussing positive and negative experiences in a positive way provides the opportunity to work through negative emotions and see the current situation clearly.
The Brazilian playwright Augusto Boal says that catharsis has been used for millenia to maintain the status quo. If a peasant sees a movie of an oppressed serf seizing power, he experiences an emotional release but then those emotions aren’t available to fuel change. He doesn’t care as much any more. That’s what’s wrong with the typical bitch session (like the one about ugly releases)—everyone feels outraged at the situation but the emotions dissipate without anything changing. Appreciative Inquiry, by framing the conversation in positive terms, offers a way to transmute negative feelings into action.
The positive experiences you recall don’t have to relate obviously to the current situation. If your team is having trouble working together, having everyone remember the best team they’ve ever been on and what made those teams so good can be a good start to change even if those teams were sports teams or volunteer organizations. It might take some digging to get to the ideas, “Okay, you respected each other but how did that happen?” “Well, for one thing we drank beer after every game and talked about what happened.” “We’re all busy after work, but maybe we could have lunch together on Fridays.”
Sometimes you can apply the lessons of a positive experience directly, as in having the programmers and testers sit together. Sometimes the positive experience sparks ideas that aren’t obviously connected at all. I once thought of sending a fruit basket to remote members of a team while telling the story of a team that all sat together. The goal in AI is not to duplicate the past but to gather ideas and energy for today’s changes.
Pair Story Telling
One way I’ve had a lot of success applying AI is to pair up. For a half an hour, one member of the pair tells his story while the other person, the scribe, draws a mind map of the story. The scribe listens actively, reflecting statements, asking for clarification, and summarizing interesting points. After the half hour is up the roles switch and the former scribe tells his story while the former storyteller listens and draws. Afterwards the pair can discuss the stories or present them to a larger group.
Pairing is a chance for the scribe to practice good listening skills, encouraging the story teller, helping make sense of the whole story, and reminding the storyteller about the process. The scribe should resist the temptation to jump in with his own story—his turn will come soon. The best scribes leave you feeling that you have told your own story and that it has been thoroughly heard and understood.
You can also apply Appreciative Inquiry in larger groups, for example by having the partners summarize the story they just heard to the whole group (this works better than having them re-tell their own story). Alternatively, you could go around the room collecting stories while a single scribe collects and summarizes the stories.
Appreciative Inquiry in groups is a good way to find common ground where none seems to exist. The first use of Appreciative Inquiry I heard about was to settle labor problems at the Port of Portland. After the executives and the stevedores had heard each others stories they were prepared to see everyone in the room as people with individual perspectives and common goals, not adversaries.
Appreciative Inquiry works well with Extreme Programming. Pick a practice or a principle and tell a positive story you are reminded of. For example, think about pair programming and then encourage your partner to tell a story about close technical collaboration. Everyone has a story about how they worked collaboratively really well. The lessons they extract may or may not look like textbook pair programming, but they are likely to encourage improvement. I once did this exercise in a large group and I got a wide variety of ideas for improvement—a weekly meeting with customers, joint design sessions at a whiteboard, coding together occasionally.
Conclusion
Applying XP this way respects the fact that people are responsible for their own process and that they change at their own pace. If you are an XP coach, you may be wondering what your role is in this process. You’re not there to tell people exactly how to pair and then enforce pairing. At the same time you aren’t a passive observer, encouraging people to do whatever has worked in the past. Instead, you are there as part of the conversation. By telling your stories and applying them creatively you take an active role in change. By encouraging others to tell their stories and apply the lessons they find you promote positive growth and responsibility.
I encourage you to give Appreciative Inquiry a try, either the formal process or just a change in your own attitude. The next time you’re tempted to complain, find a good listener and tell them a story about when things like this went better or about the parts of the situation that are going well. Finding lessons in your experiences and apply them.
I wish you appreciation and growth. The world isn’t a problem to be solved—that’s just one way of looking at it and there are alternatives.
Some of the team challenges you described made me think about friction. And "Friction Creep", which might be defined as "The constant addition of friction to a system over time".
Friction Creep seems to be the default state of the system, and the challenge is to deliberately"fight" it and lower the friction. Where one main way to lower the friction is tidying.
And as you wrote somewhere else, a big challenge is also to know "when" and "how much".
Really great article , please keep it up , we need more XP related stories!