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

Scaling Distributed Teams

Mike Cohn
December 06, 2013

Scaling Distributed Teams

The early agile literature was adamant about two things: stick with small teams and put everyone in one room. However, in the years since the Agile Manifesto, the increasing popularity of agile and the dramatic improvements it brings has pushed it onto larger and larger projects. Additionally, having an entire team--especially on a large project--in one room, or even one building is a luxury no longer enjoyed by many projects.

In this presentation, we will look at how agile can be scaled to work on any multi-team project. Even a project with two teams will benefit from learning how to proactively manage interteam dependencies, conduct iteration planning for multiple teams, cultivate communities of practice, and coordinating work. Because so many projects are spread across multiple sites we will also look at overcoming the unique challenges facing distributed teams. We will look at deciding how to distribute a team, how to create coherence among team members, the importance of getting together and when are the most important times to use the travel budget, changes to what the team documents, and how to handle meetings when spread across timezones. Whether your project is spread across two locations in the same city or spread around the globe, you will leave with practical advice to try tomorrow.

Mike Cohn

December 06, 2013
Tweet

More Decks by Mike Cohn

Other Decks in Business

Transcript

  1. Mike Cohn
    NDC London
    6 December 2013
    Scaling Agile with
    a Distributed Team

    View Slide

  2. © Copyright Mountain Goat Software
    ®
    Scaling Issues
    Dependencies
    Iteration planning meeting
    Coordinating teams

    View Slide

  3. © Copyright Mountain Goat Software
    ®
    Proactively manage dependencies
    Use rolling lookahead planning
    A
    Code the…
    Tasks Est.
    Integrate with the…
    Test the…
    8
    16
    8
    Code the…
    Design the…
    12
    8
    Iteration 4
    Iteration 5
    Iteration 6

    View Slide

  4. © Copyright Mountain Goat Software
    ®
    Share team members
    B
    Feature team 1 Feature team 3
    Feature team 2
    Component
    team
    •Be cautious of sharing
    team members
    •There are drawbacks to
    the increased multitasking

    View Slide

  5. © Copyright Mountain Goat Software
    ®
    Two types of interfaces
    to worry about
    Unattended interfaces
    At least one team is
    aware of the
    interface, but no one is
    doing anything about it
    Unidentified interfaces
    An interface that
    exists but that no one
    has discovered yet

    View Slide

  6. © Copyright Mountain Goat Software
    ®
    Use an integration team
    C
    Takes on the unattended interfaces
    While on the look out for unidentified ones
    Can be a virtual team with part-time members
    Common up to perhaps a dozen teams
    Larger projects will have a full-time team
    Maybe more than one
    Not a dumping ground for poor performers

    View Slide

  7. © Copyright Mountain Goat Software
    ®
    Scaling Issues
    Dependencies
    Iteration planning meeting
    Coordinating teams

    View Slide

  8. © Copyright Mountain Goat Software
    ®
    Scale up the iteration planning meeting
    Iteration planning meeting is the hardest
    to scale
    Other meetings require less coordination
    Two general approaches
    1.Stagger by a day
    2.The big room

    View Slide

  9. © Copyright Mountain Goat Software
    ®
    The Big Room

    View Slide

  10. © Copyright Mountain Goat Software
    ®
    “I require medical
    assistance.”
    Nautical Meaning Our Meaning
    “We require assistance.”
    “We need the product
    owner.”
    “We need the architect.”
    “We require a tug.” “We require a pizza.”
    “We are dragging
    anchor.”
    “We are on a break.”

    View Slide

  11. © Copyright Mountain Goat Software
    ®
    Scaling Issues
    Dependencies
    Iteration planning meeting
    Coordinating teams

    View Slide

  12. © Copyright Mountain Goat Software
    ®
    Communities of practice
    Development
    team 1
    Development
    team 2
    Development
    team 3
    Programming
    Community
    Test
    Community
    UI
    Community
    ScrumMaster
    Community
    A group of like-
    minded or like-
    skilled individuals

    View Slide

  13. © Copyright Mountain Goat Software
    ®
    Characteristics of communities
    Self-organizing
    Organic
    Can span projects
    Not a full-time job
    There’s often a “community coordinator”
    Typically 5-20 hours/month

    View Slide

  14. © Copyright Mountain Goat Software
    ®
    Five types of communities
    Unrecognized Invisible to the organization and
    possibly even to its members.
    Bootlegged Visible but only to a small, select
    group of insiders.
    Legitimized Officially sanctioned as a valuable
    entity.
    Supported Provided with resources (time,
    money, facilities, people).
    Institutionalized Given an official status and
    responsibilities in the organization.

    View Slide

  15. © Copyright Mountain Goat Software
    ®
    Creating an environment
    for communities
    Design for evolution.
    1
    Open a dialogue
    between inside and
    outside participants
    2
    Invite different levels
    of participation.
    3
    Have both public
    and private events.
    4
    Focus on value.
    5
    Combine familiarity
    with excitement.
    6
    Create a rhythm for
    the community.
    7

    View Slide

  16. © Copyright Mountain Goat Software
    ®
    Daily
    Scrums
    Scrum of
    Scrums
    2–3 / week
    Scrum of
    Scrum of
    Scrums
    1 / week

    View Slide

  17. © Copyright Mountain Goat Software
    ®
    Agenda
    • What has my team done since we last met that might
    affect other teams?
    • What will my team do before we meet again that might
    affect other teams?
    • What problems are my team having that other teams might
    be able to help with?
    Three questions (15 minutes at most)
    • Discuss items kept on an Open Issues Backlog
    Discussion (as long as needed)

    View Slide

  18. © Copyright Mountain Goat Software
    ®
    Distributed teams
    •Decide how to distribute
    •Create coherence
    •Change how you communicate

    View Slide

  19. © Copyright Mountain Goat Software
    ®
    Team 1 Team 2
    Team 1 Team 2
    Collaborating collocated teams
    Each team has all needed skills
    Teams in different locations work
    independently but collaborate to
    coordinate their work

    View Slide

  20. © Copyright Mountain Goat Software
    ®
    Deliberately distributed teams
    Each location has all needed skills
    We could form collaborating collocated teams
    But we choose not to
    Individuals in different cities work together
    as one team
    Team 1
    Team 2
    Team 1
    Team 2

    View Slide

  21. © Copyright Mountain Goat Software
    ®
    Distributed teams
    •Decide how to distribute
    •Create coherence
    •Change how you communicate

    View Slide

  22. © Copyright Mountain Goat Software
    ®
    Creating coherence
    Coherent is from the Latin cohaerent
    “sticking together”
    We want a team that will stick together
    So we’ll
    Acknowledge big cultural differences
    Acknowledge small cultural differences
    Strengthen functional and team subcultures
    Build trust by emphasizing early progress

    View Slide

  23. © Copyright Mountain Goat Software
    ®
    Create coherence
    • Big cultural differences
    • Attitudes toward power, individualism, achievement,
    uncertainty, and long-term vs. short-term
    • Geert Hofstede found significant differences among IBM
    employees in these areas
    • Smaller cultural differences
    • Holidays
    • Working hours
    ❶ Acknowledge cultural differences

    View Slide

  24. © Copyright Mountain Goat Software
    ®
    More ways to create coherence
    • Early emphasis on relationship building encourages
    subgroups to form around surface-level attributes†

    • Defer relationship building until team members have
    learned more significant things about each other
    ❸ Build trust by emphasizing early progress
    †Gratton, Voigt, and Erickson. “Bridging
    Faultlines in Diverse Teams.”
    • Establish a shared vision
    • Establish working agreements
    ❷ Strengthen functional and team subcultures

    View Slide

  25. © Copyright Mountain Goat Software
    ®
    Distributed teams
    •Decide how to distribute
    •Create coherence
    •Change how you communicate

    View Slide

  26. © Copyright Mountain Goat Software
    ®
    Get together in person
    Seeding visits
    Ideally, whole team meets in person at start
    Stay together an iteration or more when possible
    Contact visits
    Whole team, Quarterly, face-to-face
    Traveling Ambassadors
    Individuals who travel more frequently among
    locations to ensure good working relationships

    View Slide

  27. © Copyright Mountain Goat Software
    ®
    Change how you communicate
    Add back some
    documentation
    Cannot rely as
    much on talking
    Add detail to the
    product backlog
    Encourage lateral
    communication

    View Slide

  28. © Copyright Mountain Goat Software
    ®
    It’s not the distance, it’s the timezones
    London
    Cape Town
    San Francisco 8,600 km - 5300 miles
    9,700 km - 6000 miles
    16,400 km - 10,200 miles
    8 hours
    10 hours
    2 hours

    View Slide

  29. © Copyright Mountain Goat Software
    ®
    Useful advice for all meetings
    Include time for small talk
    Share the pain
    Make sure everyone knows who is talking

    View Slide

  30. © Copyright Mountain Goat Software
    ®
    •Everyone on the phone at once
    • Can lead to good
    discussion if people
    remain engaged
    • Planning is finished
    in a day
    • Is consistent with
    approach used when
    collocated
    Pros
    • People mentally
    disengage during long
    calls
    • Only feasible with
    significant overlap of
    workdays
    Iteration Planning—Approach #1
    The Long Phone Call
    Cons

    View Slide

  31. © Copyright Mountain Goat Software
    ®
    •First call: understand what the product owner wants built
    •Local subteams figure out what they can commit to
    •Second call the next day: Subteams share commitments
    • Can be a more
    efficient use of time
    • Can be used
    whenever work hours
    can be made to
    overlap even a little
    Pros
    • Usefulness varies based on
    how widely distributed the
    team is
    • Not all knowledge is
    shared with everyone,
    leading to
    misunderstandings
    • Takes two days
    Iteration Planning—Approach #2
    Two Calls
    Cons

    View Slide

  32. © Copyright Mountain Goat Software
    ®
    •Everyone on the phone at once
    • Similar to what is
    done with collocated
    teams so there’s
    nothing new to learn
    • Discussions involve
    the whole team
    • Everyone hears all
    issues, leading to
    greater commitment
    Pros
    • Can be extremely
    inconvenient for some
    • Not sustainable if people
    are forced to work outside
    of normal work hours
    Daily Standup—Approach #1
    Single Call
    Cons

    View Slide

  33. © Copyright Mountain Goat Software
    ®
    •Everyone emails a written report or updates a wiki with
    status information
    •Variation: A local group meets and others email updates
    • Sustainable over the
    long term
    • Helps overcome
    language problems
    Pros
    • No guarantee updates are read
    • Issues are not discussed and
    may lay dormant
    • Doesn’t take advantage of daily
    interaction to improve
    relationships and knowledge
    sharing
    • Reduced feeling of
    accountability to teammates
    Daily Standup—Approach #2
    Writing the meeting
    Cons

    View Slide

  34. © Copyright Mountain Goat Software
    ®
    • Have separate regional phone calls, e.g., western hemisphere
    and eastern hemisphere
    • Follow these with a written summary shared between teams
    • Or have one person from each region also participate in the
    other calls
    • Pain of off-hours calls
    is greatly reduced
    • Allows local subteams
    to share information
    most relevant to
    them
    Pros
    • Information relayed from one
    meeting to another may be
    incorrect or incomplete
    • Can lead to us/them feelings
    • Not everyone is involved in all
    discussions
    • Information may not be shared
    in timely manner
    Daily Standup—Approach #3
    Regional Meetings
    Cons

    View Slide

  35. © Copyright Mountain Goat Software
    ®
    [email protected]
    www.mountaingoatsoftware.com
    twitter: mikewcohn
    (720) 890-6110
    Mike Cohn

    View Slide