This document describes several common "anti-practices" or mistakes that are frequently made when implementing eXtreme Programming (XP). It presents three stories as examples. The first story describes a senior developer refactoring code checked in by junior developers without pairing or communicating the changes, undermining their work. The second story describes a developer who feels unnecessary after taking time off and seeing the team function well without him. The third story describes a developer who finds pair programming stressful, feeling constantly observed. In each case, the coach works with the team to resolve the issues by emphasizing communication, personal goals, breaks during pairing, and flexibility in practices.
2. AntiPatterns for XP Practices
Written by Yoshihito Kuranuki(TIS, Inc.) and
Kenji Hiranabe(Eiwa System Management)
Japanese XP Community
Various XP AntiPracties
4. Most common antipractices
Brownie's Works The boss refactored our
code!
Anybody Syndrome - Im not necessary here
Pairing Prison I'm always under
observation!
6. [story 1. Brownie's Works]
WR
CR
WR a freshman,
began to learn the fun of programming.
JS also a freshman, had quite a good
experience of programming in the
university.
7. [story 1. Brownie's Works]
AF (Coach)
This is the first
freshman pair.
Can you guys finish
this task?
Yes, sir
8. [story 1. Brownie's Works]
Late in the evening, they checked in their code to their code base.
The "fanfare" sounded nicely (their auto- build/test batch played
fanfare if it is successful).
It worked!
It was a hard one,
thank you for
your help.
Thank you...
let's go home.
9. [story 1. Brownie's Works]
RG -Senior Developer
Late at the night, the senior programmer RG was working alone.
What's this messy code!!!?
This supposed to be like this...
He refactored all the code the freshman pair
Had just checked in.
10. [story 1. Brownie's Works]
Our code is gone.
Yes, I refactored the
code. Thats collective
ownership.
The next morning
11. [story 1. Brownie's Works]
The boss refactored
our code!
CR ans WR were really depressed
13. What if they are not there?
Mail to the list why
and how you refactored.
I think you should have
pair programmed when
you refactored their code.
[story 1. Brownie's Works]
14. This kind of thing would happen
repeatedly,
so it would be easier
to teach them once.
[story 1. Brownie's Works]
15. [story 1. Brownie's Works]
RGs action made a new move in the team
dynamics. CR andWR learned a lot from RG
with pair programming.The team got back
its normal or even better condition.
[After]
17. [story 2. Anybody Syndrome ]
One morning, WR got a bad cold. He called in
to the office and said to the coach.
"I think I have a cold.
May I take a day off?"
"Sure, it was a tough iteration.
Don't worry about the team.
Take a rest
18. [story 2. Anybody Syndrome ]
After four days' off, he came to the office and saw the
team working just as well as the day he left. He was
happy that everything was fine, but felt some
loneliness.
What is my value for
the team?
Im not necessary here
After that, he began to stay away
from his work quite often.
20. [story 2. Anybody Syndrome ]
The coach had an interview withWR face to face
You are frequently absent
from the office these days,
is anything the matter
with you?
when I took some days off
and came back, I found that the
team did not have any
trouble at all.
21. [story 2. Anybody Syndrome ]
Yes, that's a good thing!
That means the team is fine
without me.
22. [story 2. Anybody Syndrome ]
Thats not quite right. Everybody
wants to work with you, and
you have your own goal in the project.
You participate in the project with that goal,
dont you?
The coach and WR talked about his goal in the
project and his career plan. WR was grateful to
the coach for giving an opportunity to talk over
these kinds of things in a big picture.
23. The project members found that they had their
own goals as well as the project goal and they
were free to talk about them anytime.
That became a grand rule set by the coach.
They now talked about their dreams, plans,
and families.They started acting more
autonomously, and the fresh energy came back
to the team.
[story 2. Anybody Syndrome ]
[After]
25. [story 3. Pairing Prison ]
CR was a senior programmer with three years of
experience in waterfall type development
environment. He had been interested in XP, and this
was his first XP experience in a real project. He had
wanted to try pair programming, so this was a
wonderful opportunity for him.
26. When he paired with juniors, he
got serious so he become a good
example.
[story 3. Pairing Prison ]
27. With seniors, he felt like he
was taking an examination.
Pair programming made him
feel observed in a prison.
[story 3. Pairing Prison ]
28. He could not stand the situation anymore, and
consulted the coach. He said
[story 3. Pairing Prison ]
I'm always under
observation!
30. The next day, the coach told the team
that he recommended to take breaks
more often.
The team adopted this as a ground
rule. In addition, they doubled the
lunch time for their personal time.
[story 3. Pairing Prison ]
31. CR got more enterprising than before.
The team got energetic, again. Some
pairs spent break-time together to
increase their communication, some
enjoyed their private time, and others
(senior-junior pair) sometimes had
private lessons. Longer breaks worked.
[After]
[story 3. Pairing Prison ]
34. List of other antipractice
Powerful Owner - "We are under his thumb!"(The person whos
writing on the whiteboard has a power)
Outnumbers View - "We are a minority group"(Opinions of
majority beats minority)
Imperial XP - "Why do I do such a thing?"(Member believe that
XP is always the only right process) Loose Control - "Sure. XP is
free, you know."(Do XP- like practices without management, at
all)
Frozen Pair - "The two are pairing again!"(The same two
members always pair until they finish their task)
Formal Format - "Do we have to do all the practices just as in the
book?(Members adopt and fix the practices and stop
improvement)
Misleading Influenza - "I heard you are doing THE XP"(The effect
of XP is promoted in a organization without its objectives, values
and principles)
http://www.ask.sakura.ne.jp/object-garden/