$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
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

    View Slide

  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

    View Slide

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

    View Slide

  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


    View Slide

  5. View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  9. Hunter Industries – Mob Programming 2012

    View Slide

  10. Hunter Industries – Mob Programming 2016

    View Slide

  11. Adoption has increased significantly since 2011

    View Slide

  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…

    View Slide

  13. This can’t possibly work!!!

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  21. Non-Existent on Beginner Agile Teams

    View Slide

  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


    View Slide

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

    View Slide

  24. Limit Work in Process (WIP)

    View Slide

  25. Avoid Handoffs

    View Slide

  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

    View Slide

  27. Keep work flowing
    in the RIGHT
    direction

    View Slide

  28. View Slide

  29. Multiple Brains Write
    Better Code

    View Slide

  30. View Slide

  31. Combined Learning

    View Slide

  32. Knowledge Sharing

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  36. Short Switching Intervals
    Start with seven minutes

    View Slide

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

    View Slide

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

    View Slide

  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


    View Slide

  40. Full Team Participation

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  44. Learnings Board

    View Slide

  45. Avoid Runaway Drivers

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  49. https://www.meetup.com/PhillyXP

    View Slide

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

    View Slide