M O B P R O G R A M M I N G
A J O U R N E Y M A N ’ S P H O T O G R A P H I C G U I D E T O
Lennart Fridén
@DevLCSC | codecoupled.org
Slide 2
Slide 2 text
– W O O D Y Z U I L L
All the brilliant people working on the same thing,
at the same time, in the same space, and on the
same computer.
Slide 3
Slide 3 text
– A B U N C H O F R A N D O M P E O P L E
Pair programming on steroids.
Slide 4
Slide 4 text
P R E PA R I N G A S E S S I O N
S T E P 1
Slide 5
Slide 5 text
• High resolution projector
or other large display.
• A familiar development
environment.
• A room with plenty of air.
• Comfortable chairs.
• A large whiteboard.
• A tough problem for the
team to work on together.
R E C O M M E N D E D
M O B S E T U P
Slide 6
Slide 6 text
– T H AT P E R S O N O N S TA G E S H O W I N G Y O U T H I S
There is no such as thing as too many, too large, or
too high-resolution displays.
Slide 7
Slide 7 text
P I C K I N G A TA S K
S T E P 2
Slide 8
Slide 8 text
F I N D T H E
R I G H T L E V E L
• Only got a few hours?
Working with an unfamiliar
team? You may want to
mob program a code kata.
• Already working as a team?
A non-obvious, challenging
task that requires the whole
team to participate will
show the strengths of mob
programming.
Slide 9
Slide 9 text
A S S E M B L E Y O U R M O B
S T E P 3
Slide 10
Slide 10 text
B E I N C L U S I V E
• Ever wished you had stake
holders, domain experts,
UX designers, operations,
customers, or end users
readily available to
answer questions and
clarify requirements and
needs? Invite them!
Slide 11
Slide 11 text
S K I L L L E V E L S
• Mixed teams are a
strength, not a problem.
• Mob programming
equalises differing skill
levels swiftly.
• Editor key shortcuts,
domain knowledge,
programming language
constructs and concepts,
and previously stumbled-
upon pitfalls are all shared.
Slide 12
Slide 12 text
S TA R T M O B B I N G
S T E P 4
Slide 13
Slide 13 text
H O W T O M O B
• The driver works at the
keyboard.
• The rest of the team act
as navigators.
• After a fixed amount of
time, e.g. 10-15 min, the
driver is replaced.
• Repeat until everyone has
acted as a driver, then
repeat from the top.
Slide 14
Slide 14 text
L E AV I N G T H E
D R I V E R ’ S S E AT
• Once you have finished
your rotation as the driver,
make a note of it.
Slide 15
Slide 15 text
TA K E A B R E A K
• Need a break? Take one!
The important thing is that
the mob continues to
work. Individuals can
come and go as needed.
Slide 16
Slide 16 text
L E A R N A N D A D A P T
S T E P 5
Slide 17
Slide 17 text
E X P E R I M E N T
• Each cycle is an excellent
opportunity to perform
various micro-experiments.
• Not used to test-driven
development? Try it!
• Avoid using the mouse.
• Try the strong pairing
style of not letting the
driver write anything
unless instructed to do
so by a navigator.
Slide 18
Slide 18 text
R E T R O S P E C T I V E
• End the session with a
short retrospective.
• What worked?
• What can be improved?
• What would you like to
do differently?
• Always turn up the good!
Slide 19
Slide 19 text
S H A R E Y O U R E X P E R I E N C E S
S T E P 6
Slide 20
Slide 20 text
T E L L P E O P L E
• Found something that
works really well given your
context? Perhaps learnt
something unexpected
about you and your team?
• Write about it on your
development blog.
• The Twitter hashtag is
#MobProgramming.
• Encourage others to
experiment too!
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
L E N N A R T F R I D É N
Twitter: @DevLCSC
Github: DevL
Blog: codecoupled.org
drawing by Augie De Blieck