$30 off During Our Annual Pro Sale. View Details »

Mob Programming - Whole Team Collaboration - BarCamp Philly 11

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

More Decks by Anthony Sciamanna

Other Decks in Programming


  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. What is Mob Programming? Mission Control Center, Houston, 1965

  4. 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 “ ”
  5. None
  6. 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
  7. 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
  8. 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
  9. Hunter Industries – Mob Programming 2012

  10. Hunter Industries – Mob Programming 2016

  11. Adoption has increased significantly since 2011

  12. 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…
  13. This can’t possibly work!!!

  14. 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
  15. What are the Bottlenecks? Solving Problems Communication Waste (muda) Rework

  16. Solving Problems Missing expertise Lack of customer contact Lack of

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

    Backwards Unplanned Work (Failure Demand)
  20. Solve Problems Communicate Minimize Waste Minimize Rework Mob programming helps

    teams effectively…
  21. Non-Existent on Beginner Agile Teams

  22. Mob programming optimizes for the flow the work over the

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

    the conclusion of the Apollo 11 lunar landing mission
  24. Limit Work in Process (WIP)

  25. Avoid Handoffs

  26. 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
  27. Keep work flowing in the RIGHT direction

  28. None
  29. Multiple Brains Write Better Code

  30. None
  31. Combined Learning

  32. Knowledge Sharing

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

  34. Mob Programming Practices First Space Shuttle Mission – Columbia –

    STS-1 – April 12, 1981
  35. Use a Mob Programming Tool http://mobster.cc/

  36. Short Switching Intervals Start with seven minutes

  37. Disciplined Break Taking via the Pomodoro Technique Taking Breaks in

    a Disciplined Way – Tim Ottinger
  38. Pair Mob Programming with TDD Fast feedback cycles and team-based

    flow supports working a small batches and taking breaks
  39. 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 “ ”
  40. Full Team Participation

  41. Pressure to Split the Mob “We need to go faster,

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

    doing daily work. -Gene Kim - The DevOps Handbook
  44. Learnings Board

  45. Avoid Runaway Drivers

  46. 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
  47. Shared Team Settings Streamline working together by having shared key

    mappings and settings
  48. Invite the Bosses Having managers experience the team’s impediments in

    real- time will help them address organizational causes
  49. https://www.meetup.com/PhillyXP

  50. For More Information http://bit.ly/barcamp-philly-mob-programming @asciamanna @ngoede