along the way, but now you're equipped to handle that. These challenges are nothing
compared to maintaining the proper attitude while you're learning and doing XP.
XP will not work in an environment where bravado and spin are the norm.
These things are the two biggest barriers to getting XP accepted and making it work.
You need to nip them in the bud. The best place to start is by setting the example
yourself. This takes more courage than many people can muster.
Honesty
Lying kills trust. Without trust you might as well not do XP. Customers and
developers need to know without a shred of doubt that they are being told the truth
all the time by everyone.
XP is not about diplomacy. It assumes (and demands) brutal honesty all the
time. The practices make it harder to lie than to tell the truth. It forces transparency
on a scale most people aren't used to. They often rebel against it.
XP forces developers and customers to be honest with one another. Take
planning. Many people criticize XP for not planning ahead like many "heavy"
approaches do. The problem is that those approaches are predicated on guesses
about the future. That isn't telling the truth, no matter how good your guesses turn
out to be. The unvarnished truth is that we don't really know what the future holds.
Planning in XP is based on the principle that we admit what we know and don't
know at every step. We put together a rough project plan based on rough estimates
of rough requirements (stories). So does everyone else. If they don't tell you so,
they are either lying or naïve.
We usually only put a detailed plan together only one iteration ahead because
planning further is a fruitless exercise in reading tea leaves. Sure, you can try to
work out more of the details based on the limited knowledge you have to look that
far ahead, and you may actually get it close. Of course, the effort to do so will cost
you some time now, and you'll use more time later either verifying your plans,
revising your plans, or explaining why you aren't hitting your plans. Since we know
we'll have to do at least one of these, we choose the more profitable. We revise or,
more accurately, refine our plan based on the increased knowledge we do have when
we get to that part of the rough plan. We assume that reality won't conform to the
plan, so we keep it simple and easy to change. We keep iterations short so that we
and customers can get frequent feedback on how things are going. That's honest.
XP also forces developers to be honest with themselves and with other
developers. If you are writing code in pairs, at least one other person sees every
boneheaded mistake you make. If a mistake happens to slip through (this never
happens to us, of course), somebody will find it eventually because there is no code
ownership. The preferred physical environment for XP has few or no walls, so
people can see you struggling or goofing off. There are daily stand-up meetings
where people get to hear (or ask) what you've been up to. If you want to be
dishonest as an XP developer, feel free. But know in advance that it will be like
denying you've taken cookies from someone else's cookie jar when they saw you do
it and the crumbs are still in the corner of your lips.
XP doesn't reject tact. You should still respect the people with whom you are
working. But XP demands brutal honesty all the time. The truth is going to have to
be dealt with eventually. Ignoring it dooms you to failure, either in results or
perception.
No comments:
Post a Comment
Your comments are welcome!