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

A journeyman's photographic guide to mob programming

A journeyman's photographic guide to mob programming

An introduction to mob programming displaying numerous mobs that I have been a part of as facilitator or active participant.

Lennart Fridén

October 30, 2015
Tweet

More Decks by Lennart Fridén

Other Decks in Programming

Transcript

  1. M O B P R O G R A M M I N G
    A J O U R N E Y M A N ’ S P H O T O G R A P H I C G U I D E T O
    Lennart Fridén
    @DevLCSC | codecoupled.org

    View Slide

  2. – W O O D Y Z U I L L
    All the brilliant people working on the same thing,
    at the same time, in the same space, and on the
    same computer.

    View Slide

  3. – A B U N C H O F R A N D O M P E O P L E
    Pair programming on steroids.

    View Slide

  4. P R E PA R I N G A S E S S I O N
    S T E P 1

    View Slide

  5. • High resolution projector
    or other large display.
    • A familiar development
    environment.
    • A room with plenty of air.
    • Comfortable chairs.
    • A large whiteboard.
    • A tough problem for the
    team to work on together.
    R E C O M M E N D E D
    M O B S E T U P

    View Slide

  6. – T H AT P E R S O N O N S TA G E S H O W I N G Y O U T H I S
    There is no such as thing as too many, too large, or
    too high-resolution displays.

    View Slide

  7. P I C K I N G A TA S K
    S T E P 2

    View Slide

  8. F I N D T H E
    R I G H T L E V E L
    • Only got a few hours?
    Working with an unfamiliar
    team? You may want to
    mob program a code kata.
    • Already working as a team?
    A non-obvious, challenging
    task that requires the whole
    team to participate will
    show the strengths of mob
    programming.

    View Slide

  9. A S S E M B L E Y O U R M O B
    S T E P 3

    View Slide

  10. B E I N C L U S I V E
    • Ever wished you had stake
    holders, domain experts,
    UX designers, operations,
    customers, or end users
    readily available to
    answer questions and
    clarify requirements and
    needs? Invite them!

    View Slide

  11. S K I L L L E V E L S
    • Mixed teams are a
    strength, not a problem.
    • Mob programming
    equalises differing skill
    levels swiftly.
    • Editor key shortcuts,
    domain knowledge,
    programming language
    constructs and concepts,
    and previously stumbled-
    upon pitfalls are all shared.

    View Slide

  12. S TA R T M O B B I N G
    S T E P 4

    View Slide

  13. H O W T O M O B
    • The driver works at the
    keyboard.
    • The rest of the team act
    as navigators.
    • After a fixed amount of
    time, e.g. 10-15 min, the
    driver is replaced.
    • Repeat until everyone has
    acted as a driver, then
    repeat from the top.

    View Slide

  14. L E AV I N G T H E
    D R I V E R ’ S S E AT
    • Once you have finished
    your rotation as the driver,
    make a note of it.

    View Slide

  15. TA K E A B R E A K
    • Need a break? Take one!
    The important thing is that
    the mob continues to
    work. Individuals can
    come and go as needed.

    View Slide

  16. L E A R N A N D A D A P T
    S T E P 5

    View Slide

  17. E X P E R I M E N T
    • Each cycle is an excellent
    opportunity to perform
    various micro-experiments.
    • Not used to test-driven
    development? Try it!
    • Avoid using the mouse.
    • Try the strong pairing
    style of not letting the
    driver write anything
    unless instructed to do
    so by a navigator.

    View Slide

  18. R E T R O S P E C T I V E
    • End the session with a
    short retrospective.
    • What worked?
    • What can be improved?
    • What would you like to
    do differently?
    • Always turn up the good!

    View Slide

  19. S H A R E Y O U R E X P E R I E N C E S
    S T E P 6

    View Slide

  20. T E L L P E O P L E
    • Found something that
    works really well given your
    context? Perhaps learnt
    something unexpected
    about you and your team?
    • Write about it on your
    development blog.
    • The Twitter hashtag is
    #MobProgramming.
    • Encourage others to
    experiment too!

    View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. L E N N A R T F R I D É N
    Twitter: @DevLCSC
    Github: DevL
    Blog: codecoupled.org
    drawing by Augie De Blieck

    View Slide