Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mob Programming - Whole Team Collaboration - Ba...

Mob Programming - Whole Team Collaboration - BarCamp Philly 11

Mob Programming is a relatively new practice that is increasing in popularity and gaining significant adoption in the software industry. Building off of the values and practices of Lean Manufacturing, Lean Software Development, and Extreme Programming, Mob Programming seeks to optimize the flow of work through the software development pipeline. With its focus on continuously delivering high quality software and value to customers, we believe it is an important practice for technology professionals to learn.
Our talk describes Mob Programming, its history, its importance, and a set of recommendations to get started. By the end of the talk the attendees will be able to make use of the advice and begin experimenting with mobbing on their own.

Anthony Sciamanna

November 10, 2018
Tweet

More Decks by Anthony Sciamanna

Other Decks in Programming

Transcript

  1. Mob Programming whole team collaboration BarCamp Philly 11 - November

    10, 2018 Nick Goede // Anthony Sciamanna @ngoede @asciamanna
  2. 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
  3. 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 “ ”
  4. 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
  5. 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
  6. 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
  7. 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…
  8. 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
  9. Solving Problems Missing expertise Lack of customer contact Lack of

    decision makers No time to experiment or learn Only solving part of the problem
  10. 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
  11. 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
  12. Rework Bugs in Production Failed Releases / Hotfixes Work Moving

    Backwards Unplanned Work (Failure Demand)
  13. Mob programming optimizes for the flow the work over the

    output of an individual. -Woody Zuill, Stopping the Enterprise Death Spiral with Mob Programming “ ”
  14. Why is it Important? Mission Operations Control Room (MOCR) at

    the conclusion of the Apollo 11 lunar landing mission
  15. 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
  16. Pair Mob Programming with TDD Fast feedback cycles and team-based

    flow supports working a small batches and taking breaks
  17. 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 “ ”
  18. Pressure to Split the Mob “We need to go faster,

    let’s work individually or in smaller groups”
  19. 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
  20. Waste Snake Improving daily work is even more important than

    doing daily work. -Gene Kim - The DevOps Handbook
  21. 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
  22. Invite the Bosses Having managers experience the team’s impediments in

    real- time will help them address organizational causes