SlideShare a Scribd company logo
1 of 50
Mob Programming
whole team collaboration
BarCamp Philly 11 - November 10, 2018
Nick Goede // Anthony Sciamanna
@ngoede @asciamanna
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
What is Mob Programming?
Mission Control Center, Houston, 1965
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
“
”
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
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
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
Hunter Industries – Mob Programming 2012
Hunter Industries – Mob Programming 2016
Adoption has increased significantly since 2011
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…
This can’t possibly work!!!
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
What are the Bottlenecks?
Solving Problems
Communication
Waste (muda)
Rework
Solving Problems
Missing expertise
Lack of customer contact
Lack of decision makers
No time to experiment or learn
Only solving part of the problem
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
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
Rework
Bugs in Production
Failed Releases / Hotfixes
Work Moving Backwards
Unplanned Work (Failure Demand)
Solve Problems
Communicate
Minimize Waste
Minimize Rework
Mob programming helps teams effectively…
Non-Existent on Beginner Agile Teams
Mob programming optimizes for
the flow the work over the output
of an individual.
-Woody Zuill, Stopping the Enterprise Death Spiral
with Mob Programming
“
”
Why is it Important?
Mission Operations Control Room (MOCR) at the conclusion of the Apollo 11 lunar landing mission
Limit Work in Process (WIP)
Avoid Handoffs
0
10
20
30
40
50
60
70
80
90
100
0 10 20 30 40 50 60 70 80 90 100
WaitTime
% Resource Busy
Wait Time = %Busy / %Idle
Keep work flowing
in the RIGHT
direction
Multiple Brains Write
Better Code
Combined Learning
Knowledge Sharing
Deming’s 85/15 rule
Worker Effectiveness
System
Worker's Skill
Mob Programming Practices
First Space Shuttle Mission – Columbia – STS-1 – April 12, 1981
Use a Mob Programming Tool
http://mobster.cc/
Short Switching Intervals
Start with seven minutes
Disciplined Break Taking
via the Pomodoro Technique
Taking Breaks in a Disciplined Way – Tim Ottinger
Pair Mob Programming with TDD
Fast feedback cycles and
team-based flow supports
working a small batches
and taking breaks
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
“
”
Full Team Participation
Pressure to Split the Mob
“We need to go
faster, let’s work
individually or in
smaller groups”
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
Waste Snake
Improving daily work is even more important
than doing daily work.
-Gene Kim - The DevOps Handbook
Learnings Board
Avoid Runaway Drivers
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
Shared Team Settings
Streamline working together by having shared
key mappings and settings
Invite the Bosses
Having managers experience the team’s impediments in real-
time will help them address organizational causes
https://www.meetup.com/PhillyXP
For More Information
http://bit.ly/barcamp-philly-mob-programming
@asciamanna @ngoede

More Related Content

What's hot

MS Dynamics CRM - One Stop Extension Reporting
MS Dynamics CRM - One Stop Extension ReportingMS Dynamics CRM - One Stop Extension Reporting
MS Dynamics CRM - One Stop Extension Reportingnetc2012
 
Organizational Design for Effective Software Development
Organizational Design for Effective Software DevelopmentOrganizational Design for Effective Software Development
Organizational Design for Effective Software DevelopmentDev9Com
 
Basics of Computer Coding: Understanding Coding Languages
Basics of Computer Coding: Understanding Coding LanguagesBasics of Computer Coding: Understanding Coding Languages
Basics of Computer Coding: Understanding Coding LanguagesBrian Pichman
 
Dont wait what 300 ld leaders have learned about building data fluency
 Dont wait what 300 ld leaders have learned about building data fluency Dont wait what 300 ld leaders have learned about building data fluency
Dont wait what 300 ld leaders have learned about building data fluencyHuman Capital Media
 
SUPERCHARGE EMPLOYEE TRAINING WITH HIGH-POWERED LEARNING CONTENT
SUPERCHARGE EMPLOYEE TRAINING WITH HIGH-POWERED LEARNING CONTENTSUPERCHARGE EMPLOYEE TRAINING WITH HIGH-POWERED LEARNING CONTENT
SUPERCHARGE EMPLOYEE TRAINING WITH HIGH-POWERED LEARNING CONTENTHuman Capital Media
 
Software development methodologies of dumb
Software development methodologies of dumbSoftware development methodologies of dumb
Software development methodologies of dumbAurora Computer Studies
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesIgor Moochnick
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile designIgor Moochnick
 
Play to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and DicePlay to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and DiceMike Clement
 
Breakdown of fast-e
Breakdown of fast-eBreakdown of fast-e
Breakdown of fast-eNia Wearn
 
Saahp Tooling Up 2009
Saahp Tooling Up 2009Saahp Tooling Up 2009
Saahp Tooling Up 2009Emil Chuck
 
Software Testing Career Skill Development on BugDay Bangkok 2009
Software Testing Career Skill Development on BugDay Bangkok 2009Software Testing Career Skill Development on BugDay Bangkok 2009
Software Testing Career Skill Development on BugDay Bangkok 2009Prathan Dansakulcharoenkit
 
An Improvement and Practice of Bilingual Sentence Flashcard Maker
An Improvement and Practice of Bilingual Sentence Flashcard MakerAn Improvement and Practice of Bilingual Sentence Flashcard Maker
An Improvement and Practice of Bilingual Sentence Flashcard MakerKenichi Kamiya
 
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...Technical Agility institute
 
Agile Gurgaon 2016 Conference | The game has changed! | Sudipta Lahiri
Agile Gurgaon 2016 Conference | The game has changed! | Sudipta LahiriAgile Gurgaon 2016 Conference | The game has changed! | Sudipta Lahiri
Agile Gurgaon 2016 Conference | The game has changed! | Sudipta LahiriAgileNetwork
 

What's hot (17)

MS Dynamics CRM - One Stop Extension Reporting
MS Dynamics CRM - One Stop Extension ReportingMS Dynamics CRM - One Stop Extension Reporting
MS Dynamics CRM - One Stop Extension Reporting
 
Organizational Design for Effective Software Development
Organizational Design for Effective Software DevelopmentOrganizational Design for Effective Software Development
Organizational Design for Effective Software Development
 
Basics of Computer Coding: Understanding Coding Languages
Basics of Computer Coding: Understanding Coding LanguagesBasics of Computer Coding: Understanding Coding Languages
Basics of Computer Coding: Understanding Coding Languages
 
Dont wait what 300 ld leaders have learned about building data fluency
 Dont wait what 300 ld leaders have learned about building data fluency Dont wait what 300 ld leaders have learned about building data fluency
Dont wait what 300 ld leaders have learned about building data fluency
 
DistributedScrumPrimer
DistributedScrumPrimerDistributedScrumPrimer
DistributedScrumPrimer
 
SUPERCHARGE EMPLOYEE TRAINING WITH HIGH-POWERED LEARNING CONTENT
SUPERCHARGE EMPLOYEE TRAINING WITH HIGH-POWERED LEARNING CONTENTSUPERCHARGE EMPLOYEE TRAINING WITH HIGH-POWERED LEARNING CONTENT
SUPERCHARGE EMPLOYEE TRAINING WITH HIGH-POWERED LEARNING CONTENT
 
Software development methodologies of dumb
Software development methodologies of dumbSoftware development methodologies of dumb
Software development methodologies of dumb
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
 
HUMANIZING BUSINESS AND CHANGE
HUMANIZING BUSINESS AND CHANGEHUMANIZING BUSINESS AND CHANGE
HUMANIZING BUSINESS AND CHANGE
 
Play to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and DicePlay to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and Dice
 
Breakdown of fast-e
Breakdown of fast-eBreakdown of fast-e
Breakdown of fast-e
 
Saahp Tooling Up 2009
Saahp Tooling Up 2009Saahp Tooling Up 2009
Saahp Tooling Up 2009
 
Software Testing Career Skill Development on BugDay Bangkok 2009
Software Testing Career Skill Development on BugDay Bangkok 2009Software Testing Career Skill Development on BugDay Bangkok 2009
Software Testing Career Skill Development on BugDay Bangkok 2009
 
An Improvement and Practice of Bilingual Sentence Flashcard Maker
An Improvement and Practice of Bilingual Sentence Flashcard MakerAn Improvement and Practice of Bilingual Sentence Flashcard Maker
An Improvement and Practice of Bilingual Sentence Flashcard Maker
 
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
 
Agile Gurgaon 2016 Conference | The game has changed! | Sudipta Lahiri
Agile Gurgaon 2016 Conference | The game has changed! | Sudipta LahiriAgile Gurgaon 2016 Conference | The game has changed! | Sudipta Lahiri
Agile Gurgaon 2016 Conference | The game has changed! | Sudipta Lahiri
 

Similar to Mob Programming - Whole Team Collaboration

How AI is transforming learning
How AI is transforming learningHow AI is transforming learning
How AI is transforming learningSprout Labs
 
What Is Artificial Intelligence in Product Management by Apple PM
What Is Artificial Intelligence in Product Management by Apple PMWhat Is Artificial Intelligence in Product Management by Apple PM
What Is Artificial Intelligence in Product Management by Apple PMProduct School
 
Agile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxAgile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxADDY50
 
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?Mustafa Ekim
 
Agile camp distributedteams
Agile camp distributedteamsAgile camp distributedteams
Agile camp distributedteamsTheAgileDen
 
Agile camp Distributed Teams
Agile camp Distributed TeamsAgile camp Distributed Teams
Agile camp Distributed TeamsErin Bolk
 
Take 5 Modernization Workshop
Take 5 Modernization WorkshopTake 5 Modernization Workshop
Take 5 Modernization WorkshopRed Pill Now
 
hroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docxhroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docxpooleavelina
 
Organizing Technical Teams
Organizing Technical TeamsOrganizing Technical Teams
Organizing Technical TeamsThomas Sarlandie
 
Tom van Ees - Academic and Commercial software Development
Tom van Ees - Academic and Commercial software DevelopmentTom van Ees - Academic and Commercial software Development
Tom van Ees - Academic and Commercial software DevelopmentDavinci software
 
Noel Holmes User Experience Portfolio 1 Of 2
Noel Holmes User Experience Portfolio 1 Of 2Noel Holmes User Experience Portfolio 1 Of 2
Noel Holmes User Experience Portfolio 1 Of 2Noel Holmes
 
Software Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it betterSoftware Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it betterTasktop
 
Scaling an Engineering Team
Scaling an Engineering TeamScaling an Engineering Team
Scaling an Engineering TeamDashlane
 
Ppp Of Simulation Development2
Ppp Of Simulation Development2Ppp Of Simulation Development2
Ppp Of Simulation Development2guestf51d8f
 
Keeping Pace with Recruitment Technology Trends - Fordyce Forum Presentation
Keeping Pace with Recruitment Technology Trends - Fordyce Forum PresentationKeeping Pace with Recruitment Technology Trends - Fordyce Forum Presentation
Keeping Pace with Recruitment Technology Trends - Fordyce Forum PresentationShannon Myers
 
Trends in digital learning - 2018
Trends in digital learning - 2018 Trends in digital learning - 2018
Trends in digital learning - 2018 Sprout Labs
 
Originate - Think In Hours Not Sprints
Originate - Think In Hours Not SprintsOriginate - Think In Hours Not Sprints
Originate - Think In Hours Not SprintsRob Meadows
 

Similar to Mob Programming - Whole Team Collaboration (20)

How AI is transforming learning
How AI is transforming learningHow AI is transforming learning
How AI is transforming learning
 
What Is Artificial Intelligence in Product Management by Apple PM
What Is Artificial Intelligence in Product Management by Apple PMWhat Is Artificial Intelligence in Product Management by Apple PM
What Is Artificial Intelligence in Product Management by Apple PM
 
Agile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxAgile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docx
 
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
 
Agile camp distributedteams
Agile camp distributedteamsAgile camp distributedteams
Agile camp distributedteams
 
Agile camp Distributed Teams
Agile camp Distributed TeamsAgile camp Distributed Teams
Agile camp Distributed Teams
 
Take 5 Modernization Workshop
Take 5 Modernization WorkshopTake 5 Modernization Workshop
Take 5 Modernization Workshop
 
hroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docxhroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docx
 
Agile vs ??
Agile vs ??Agile vs ??
Agile vs ??
 
Organizing Technical Teams
Organizing Technical TeamsOrganizing Technical Teams
Organizing Technical Teams
 
Tom van Ees - Academic and Commercial software Development
Tom van Ees - Academic and Commercial software DevelopmentTom van Ees - Academic and Commercial software Development
Tom van Ees - Academic and Commercial software Development
 
Noel Holmes User Experience Portfolio 1 Of 2
Noel Holmes User Experience Portfolio 1 Of 2Noel Holmes User Experience Portfolio 1 Of 2
Noel Holmes User Experience Portfolio 1 Of 2
 
Agile2015 Report
Agile2015 ReportAgile2015 Report
Agile2015 Report
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
 
Software Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it betterSoftware Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it better
 
Scaling an Engineering Team
Scaling an Engineering TeamScaling an Engineering Team
Scaling an Engineering Team
 
Ppp Of Simulation Development2
Ppp Of Simulation Development2Ppp Of Simulation Development2
Ppp Of Simulation Development2
 
Keeping Pace with Recruitment Technology Trends - Fordyce Forum Presentation
Keeping Pace with Recruitment Technology Trends - Fordyce Forum PresentationKeeping Pace with Recruitment Technology Trends - Fordyce Forum Presentation
Keeping Pace with Recruitment Technology Trends - Fordyce Forum Presentation
 
Trends in digital learning - 2018
Trends in digital learning - 2018 Trends in digital learning - 2018
Trends in digital learning - 2018
 
Originate - Think In Hours Not Sprints
Originate - Think In Hours Not SprintsOriginate - Think In Hours Not Sprints
Originate - Think In Hours Not Sprints
 

Recently uploaded

20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 

Recently uploaded (20)

20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 

Mob Programming - Whole Team Collaboration

Editor's Notes

  1. We’re going to start by going over a little Mob Programming background to get everyone acquainted with it. This is NASA mission control Houston from 1965
  2. This quote is the best elevator pitch for Mob Programming Woody Zuill’s name will become quite familiar since he has played a pivotal role in the inception and adoption of mob programming Same Space == Same Virtual Space Update “all of the brilliant people work on the same thing…” Next we’ll look at a short video put together by Llewellyn Falco to promote the first Mob Programming Conference
  3. Woody Zuill – Coach of First Mob Programming Team – Face of the mob programming movement He is also the founder of the NoEstimates movement
  4. By 2016 woody had moved on from Hunter to work for Industrial Logic and do independent coaching and consulting Hosted at the Microsoft New England Research and Development Center at MIT
  5. It’s interesting Whole team collaboration is an essential ingredient of all of the agile methodologies – but has gotten lost in corporate Scrum, SAFe, and poor agile implementations where individuals continue to work alone or within their functions silos. Mob Programming brings that focus back front and center for us
  6. We’re going to show a couple of short videos. This first one is a time-lapse video of mob programming at Hunter Industries in 2012
  7. This is the same company, Hunter Industries in 2016
  8. These are just a handful of companies who are writing and talking about mob programming online Industrial Logic – consultants and create an eLearning product New Relic builds system monitoring products F-secure is a cyber security company Bluefruit builds embedded systems Hunter Industries builds landscape lighting and irrigation products – like sprinkler systems Mob programming is applicable in any domain
  9. Didn’t come out of nowhere…. You can trace its roots back to Lean Manufacturing which dates back to the U.S.’s reconstruction of post-WWII Japan. Comes from the breakthroughs Taiichi Ohno – Father of TPS / Lean Manufacturing, the work of W. Edwards Deming and Shigeo Shingo. From XP it gets TDD, pairing, and whole team collaboration Layers on optimizing the flow of work and reduction of waste from Lean Software Development, Theory of Constriants, and TPS as well as TQM
  10. We hear some development teams claim that it can’t possibly work because it’s so different than how they are used to working. In other industries this is a very common way of working NASA mission control & Musical groups work in a very similar fashion to mob programming - At Mission Control has everyone involved with the mission is there – There are no functional silos in mission control - including redundancy in roles – everyone isn’t always busy The drummer on the right, Tony Williams was a child prodigy, joining Miles Davis’ band at 17. Despite being recognized as one of the greatest drummers of his era he only recorded one drum solo with Miles. We understand that every musician being busy doesn’t make for great music…but we haven’t learned that lesson yet with software People may then concede that this MIGHT work but…
  11. 10x productivity improvement – Woody Zuill’s experience report for the Agile Alliance Typing isn’t the bottleneck supports Brooks’s law – Adding people to late project makes it later Mythical Man Month - Fred Brooks - 1975 If typing isn’t the bottle neck what is?
  12. If Typing isn’t the bottleneck what are they? The term waste tends to upset people who aren’t lean practitioners – Waste – is anything that a rational customer would not pay for. These are the non-value adding activities 2 forms of waste – pure waste and seemingly necessary waste This is a good example of why adding more development teams doesn’t make your organization or projects faster – it often slows the organization down
  13. Missing expertise on the teams Teams don’t interact with their customers Teams can’t make decisions – need to go outside the team Teams aren’t running experiments and iterating Work spread across teams and functional silos – communication issue
  14. Inventory – work sitting behind feature flags – work in progress and queueing between functional silos (product, UX, development, QA, OPS) Extra processing – processes that don’t deliver value to our customers - manually testing the same story in multiple environments – features with automated tests manually retested – manual release – manual operations Extra features – building more features than the customer needs or gold plating because we don’t know what the customer really wants – we aren’t getting continuous feedback from our customers. Extra features coming from Waterfall Product requirements – we need every feature defined up front and every one of them must be delivered for the project to be a success – these are full of extra features
  15. We hold the 20% of valuable features hostage by the 64% that are waste
  16. This is a specific form of waste but I wanted to point it out separately We call this failure demand or unplanned work in lean software development
  17. Mob programming addresses these bottlenecks… Helps teams Minimize waste Minimize rework Get Teams to Work together as an actual team instead of being a collection of busy individuals – The T Shaped Individual
  18. All agile methodologies had in the common the T-Shaped Person We lost it with the rise of Corporate Scrum / Agile industrial complex – doing agile processes absent of values and principles – miniwaterfalls – people working alone or within their silo. Product Owner is the customer expert on the team but not making all product decisions Developers also test QA works with the code and help write tests
  19. Woody sums up Mob Programming nicely with this quote from a podcast, Stopping the Enterprise Death Spiral with Mob Programming
  20. Promotes focus and teamwork. Allows capacity to observe the process and improve it. Makes it easier to identify handoffs and bottlenecks and the ability to have people that can figure out how to remove them.
  21. Handoffs introduce work queueing. Work stuck in queues is a liability. It isn’t valuable to the customer and it isn’t being worked to move it value. The amount of time spent in queues can dwarf the amount spent being worked.
  22. For every hand off the time that work spends in the queue increases rapidly towards infinity as the utilization of the people getting work from the queue approaches 100%. Often in a system with lots of handoffs you find that work spends most of its time waiting to be worked on.
  23. When work flows backwards it means that something was not completed in a previous step. This results in unplanned work and thus often creates backups.
  24. Multiple people working on the same code together at the same computer operate at around the best quality of any of the individual participants at that time and on that problem. Share knowledge and avoid knowledge compartments re: specific areas of the system/code.
  25. Teams that used Peer Review based processes, such as pair or mob programming, achieved higher software delivery performance
  26. W. Edwards Deming: Originally an Electrical Engineer but became a Management consultant. Credited as being a major influence on the management systems credited with causing the rapid growth of the post WW2 Japanese economy such as the Toyota Production System
  27. Our favorite is Mobster written by Dillon Kearns One of the simplest things you can do to improve your mob programming sessions It encourages disciplined break taking and switching the driver often
  28. Shorter intervals help mob participants stay engaged and focused Experiment with different intervals but aim for shorter intervals Seven minutes seems short – yes it is, try it. Is the driver getting a lot of conflicting input – That’s a sign that the switching interval should be shorter
  29. Mob Programming relies on the Pomodoro technique for disciplined break taking. It helps members of the mob stay focused and productive. Typically once per hour but again this can be tuned. Developed by Francesco Cirillo in the late 80s When working alone you can break when you feel you need it. In a group setting it’s important to take consistent breaks to avoid burnout
  30. We teach and practice TDD in mob programming sessions – Mob Programming & TDD are the two foundational practices that we teach We find working in small batches and taking frequent breaks without setbacks being much harder w/o TDD
  31. When we mob we rely on Llewellyn Falco’s strong-style pairing model Everyone in the mob session is programming/testing/documenting/etc. with the exception of the driver. The driver is operating the machinery. We’ve found this greatly improves team’s abilities to communicate with each other.
  32. Too often we make this a “practice only for programmers” it’s called mob programming after all. -- Some have started calling it full –team collaboration instead. Creators of names don’t always see how the names can convey the wrong meaning – part of the reason Toyota never wanted to name TPS TDD – has test in the name – people think it’s a testing practice but it is not BDD was intentionally named without test in the name but people still think BDD is a testing framework/practice. We have decades of waterfall processes and functional reporting silos to break through. But to get the benefits of mob programming and to remove the bottlenecks for delivering value the entire team works together
  33. If you are organizing and re-organizing around the work – Working in smaller groups could be a good thing. I would most likely not full-team mob on any busy work (unless I am automating it) – or on typos in log messages. Teams need to build expertise mobbing which requires mobbing most of the time So that they can make an informed decision when best to mob, best to pair, or when best to work individually. But if you are working individually to “go faster” you are falling into a trap
  34. Defects increase – handoffs and functional silos More time in meetings and ceremonies needed to align the team These meetings are non-value add – should be minimized
  35. Use the waste snake to record waste that is uncovered during the coarse of doing the work. This includes things like waiting for builds, not having the right tools, libraries, or knowledge, and waiting for handoffs or inputs
  36. Track the teams learning so that everyone can benefit on the team and so that they can be carried away at the end of each session to the team’s benefit.
  37. Practicing strong-style mobbing ensures that the person at the keyboard is not the person coding. If teams stray from this practice, it’s easy for the driver to runaway and start coding their own ideas. This reduces focused mob participants to easily-distracted bystanders
  38. During the space race scientists typically didn’t have access to electronic computers. In fact the origin of the word computers actually referrers to people(often women) who would do tedious calculations by hand, such as logarithm tables. Nasa Scientists would have “Math Parties” where they would split up a long complicated formula into separate parts and each scientist would learn a specific part. Then they would do calculations by having each person do their part and pass the results to the next person. This was especially useful for calculations that simulated something overtime as the result of one “run” was the inputs to the next so they could have a circle of calculation. Don’t have theoretical debates. https://rarehistoricalphotos.com/nasa-scientists-board-calculations-1961/
  39. Helps to remove barriers to switching drivers regularly and people struggling wit the editor is an obvious source of waste
  40. We find this builds empathy in company and teaches the rest of the organization how software development really works