3 Years of Mob Programming
What it is and lessons learn't so far
Getting the best of everyone
into all the code
using Mob Programming
My first experience
|
- For mobs starting out
- It's a work in progress
- Best book I've ever written!
|
Outline
What is Mob Programming...
The roles and mechanics
Common questions
Things we have learnt
Roles in Mob Programming...
- Driver Typist
- Navigator Rest of mob
The typist
- Listen to what the mob is asking you to do
- Translate it to code (don't prematurely challenge)
- Work with an incomplete understanding for short periods of time
The rest of the mob
- Help discover the next logical step
- Talk at appropriate levels of abstraction
- Always try to increase levels of understanding in the mob
What to do when only one person knows
What to do when nobody knows
Default to collaboration
How do you measure productivity?
- How fast you type?
- Number of hours worked?
- Lines of code written?
|
- How busy you are?
- Time to market?
- Financial return?
|
What destroys productivity?
- Multi tasking
- Interruptions
- Being blocked
- Tech. debt
- Code cruft
|
- Waiting for info
- Unnecessary meetings
- Incomplete understanding
- Investigating defects
- Not understanding the problem
|
Before Mob Programming
When Mob Programming
Defects
Code Cruft
Technical debt
On our own we get the best and worst of us
As a mob we get the best of everyone into ALL the code
Isn't this just expensive pair programming?
Ideal size for problem solving is ±4 people
Waiting for information
If we are not able to answer our own questions, then we are missing someone in the mob
Physical setup matters
What's next?