KEMBAR78
Remote Mob Programming | PDF
About Me
• Agile Technical & Process Coach, Trainer,
Course Designer and Developer
• Email: cbell@CamilleBellConsulting.com
(best way to contact me)
• Twitter: @agilecamille
• Slideshare: camille_bell
• LinkedIn: https://www.linkedin.com/in/camillebell/ 2
Session Format
• Short Intro to Mob Programming
• Live remote mobbing
• A little more intro and some questions
• More live mobbing
• Some references and more questions
• Wrap up
3
Why Mob Programming? Business
• Single Piece Flow
– features faster to market
• Features Faster to Market
– faster feedback from customers
• Faster Feedback from
Customers
– faster customer satisfaction
• Faster Customer Satisfaction
– happier customers
– market dominance
4
Why Mob Programming? Code
• Better quality code
– fewer bugs
– easier maintenance
– faster enhancement
• Why better quality?
– people have ups and downs
– pairing improves the ups and
lowers downs
– mobbing skyrockets the ups,
practically eliminates downs
5
Working Alone
From Mob Programming Guidebook
by Maarte Pyhajarvi
Mobbing
Why Mob Programming? People
• Ability to break through large tasks easily
• Team bonding through working together
• Team members greatly improve skills
• Shared ownership over decisions
• Lowers risk of staff turnover
• And more
6
Image from Mob Programming
and Personal Satisfaction
by Chris Lucian
https://www.ChrisLucian.com/
Mob Programming
“All the brilliant people
working on the same
thing, at the same
time, in the same
space, on the same
computer.”
– Woody Zuill
(the discoverer of Mob
Programming)
1
7Image from MobProgramming.org
Global Mob Programming
Sunday’s Mob participants:
8
• Africa
– Kenya
• Europe
– Denmark
– Germany
– Spain
• USA
– DC area
– Michigan
– Missouri
– Utah
– Washington State
“For an idea to
get into the code,
it has to go
through some
else’s hands.”
– Llewellyn Falco
Mobbing Roles
9
Hands
Ideas
Ideas
Ideas
Ideas
Image from Mob Programming Guidebook
by Maarte Pyhajarvi
Driver / Navigator Roles
• Driver
– Has hands on the keyboard and types
– Does nothing without direction from Navigator
• Navigator
– Explains idea to be translated into code
– Ideas flow from Navigator to Driver
Level of explanation depends
– Conceptual, if the Driver is more experienced
– More detailed, if the Driver is less experienced
10
Other Mob Programming Roles
• Other Mobbers
– Those who are not the current Driver or Navigator
– Ask clarifying questions
– Share areas of expertise
– Make suggestions, only if asked by the current
Navigator in an Navigator Leads Strongly style mob
– Make suggestions more freely in other style mobs
– Prime Navigator always decides
• Facilitator
– Guides mobbing practices
– Similar role to XP or Agile Coach
– Doesn’t rotate with the mob 11
Mob Team Members
• With Team Every Day, All Day
– Always rotate between Driver and Navigator
– Join as Other Mobbers when not Navigating or Driving
• Occasional Mob Members
– Product Owners, Business Analysts, Security, DBA,
and other specialists, Managers
– May be present only part of the day or rotate in and out
of team
12
Remote Mobbing Rotation with Timer
For Each Driver /
Navigator
• Practice TDD
• Check in code
whenever tests pass
• Refactor as needed
Switch on timer
After Each Round
• Micro Retrospective
Mary
Raj
Tom
Carlos
Eva
Selena
(Driver) hands
on keyboard
13
(Navigator)
directs Driver
Raj will be next
Driver , Selena
will be next
Navigator
Shared
Repository
Micro Retrospective Questions
• How did that feel?
• What was the best thing that happened
that round?
– e.g. something that we want to do more of
14
“Turn Up the Good” - Woody Zuill
Live Remote Mobbing
15
Test Driven Development Feedback Loop
Write a test for
new low level
functionality
Run the test and
watch it fail
(no code = test fails)
Write just enough
code to make the
test pass
Run the test and
watch it pass
Clean up
complex or
messy code
Run test again
to make sure it
still passes
Check in
Code &
Tests
Check in
Code &
Tests
16
Red
Green
Refactor
Mobbing Beyond Coding
• Story Mapping
• Impact & Empathy Mapping
• UI Design
• Application Design
• Database Design
• Architecture
• Dev Ops Pipeline
• Troubleshooting
17
Top image from Jeff Patton
Other images from
Miro templates and examples
Two Common Questions
• What about Testers, BAs, POs, SMs etc.?
– If you are part of the team, you are in the Mob
• Should we mob all day?
– It depends on the team
– Many successful teams mob continuously
– Some teams mob for a number of hours daily
– Some teams mob on really hard problems or to
learn new things
– Give mobbing a try 18
?
A Few Questions
19
Some Mob Programming Styles
• Navigator Leads Strongly
• Navigator Moderates and Decides
• Navigator Listens and Decides
• No Explicit Navigator
20
More Live Remote Mobbing
21
• You are already using this for
meetups and for business
• Developers can use it to
share screens and even
keyboards
• Try https://zoom.us/
Tools We Used Today
22
• Great for learning to Mob, practicing Code
Katas
• Web access http://cyber-dojo.org/
• Dozens of programming languages, test
tools and code katas built in
• Performs automatic check-in with every test
Tools We Used Today
23
• Online-Stopwatch standard Timer
• https://www.online-stopwatch.com
• Preset 3 minute + 2 timer
• https://www.online-
stopwatch.com/full-screen-
interval-timer/?c=vp1vzymz2v
Tools We Used Today
24
• Collaborative Video and Audio
– Everyone’s face seen and voice heard
• Screen Sharing
– Code is seen by everyone
• Keyboard Sharing
– Everyone can become the Driver
• Timer
– Everyone knows when to switch roles
• Whiteboarding
– Everyone can draw and write down thoughts
Essential Tools for Remote Mobbing
25
• Powerful Personal Computer
• Large Monitor - to see code
• Second Monitor - to see faces
• Public Internet or VPN
• Cat 7 Ethernet Cabling (not WIFI if possible)
• Webcam
• Microphone
Basic HW for Remote Mobbing
26
• Collaborative Video and Audio
– Zoom, Webex, Microsoft Teams, Google Meet, etc.
• Screen Sharing
– Zoom, Webex, Microsoft Teams, Google Meet, etc.
• Keyboard Sharing
– Zoom, Webex, Google Meet (Chrome Remote Desktop
installed), Tuple (Mac)
• Timer
– Online-Stopwatch, Mobtime, Mobster
• Whiteboarding
– Miro
Basic SW for Remote Mobbing
27
• Chat (email, phone not adequate)
– Slack, Microsoft Teams (Windows)
• Cloud Based Source Code Repository
– GitHub
• Kanban / Project Board
– Trello
• Brainstorming and Retrospectives
– IdeaBoardz
Other Software for Remote Mobbing
28
Some Mob Programming Books
All available at leanpub.com
29
A Few More Questions
30
Talk to Me
• For info about free talks, workshops, chat or
have me come and help your teams, contact me.
• Email: cbell@CamilleBellConsulting.com
(best way to contact me)
• Twitter: @agilecamille
• Slideshare: camille_bell
• LinkedIn: https://www.linkedin.com/in/camillebell/
31

Remote Mob Programming

  • 2.
    About Me • AgileTechnical & Process Coach, Trainer, Course Designer and Developer • Email: cbell@CamilleBellConsulting.com (best way to contact me) • Twitter: @agilecamille • Slideshare: camille_bell • LinkedIn: https://www.linkedin.com/in/camillebell/ 2
  • 3.
    Session Format • ShortIntro to Mob Programming • Live remote mobbing • A little more intro and some questions • More live mobbing • Some references and more questions • Wrap up 3
  • 4.
    Why Mob Programming?Business • Single Piece Flow – features faster to market • Features Faster to Market – faster feedback from customers • Faster Feedback from Customers – faster customer satisfaction • Faster Customer Satisfaction – happier customers – market dominance 4
  • 5.
    Why Mob Programming?Code • Better quality code – fewer bugs – easier maintenance – faster enhancement • Why better quality? – people have ups and downs – pairing improves the ups and lowers downs – mobbing skyrockets the ups, practically eliminates downs 5 Working Alone From Mob Programming Guidebook by Maarte Pyhajarvi Mobbing
  • 6.
    Why Mob Programming?People • Ability to break through large tasks easily • Team bonding through working together • Team members greatly improve skills • Shared ownership over decisions • Lowers risk of staff turnover • And more 6 Image from Mob Programming and Personal Satisfaction by Chris Lucian https://www.ChrisLucian.com/
  • 7.
    Mob Programming “All thebrilliant people working on the same thing, at the same time, in the same space, on the same computer.” – Woody Zuill (the discoverer of Mob Programming) 1 7Image from MobProgramming.org
  • 8.
    Global Mob Programming Sunday’sMob participants: 8 • Africa – Kenya • Europe – Denmark – Germany – Spain • USA – DC area – Michigan – Missouri – Utah – Washington State
  • 9.
    “For an ideato get into the code, it has to go through some else’s hands.” – Llewellyn Falco Mobbing Roles 9 Hands Ideas Ideas Ideas Ideas Image from Mob Programming Guidebook by Maarte Pyhajarvi
  • 10.
    Driver / NavigatorRoles • Driver – Has hands on the keyboard and types – Does nothing without direction from Navigator • Navigator – Explains idea to be translated into code – Ideas flow from Navigator to Driver Level of explanation depends – Conceptual, if the Driver is more experienced – More detailed, if the Driver is less experienced 10
  • 11.
    Other Mob ProgrammingRoles • Other Mobbers – Those who are not the current Driver or Navigator – Ask clarifying questions – Share areas of expertise – Make suggestions, only if asked by the current Navigator in an Navigator Leads Strongly style mob – Make suggestions more freely in other style mobs – Prime Navigator always decides • Facilitator – Guides mobbing practices – Similar role to XP or Agile Coach – Doesn’t rotate with the mob 11
  • 12.
    Mob Team Members •With Team Every Day, All Day – Always rotate between Driver and Navigator – Join as Other Mobbers when not Navigating or Driving • Occasional Mob Members – Product Owners, Business Analysts, Security, DBA, and other specialists, Managers – May be present only part of the day or rotate in and out of team 12
  • 13.
    Remote Mobbing Rotationwith Timer For Each Driver / Navigator • Practice TDD • Check in code whenever tests pass • Refactor as needed Switch on timer After Each Round • Micro Retrospective Mary Raj Tom Carlos Eva Selena (Driver) hands on keyboard 13 (Navigator) directs Driver Raj will be next Driver , Selena will be next Navigator Shared Repository
  • 14.
    Micro Retrospective Questions •How did that feel? • What was the best thing that happened that round? – e.g. something that we want to do more of 14 “Turn Up the Good” - Woody Zuill
  • 15.
  • 16.
    Test Driven DevelopmentFeedback Loop Write a test for new low level functionality Run the test and watch it fail (no code = test fails) Write just enough code to make the test pass Run the test and watch it pass Clean up complex or messy code Run test again to make sure it still passes Check in Code & Tests Check in Code & Tests 16 Red Green Refactor
  • 17.
    Mobbing Beyond Coding •Story Mapping • Impact & Empathy Mapping • UI Design • Application Design • Database Design • Architecture • Dev Ops Pipeline • Troubleshooting 17 Top image from Jeff Patton Other images from Miro templates and examples
  • 18.
    Two Common Questions •What about Testers, BAs, POs, SMs etc.? – If you are part of the team, you are in the Mob • Should we mob all day? – It depends on the team – Many successful teams mob continuously – Some teams mob for a number of hours daily – Some teams mob on really hard problems or to learn new things – Give mobbing a try 18 ?
  • 19.
  • 20.
    Some Mob ProgrammingStyles • Navigator Leads Strongly • Navigator Moderates and Decides • Navigator Listens and Decides • No Explicit Navigator 20
  • 21.
    More Live RemoteMobbing 21
  • 22.
    • You arealready using this for meetups and for business • Developers can use it to share screens and even keyboards • Try https://zoom.us/ Tools We Used Today 22
  • 23.
    • Great forlearning to Mob, practicing Code Katas • Web access http://cyber-dojo.org/ • Dozens of programming languages, test tools and code katas built in • Performs automatic check-in with every test Tools We Used Today 23
  • 24.
    • Online-Stopwatch standardTimer • https://www.online-stopwatch.com • Preset 3 minute + 2 timer • https://www.online- stopwatch.com/full-screen- interval-timer/?c=vp1vzymz2v Tools We Used Today 24
  • 25.
    • Collaborative Videoand Audio – Everyone’s face seen and voice heard • Screen Sharing – Code is seen by everyone • Keyboard Sharing – Everyone can become the Driver • Timer – Everyone knows when to switch roles • Whiteboarding – Everyone can draw and write down thoughts Essential Tools for Remote Mobbing 25
  • 26.
    • Powerful PersonalComputer • Large Monitor - to see code • Second Monitor - to see faces • Public Internet or VPN • Cat 7 Ethernet Cabling (not WIFI if possible) • Webcam • Microphone Basic HW for Remote Mobbing 26
  • 27.
    • Collaborative Videoand Audio – Zoom, Webex, Microsoft Teams, Google Meet, etc. • Screen Sharing – Zoom, Webex, Microsoft Teams, Google Meet, etc. • Keyboard Sharing – Zoom, Webex, Google Meet (Chrome Remote Desktop installed), Tuple (Mac) • Timer – Online-Stopwatch, Mobtime, Mobster • Whiteboarding – Miro Basic SW for Remote Mobbing 27
  • 28.
    • Chat (email,phone not adequate) – Slack, Microsoft Teams (Windows) • Cloud Based Source Code Repository – GitHub • Kanban / Project Board – Trello • Brainstorming and Retrospectives – IdeaBoardz Other Software for Remote Mobbing 28
  • 29.
    Some Mob ProgrammingBooks All available at leanpub.com 29
  • 30.
    A Few MoreQuestions 30
  • 31.
    Talk to Me •For info about free talks, workshops, chat or have me come and help your teams, contact me. • Email: cbell@CamilleBellConsulting.com (best way to contact me) • Twitter: @agilecamille • Slideshare: camille_bell • LinkedIn: https://www.linkedin.com/in/camillebell/ 31