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

About Me

@MarkPearlCoZa

blog.MarkPearl.co.za

Dev Lead @ MYOB

  • For mobs starting out
  • It's a work in progress
  • Best book I've ever written!

[https://leanpub.com/GettingStartedWithMobProgramming]

Outline

What is Mob Programming...

The roles and mechanics

Common questions

Things we have learnt

What is Mob Programming?

Roles in Mob Programming...

  • Driver Typist
  • Navigator Rest of mob

The typist

  1. Listen to what the mob is asking you to do
  2. Translate it to code (don't prematurely challenge)
  3. Work with an incomplete understanding for short periods of time

The rest of the mob

  1. Help discover the next logical step
  2. Talk at appropriate levels of abstraction
  3. 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

Is this cost effective?

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

Multitasking

Before Mob Programming

When Mob Programming

Defects
Code Cruft
Technical debt

A question of quality

On our own we get the best and worst of us

[image source: Mob Programming Guidebook]

As a mob we get the best of everyone into ALL the code

[image source: Mob Programming Guidebook]

Isn't this just expensive pair programming?

Ideal size for problem solving is ±4 people

[research source: American Psychological Association (2006)]

Increased flow

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?

Thank you

@MarkPearlCoZa

Info@MarkPearl.co.za

https://MarkPearlCoZa.github.io/Talk_MobProgramming