From my talk at Agile Israel 2019: A description of the possibilities of team work in software development and a straightforward process for getting there: provide the permission to work together, start mobbing, encourage pairing and remove personal assignments.
9. 9 |
So most of the team
makes slow progress.
Are we OK with this?
10. 10 |
And that’s the awful
truth. Writing
software is hard. And
it is even harder to
understand that it’s
hard. It’s like nothing
else we know. And
this is why we need
something that’s very
strong to make it
work.
13. 13 |
Team work! Making
humanity work for
more than 10,000
years!
14. “Divide and conquer”
14 |
Pros Cons
Easy to plan/control Long cycle time
Easy to measure Slow people growth
Convenient Team spirit
Pros and Cons of “no
team work” approach
15. 15 |
The Teamwork Manifesto
Sharing knowledge over self improvement
Working together over individual work
Talking ideas over presenting final work products
Team over ego
While we understand the items on the right are important we believe the items on the
left will lead to better results, personally and team wise.
We need to find the right balance.
17. Step 1: Provide the permission to teamwork
Give permission to work together
Publicly praise team players
Privately ask Kobis (experts) to spend time helping people
Avoid measuring individual tasks
Walk the talk
17 |
18. Step 2: Mob
programming
A great technique for collaboration,
alignment, barrier breaking and
productivity
The whole team develops together
Keyboard moves every few minutes
Person on keyboard does not “think”
18 |
19. Mob programming best practices
Move the keyboard every 5 minutes
One team member should take time – use an alarm so everyone
will hear it
In case one team member is taking over the conversation assign a
navigator – the person that decides what the driver will do.
Navigators switch every time the driver does
You don’t undo what the previous navigator did – you try keeping
the same direction
20. Start mobbing!
Set a recurring mobbing
session of 1.5 – 2 hours.
If you have a specific
difficult task, set a longer
time and just get done
with it
Make sure you have a
good room with a big
screen and a wireless
keyboard
21. Step 3: Pairing
Pairing is not new, yet not widely adopted
It is more convenient working alone than in a pair yet it is not as
gratifying. Help people get there.
Pairing is intense. Take breaks.
Two main pairing schemes:
To ramp up: Teacher – student (teacher never touches the keyboard)
Peers (every few minutes change driver. Only pair with someone you appreciate)
In both schemes, all thoughts should be first said, only then go to
the keyboard
22. Start Pairing!
Look for pairing
opportunities during the
daily meeting
Pairing sessions should be
1-2 hours long
Use pairing to move from
teacher – student to peers
22 |
23. Step 4: No “Assigned” people on tasks
Work according to priority
Reduce number of active
items
Assigned: Yaki
Assigned: Kobi
Assigned: Yaki
Assigned: Yaki
Assigned: Kobi
Assigned: Yaakov
Assigned: Yaakov
Assigned: Yaki
24. Real Teamwork
24 |
Pros Cons
High energy Lower control
High quality Intensive. Take breaks!
Knowledge
alignment/Versatility
~15% higher effort short term
Almost twice as fast
25. Bettering Teamwork
1. Provide the permission to work together
2. Mob programming
3. Pairing
4. No “Assigned” people on tasks, lower number of active items (WIP)
25 |
וזוהי, גבירותי ורבותיי
האמת העגומה.
לפתח תוכנה זה קשה.
הנה היה אצלי בעל מקצוע לפני כמה ימים, לתקן תריס.
יש לו את התיק עם כל מה שהוא צריך, בא ותיקן. סידר וניקה אחריו.
עשה יופי של עבודה.
וכשראיתי אותו עובד הבנתי עוד פעם כמה אצלנו זה שונה.
האם הוא חשש שכתוצאה מהתיקון אי אפשר יהיה לסגור את החלון בחדר השני?
או שדלת הכניסה תיתקע?
אם כן, זה יותר מזכיר את מה שאנחנו עושים.