Slide 1

Slide 1 text

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