Swarming

Coding in the Time of
Covid-19

Coding is perfect for social distancing.
A team divides the work. Everyone codes alone, right?
In agile, that's the worst way to work.

What is swarming?

Swarming The entire team works together to complete each goal.
Mobbing Swarming with just one keyboard active at a time.

Why do it?

To get Team bonding, team design, team debugging, continuous code review
To reduce Daily standups, slack updates, feature branches, merge conflicts

Agile in 3 minute podcast

How to do it?

Advice from Remote Mob Programming
  • Typist + Mob (not driver + navigators)
  • Rotate every 10 15 minutes
  • Switch with Git push/pull (not shared laptop)
  • If remote
    • Everyone remote
    • Cameras on
    • Shared screen (not a collaborative editor)

Large Team?

  • First, as a group,
    • plan out several top goals: db schema, API, new UI
    • form task groups (next slide)
  • Then, work in task groups for ~30 minutes
    • Follow mob process (previous slide)
  • Regroup, review, repeat.

Swarm or Subgroup?

Definitely swarm OK for subgroup
Designing the UI Tweaking CSS
Organizing the database Adding data
First implementation of component Bug fixes
First use of some technology Bug fixes, testing possible technologies

Task Groups

  • Dangers:
    • Working on what you know best
    • Working with who you know best
  • Focus on bonding, learning, and reducing bus factor risk
    • Work on code you haven't done yet
    • Work with teammates you haven't worked with recently

Thanks to Hakim El Hattab for RevealJS