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

Mob Programming - Whole Team Collaboration - PhillyXP

Mob Programming - Whole Team Collaboration - PhillyXP

Mob Programming builds off of the values and practices of Lean Manufacturing, Lean Software Development, and Extreme Programming. It seeks to optimize the flow of work through the software development value stream. With its focus on radical teamwork and sustainably creating high-quality code, it is an important practice for technology professionals to learn.
This talk describes Mob Programming, its history, its relationship to lean software development, 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 mob programming on their own.

Anthony Sciamanna

November 13, 2018
Tweet

More Decks by Anthony Sciamanna

Other Decks in Programming

Transcript

  1. Mob Programming
    whole team collaboration
    - November 13, 2018
    Nick Goede // Anthony Sciamanna
    @ngoede @asciamanna

    View full-size 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 full-size slide

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

    View full-size 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 full-size slide

  5. 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 full-size slide

  6. 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 full-size slide

  7. 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 full-size slide

  8. Hunter Industries – Mob Programming 2012

    View full-size slide

  9. Hunter Industries – Mob Programming 2016

    View full-size slide

  10. Adoption has increased significantly since 2011

    View full-size slide

  11. 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 full-size slide

  12. This can’t possibly work!!!

    View full-size slide

  13. 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 full-size slide

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

    View full-size slide

  15. 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 full-size slide

  16. 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 full-size slide

  17. 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 full-size slide

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

    View full-size slide

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

    View full-size slide

  20. Non-Existent on Beginner Agile Teams

    View full-size slide

  21. 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 full-size slide

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

    View full-size slide

  23. Limit Work in Process (WIP)

    View full-size slide

  24. Avoid Handoffs

    View full-size slide

  25. 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 full-size slide

  26. Keep work flowing
    in the RIGHT
    direction

    View full-size slide

  27. Multiple Brains Write
    Better Code

    View full-size slide

  28. Combined Learning

    View full-size slide

  29. Knowledge Sharing

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  33. Short Switching Intervals
    Start with seven minutes

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  36. 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 full-size slide

  37. Full Team Participation

    View full-size slide

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

    View full-size slide

  39. 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 full-size slide

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

    View full-size slide

  41. Learnings Board

    View full-size slide

  42. Avoid Runaway Drivers

    View full-size slide

  43. 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 full-size slide

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

    View full-size slide

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

    View full-size slide

  46. For More Information
    http://bit.ly/phillyxp-mob-programming
    @asciamanna @ngoede

    View full-size slide