Seven tips (at least!) for improving your geographically distributed agile team

Seven tips (at least!) for improving your geographically distributed agile team

@johannarothman

http://agilecambridge.net/2015/sessions/index.php?session=117

Agile is made for colocated cross-functional teams

The challenge is doing agile with dispersed teams

Collaborative Teams Need

  • A common goal
  • Listen closely
  • Concentration on just the issue at hand
  • Control over their work
  • Blend their work
  • Everyone participating
  • Familiarity
  • Opportunities to practice communication
  • Learn from failure

Sawyer: Group Genius

Tip 1: Charter the project

  • Vision
  • Release Criteria - what is “done”?

Teams are created by working together.

There’s something here, “The team doesn’t exist until it creates something together” or something along those lines

Tip 2: Build a Time Zone Chart

  • When is everyone?
  • Can we have standups?

Scrum is not a good choice because it has so many real-time rituals. Doing standup at 2am or 8pm isn’t a reasonable, sustainable thing to ask.

How fast can everyone get feedback? For instance, A tester and a developer should be in nearby time zones so that feedback loop isn’t days long.

Tip 3: Select Standup or Handoffs

  • Don’t do standups across all time zones
  • Follow the sun handoffs
  • Break off small enough pieces so everyone can work on the same chunk
  • Like swarming, but one at a time

Tip 4: Create a Visual System that Works for This Team

  • What kind of board do you need?
  • Think about Cynefin - is this work obvious? complicated? complex? chaotic?
  • Do we need experiments? Time boxes?
  • Answer the question: WHERE IS THE WORK? You don’t want someone waiting hours for permission to work.

Start with paper first to understand what you need. Tools impact how you work and you don’t know how you work yet. Take pictures and keep people appraised.

Tip 5: Power the Infrastructure

  • DO NOT SCRIMP on licenses, power, throughput
  • If everyone doesn’t have access to everything, you don’t have a project team
  • Slow source control, shared licenses, missing hardware

Tip 6: Keep Teams Together

  • Don’t “borrow” local people from a distributed team. You don’t see how you’re impacting that team.
  • It takes too long to build trust on a distributed team to cycle people through

Tip 7: Use Location to Create Trust

  • Travel to the same place
  • Builds respect
  • Cheaper than you think
  • Don’t get hung up on travel cost - inefficient teams are slower to add value, deliver cards, fix defects.

We didn’t create as many defects after each get together.

Labor cost = wage cost over the duration of the project If it takes a untrusting team 3x as long to deliver, you’re going to want to do waht it takes (up to 2x salaries) to build trust.

Tip 8: Avoid Heirarchical Language

  • Avoid: “Headquarters” vs “Remote”
  • Name teams by feature, or let them pick their own.