Qualities that Undergird Agile/XP Development


 

The six core values of XP, as elucidated by Kent Beck in Extreme Programming Explained, 2nd Edition),

provide a strong backdrop for the principles and practices he exposits

in the book. But while preparing an introduction to XP/Agile for my

colleagues this week, I became intrigued by something that had been

lingering in my subconscious. I kept feeling like something more

fundamental was necessary for me to understand in order to be able to

fully explain the philosophical underpinnings of XP in a way that would

make sense to my audience.

While reflecting on what I was feeling, I remembered something AgileJoe

said was one of the primary qualities he looked for in a developer:

humility. Then I remembered that Kent Beck says “the key to XP is

integrity” (p. 159) and that integrity is defined as acting in harmony

with one’s values.

As part of the Tae Kwon Do training my son

and I went through, we had to memorize something called “The Five

Tenets”, one of which was humility. The illustration provided to us

showed someone kicking high on a dummy target and feeling very proud of

himself; then someone came along who could kick higher. The lesson was

that no matter how good you are someone else will eventually come along

who is better. Be proud of accomplishments to date, but maintain a

mentor’s heart and a teachable spirit.

As well, I recall

reading about how the Jewish sages teach that even great masters can

learn from the most novice of students if the master remains attentive

to the gifts and opportunities each student offers.

This was

feeling good, so I continued down that mental pathway and set about

trying to put together the “best of all possible worlds” list of

qualities and attitudes that support the values XP espouses. Among a

host of other things, I felt that Agile/XP development means:

  • Taking personal responsibility for continuous self-improvement ;
  • Appreciating and encouraging the unique talents of each team member;
  • Assuming our teammates are doing their best, unless proven otherwise;
  • Holding each other accountable for demonstrating XP’s core values;
  • Holding each other accountable for adhering to the principles and practices agreed to by the team;
  • Understanding when a team member is weak in a given area and providing support for their own self-improvement;
  • Being slow to judge and quick to encourage;

As

a result of this line of reasoning, I began to feel that the two most

important qualities of a good Agile developer are integrity and

humility. Taking a look at each of the above (feel free to add more, as

I’m sure I have not thought of them all), it is easy to see how some

require integrity, some humility, some both.

Practicing these

things in a team setting, fosters a safe, non-judgmental environment.

And in a safe environment, principles and practices that align with XP

core values have an opportunity to flourish. Without these, true

collaboration is not possible and in the end, everyone suffers.

But,

this cannot happen by prescription. On my last team, one of the team

leaders once talked about more rules when he didn’t feel developers

were switching pairs frequently enough. This caused resentment among

some team members who felt like they were the best at determining when

it was appropriate to switch pairing partners. That’s a tough

situation. In the end, if humility and integrity are practiced, core XP

values begin surfacing and situations like these are resolved and the

team moves on.

In my humble opinion, people who don’t practice

these things in their own professional lives stifle Agile/XP

development. You can’t talk Agile then criticize someone coldly when

they ask a question; or talk badly about them behind their back.

The

values, principles and practices of XP require changes in us, many of

which fly in the face of traditional development practices and office

political settings. XP requires an environment in which communication

and feedback occur unhindered, in which failure is understood and

utilized for ultimate success, in which improvement is a natural

process and opportunity abounds. These and other XP principles and

practices require the cultivation of an environment that is safe for

all members of the team.

If individual team members nurture

these basic attitudes of humility and integrity in their own hearts and

minds, fear (and the silence and self-defensiveness it engenders in

team members) is minimized. This helps till the soil and provide

fertile ground in which collaboration and innovation have a place to

take root.

 

[Originally posted 12/1/2008 at http://agilecruz.blogspot.com]