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]