Slide 1

Slide 1 text

Mob Programming whole team collaboration - November 13, 2018 Nick Goede // Anthony Sciamanna @ngoede @asciamanna

Slide 2

Slide 2 text

Passionate about Extreme Programming (XP), Lean Software Development, and Modern Agile. Expertise in helping teams and development organizations improve how they work, the quality of their code, and their ability to deliver value to their customers. Focusing on technical excellence, continuous improvement, and continuous learning. Over a decade of experience using and teaching XP software practices and software design. Passionate about teams that work together and across different roles to produce value for customers. Anthony Sciamanna Software Developer, Engineering Coach, blogger & organizer of the PhillyXP user group. @asciamanna anthonysciamanna.com About Us Nick Goede Software Engineer and Coach. Co-Organizer of @phillyXP. Advocate for humane software development practices. @ngoede nickgoede.com

Slide 3

Slide 3 text

What is Mob Programming? Mission Control Center, Houston, 1965

Slide 4

Slide 4 text

Mob programming is a software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer. - Woody Zuill “ ”

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Discovered at Hunter Industries in 2011 by a team coached by Woody Zuill 2011 A Brief History of Mob Programming Discovered at Hunter Industries in 2011 by a team coached by Woody Zuill

Slide 7

Slide 7 text

2011 2016 A Brief History of Mob Programming Discovered at Hunter Industries in 2011 by a team coached by Woody Zuill By 2016 more than eight mob teams exist at Hunter. The first Mob Programming conference takes place at MIT

Slide 8

Slide 8 text

A Brief History of Mob Programming 2011 2016 Today Discovered at Hunter Industries in 2011 by a team coached by Woody Zuill By 2016 more than eight mob teams exist at Hunter. The first Mob Programming conference takes place at MIT Adoption continues to increase as companies discover the value of whole team collaboration

Slide 9

Slide 9 text

Hunter Industries – Mob Programming 2012

Slide 10

Slide 10 text

Hunter Industries – Mob Programming 2016

Slide 11

Slide 11 text

Adoption has increased significantly since 2011

Slide 12

Slide 12 text

Lean Manufacturing / Toyota Production System (TPS) Extreme Programming (XP) Lean Software Development 1948 - 1975 1996 2003 Mob Programming builds on the principles and practices of…

Slide 13

Slide 13 text

This can’t possibly work!!!

Slide 14

Slide 14 text

Woody identifies a 10x productivity improvement on his teams at Hunter Industries…How? This can’t be efficient?!? Typing ISN’T the bottleneck 1/12th of software development is typing* *Programming Is Mostly Thinking - Tim Ottinger

Slide 15

Slide 15 text

What are the Bottlenecks? Solving Problems Communication Waste (muda) Rework

Slide 16

Slide 16 text

Solving Problems Missing expertise Lack of customer contact Lack of decision makers No time to experiment or learn Only solving part of the problem

Slide 17

Slide 17 text

Waste Building the wrong thing Scrapped work Inventory / Partially done work Waiting / Handoffs Extra processing Extra features The Eight Forms of Waste – Lean Software Development

Slide 18

Slide 18 text

Always 7% Often 13% Sometimes 16% Rarely Used 19% Never Used 45% Standish Group Study, reported by CEO Jim Johnson, XP2002 64% Never or Rarely Used 20% Always or Often Used Feature Usage The danger of specifying all requirements up front

Slide 19

Slide 19 text

Rework Bugs in Production Failed Releases / Hotfixes Work Moving Backwards Unplanned Work (Failure Demand)

Slide 20

Slide 20 text

Solve Problems Communicate Minimize Waste Minimize Rework Mob programming helps teams effectively…

Slide 21

Slide 21 text

Non-Existent on Beginner Agile Teams

Slide 22

Slide 22 text

Mob programming optimizes for the flow the work over the output of an individual. -Woody Zuill, Stopping the Enterprise Death Spiral with Mob Programming “ ”

Slide 23

Slide 23 text

Why is it Important? Mission Operations Control Room (MOCR) at the conclusion of the Apollo 11 lunar landing mission

Slide 24

Slide 24 text

Limit Work in Process (WIP)

Slide 25

Slide 25 text

Avoid Handoffs

Slide 26

Slide 26 text

0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100 Wait Time % Resource Busy Wait Time = %Busy / %Idle

Slide 27

Slide 27 text

Keep work flowing in the RIGHT direction

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Multiple Brains Write Better Code

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

Combined Learning

Slide 32

Slide 32 text

Knowledge Sharing

Slide 33

Slide 33 text

Deming’s 85/15 rule Worker Effectiveness System Worker's Skill

Slide 34

Slide 34 text

Mob Programming Practices First Space Shuttle Mission – Columbia – STS-1 – April 12, 1981

Slide 35

Slide 35 text

Use a Mob Programming Tool http://mobster.cc/

Slide 36

Slide 36 text

Short Switching Intervals Start with seven minutes

Slide 37

Slide 37 text

Disciplined Break Taking via the Pomodoro Technique Taking Breaks in a Disciplined Way – Tim Ottinger

Slide 38

Slide 38 text

Pair Mob Programming with TDD Fast feedback cycles and team-based flow supports working a small batches and taking breaks

Slide 39

Slide 39 text

Strong-Style Pairing Model For an idea to go from your head into the computer it MUST go through someone else’s hands. -Llewellyn Falco – The Strong-Style Pairing Golden Rule “ ”

Slide 40

Slide 40 text

Full Team Participation

Slide 41

Slide 41 text

Pressure to Split the Mob “We need to go faster, let’s work individually or in smaller groups”

Slide 42

Slide 42 text

Individual Work Feels Faster But … • Increases WIP • Increases defects / rework • Increases time in meetings • Increases Handoffs • Increases non-value add activities Slows down the flow of work Work in Process Trap

Slide 43

Slide 43 text

Waste Snake Improving daily work is even more important than doing daily work. -Gene Kim - The DevOps Handbook

Slide 44

Slide 44 text

Learnings Board

Slide 45

Slide 45 text

Avoid Runaway Drivers

Slide 46

Slide 46 text

Debate in Code When unsure what direction to go try both versions AND THEN debate the merits. Don’t get lost in abstract discussion Nasa Scientists posing for Life Magazine in 1961 in front of board of calculations

Slide 47

Slide 47 text

Shared Team Settings Streamline working together by having shared key mappings and settings

Slide 48

Slide 48 text

Invite the Bosses Having managers experience the team’s impediments in real- time will help them address organizational causes

Slide 49

Slide 49 text

For More Information http://bit.ly/phillyxp-mob-programming @asciamanna @ngoede