XP “AntiPractices” : antipatterns for XP practices
including :
AntiPractice #1: Brownie’s works (“The boss refactored my code!”)
AntiPractice #2: Pairing Prison ("I'm always under observation!”)
presented by Kuranuki Yoshihito (Sonic Garden) and Kenji Hiranabe(Change Vision, Inc.)
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
XP anti practices
1. Page: 1
- Yoshihito Kuranuki , TIS Inc.
XP “AntiPractices”
: antipatterns for XP practices
- Kenji Hiranabe , Eiwa System Management, Inc.
Front Page Illustration by Koji Kitamura
2. Page: 2
We found them while introducing XP to a commodities futures project in
Japan.
Member Experience years Role
Software dev OO XP
KO Many 1 0 Project Manager / Analyst
YK 4 8 2 Coach
RH 3 2 0.7 Programmer / Architect
SN 3 0.2 0.2 Programmer / DB Admin
JS 1 0 0 Programmer
MN 1 0 0 Programmer
IN 3 2.5 0 Programmer
HK 3 1 0 Programmer (only 1st phase)
TK 2 0.5 0 Programmer (only 2nd phase)
*Their career is at the time of PJ participation.
l Contract software development in two phases (5 months, 4 months)
l Mission-critical system (24 hours 365 days).
l Rich Client / Web Service / C++ / Java / WebLogic / Eclipse
Project Profile
People Profile
3. Page: 3
We explain four AntiPractices in “S-A-A-C” style in this presentation.
Action
After
Story
Crystallize
Story :
The problem
happened in the
context is
explained in a
narrative format.
Action :
The action taken
to the problem.
After :
The change which
took place to the
team after the
Action.
Crystallize :
A set of the
problem, context
and solution,
generalized in a
“AntiPractices”
format.
4. Page: 4
AntiPractice #1: Brownie’s works (“The boss refactored my code!”)
IN (a senior programmer)
JS
(a freshman)
MN (a freshman)
Story
5. Page: 5
Our antidote for Brownie’s works was to encourage pair programming.
Name Brownie’s works (“The boss refactored my code!”)
Background Junior members actively write and commit code. Collective ownership is working.
Symptom Juniors’ proud source code is changed completely different by a senior at night. The new code
might be better but their motivation goes away.
Cause A side effect of Collective Ownership and violation of pair programming by Refactoring alone.
The root cause is the senior's lack of sense of team building.
Ideal Juniors get energetic to see their code working in the customer’s system.
Prescription Seniors should refactor the juniors' code in a pair programming session. If the senior has no
choice, he should tell the team the reason and the process of his decision so as to make the
team learn from it.
* The name is after a fairy tale.
Action
After IN’s action made a new move in the team dynamics.
MN and JS learned a lot from IN with pair programming.
The team got back its normal or even better condition.
The coach caught IN (the senior) and talked with him alone.
“I think you should have pair program when you refactored their code.”
IN started pair-programming with juniors of his own accord and showed how
to refactor the code.
Crystallize
7. Page: 7
Our antidote for Pairing Prison was to respect breaks and email times
Name Pairing Prison (I’m always under observation!”)
Background Always pair program in development time.
Symptom Some members feel observed all the time and uncomfortable. Then hate to come to the office
every morning.
Cause The down side of the pair programming (fulltime review). The root cause is the lack of
respect for personal free time.
Ideal In order to increase efficiency and mental health of pair programming, private mail check time
and frequent break should be highly respected.
Prescription Spare sufficient time for breaks between pair programming sessions. Balance breaks and work
time. For example, double the lunch time and declare the time as private time. Kent Beck
recommends drinking water frequently. [1]
[1] I would name this “Nature Callback.”
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.
The coach found that they had no time to work alone and that it was not easy
to take breaks while in pairs.
The coach told the team that he recommended to take breaks more often.
The team adopts this as a ground rule.
Action
After
Crystallize
8. Page: 8
AntiPractice #3: Burning Pair ("The two are pairing … again!”)
MN (a freshman)
TK (a newcomer)
Story
9. Page: 9
Our antidote for Burning Pair was having the attitude of mutual help.
Name Burning Pair
Background The number of juniors increased in the team. They signed up for their task by themselves.
Symptom The same two members always pair until they finish their task (even if troubled).
Cause Overdrive of fully spontaneous sign up. Lack of the coach’s effective interference to the pairing.
The root cause is too a strong sense of self-responsibility (Japanese property).
Ideal Pairing should be spontaneous and when problems occur, the team should fight the problem
together.
Prescription When there is a burning pair in the team, in addition to the spontaneous sign up in the stand up
meetings, the coach should help the team (or even direct to) create a effective pair. Give the
team “One for all, all for one” feeling.
The task made a smooth progress and the teamwork improved.
While it is important to be responsible to the signed-up task,
it is essential that problems be solved by the team in the given time.
Asking for help and giving it became the team’s rule.
The coach decided to dissolve the burning pair once and assigned IN
(experienced for the task) to be one of the pair.
The coach said to the burning pair, “Don’t think you must be the only ones
to solve your problems. The team is always here for you to help. "
Action
After
Crystallize
10. Page: 10
AntiPractice #4: Anybody Syndrome ("I’m not necessary here…”)
HK was sick in bed for four days
and was absent from the company.
The team was working just as well as the day he left.
He was happy that everything was fine,
but felt some loneliness.Something is uncomfortable.
"What is my value for the team?"
He began to stay away from his work quite often.
He murmured “I’m not necessary here…”
After that,
When he came to the office,
Story
11. Page: 11
Our antidote for Anybody’s Syndrome was attending to personal goals.
The project members found that they had their own goal as well as the project
goal and they were free to talk about them anytime.They started acting
more autonomously, and the fresh energy came back to the team.
The coach had an interview with HK face to face, talked about his goal in the
project and his career plan.
HK is grateful to the coach for giving opportunity to talk over these kinds of
things in a big picture.
Name Anybody Syndrome (“I’m not necessary”)
Background The team shares information at a high level. Project goes well even if someone is missing.
Symptom Some members suspect they are not needed in the team and they lose objectives and
motivation.
Cause Insufficient communication between the coach and members. The root cause is too much
focus on information sharing and negligence of individual’s goals aside from the project.
Ideal Information is well-shared and at the same time the members feel their necessity for the
team.
Prescription Even if the development is a team work, the coach shouldn’t forget to talk personally with
individuals. Do interviews and objective management to the members periodically and catch
the sign early.
Action
After
Crystallize
12. Page: 12
We continue to collect AntiPractices in the Japanese community
² Powerful Owner
Ø "We are under his thumb!" (The person who’s 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)
² Formal Format
Ø “I understand this rule, but why?” (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)
13. Page: 13
“AntiPractices” are the “disease” side effects of overdriving good rules.
We organize them in a medical prescription form.
AntiPractice Influenza
Background Series of
overwork
Symptom Cough /
Fever
Cause Virus
Ideal Healthy
life
Prescription Vaccine /
Good sleep
OverDrive!!!
Japanese proverb "more than enough is too much"
practices
Bad state
1 2 3 4 5 6 7 8 9 10
14. Page: 14
Summary: AntiPractices show problems from “overdriving” practices
p The root causes are often found in the people, the team, and
the organization.
p AntiPractices capture the problems by naming them like
“Patterns”.
p The problems caused by practices are not solved only by adjusting and
adding practices.
p The coach has to turn his eyes to the subtleties of people.
p We collect AntiPractices in the Japanese XP community.
http://www.ask.sakura.ne.jp/object-garden/
I am waiting for your contribution.
people
practices Practices to People!
15. Page: 15
Next step: We are defining “XP-Balanced Scorecard” (XP-BSC)
Financial
Customer
Internal
Business
Processes
Learning
and
Growth
BSC
Business
Value
Business
Value
Customer
Practices
?
XP-BSC
People!
XP
Customer
Development
Four Values
16. Page: 16
Thanks
Special thanks to
-Front Page Illustration by Koji Kitamura
-Cartoons Illustration by Rika Yoshimura
Authors:
Yoshi Kuranuki (main author)
kuranuki@ask.sakura.ne.jp
Project Manager of TIS Inc.
Consistently engaged in OO development. In recent XP projects,
acted as a coach and facilitated the projects to success.
Kenji Hiranabe (presenter)
hiranabe@esm.co.jp
Chief consultant of Eiwa System Management, Inc.
Also a Japanese translator of XP/Agile books of Ron Jeffries, Ken
Auer, Mary Poppendieck, Robert Martin, and Jim Highsmith.
and
-Shepherded by Alistair Cockburn