We claim to work 'agile', but are we truly working together?
What are some things that destroy productivity?
- meetings
- hard-to-read code
- interruptions
- context-switching
- bugs
- questions queue-time
“All the brilliant people working on the same thing, at the same time, in the same space, on the same computer.” – Woody Zuill
“An idea has to go through someone else’s hands to get into the computer” – Llewellyn Falco
“The continuous integration of ideas”
A little bit of history...
Who is Woody Zuill?
- 35+ years experience
- 20+ with Extreme Programming
- 15 years as Agile Coach
- The next story is about his team...
“It’s about a team that took the time and had the freedom to figure out how they could work well together. A path of discovery”
How it started (in 2011):
- learning together every Friday afternoon
- no pressure on deliverable work
- help each other
- coding dojo style: Randori Kata
Randori-no-kata
- 乱取りの形: Free practice forms
- In programming: 2 people solve a coding problem
- Others are expected to follow with focus
- Essential ingredient: communication
What they learned:
- communicating better
- get an idea from person A into the computer as code through person B
- that they enjoyed it
- so, do more of it!
“Turn up the good” - Kent Beck (Extreme Programming Explained)
From studying to real application:
- difficult project was assigned to 2 programmers
- they held a 'traditional meeting' to ask the others for help and to divide work
- looking at the code, discussing options
- and then....
"why don't we refactor this method?"
Because of the studying together:
- from talking to doing
- they recognised bad coding practices
- they knew how to communicate effectively
- they saw the benefits and wanted to do more
And they lived happily ever after as a programming mob
Time to address some concerns
How can this possibly be productive?
Five people are watching one person work?
Turn that around:
How can we be productive if we seperate the people who should be working together
Recognise this?
- It is in doing the work that we discover the work that we must do. Doing exposes reality.
- Remember: question queue-time!
- Discovery
Productivity versus Generativity
“Division of labor is a dangerous fiction when all of your big problems are integration problems” - Kent Beck
How many people is too many people?
- No exact mob size
- Hint: Questions can be answered
- Hint: When people are learning and contributing
"It's not something you can be automatically good at"
- no hiding, this can be scary
- let go of individual credit to go to team-credit
- respect, kindness, consideration
- practice && time needed
Everybody can do it, but you need to practice it!
Mob programming + agile == love
How could mob programming work for us?
Explore:
- When? What for? Who?
- Kindness, consideration & respect
- Facilitator to guide the process
- Retrospective
Only programming?
Mob testing, mob writing...
Would you like to try it?