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

Scaling Agile and Working with a Distributed Team

Mike Cohn
June 19, 2012

Scaling Agile and Working with a Distributed Team

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

June 19, 2012
Tweet

More Decks by Mike Cohn

Other Decks in Business

Transcript

  1. © 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 3
  2. © 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 4
  3. © 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 5
  4. © 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 6
  5. © 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 8
  6. © 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.” 10
  7. © 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 12
  8. © 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 13
  9. © 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. 14
  10. © 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 15
  11. © Copyright Mountain Goat Software ® Daily Scrums Scrum of

    Scrums 2–3 / week Scrum of Scrum of Scrums 1 / week 16
  12. © 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) 17
  13. © Copyright Mountain Goat Software ® Distributed teams •Decide how

    to distribute •Create coherence •Change how you communicate 18
  14. © Copyright Mountain Goat Software ® 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 19
  15. © 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 20
  16. © Copyright Mountain Goat Software ® Distributed teams •Decide how

    to distribute •Create coherence •Change how you communicate 21
  17. © 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 22
  18. © Copyright Mountain Goat Software ® Create coherence 1Big cultural

    differences 1 Attitudes toward power, individualism, achievement, uncertainty, and long-term vs. short-term 1 )+ '*+',&*" &"3&+")&*%'&  employees in these areas 1Smaller cultural differences 1 Holidays 1 Working hours ❶ Acknowledge cultural differences 23
  19. © Copyright Mountain Goat Software ® More ways to create

    coherence 1 Early emphasis on relationship building encourages subgroups to form around surface-level attributes† 1 Defer relationship building until team members have $)&%')*" &"3&++!"& *',+!'+!) ❸ Build trust by emphasizing early progress †Gratton, Voigt, and Erickson. “Bridging Faultlines in Diverse Teams.” 1 Establish a shared vision 1 Establish working agreements ❷ Strengthen functional and team subcultures 24
  20. © Copyright Mountain Goat Software ® Distributed teams •Decide how

    to distribute •Create coherence •Change how you communicate 25
  21. © 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 26
  22. © 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 27
  23. © 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 28
  24. © Copyright Mountain Goat Software ® Useful advice for all

    meetings Include time for small talk Share the pain Make sure everyone knows who is talking 29
  25. © Copyright Mountain Goat Software ® 1Everyone on the phone

    at once 1 Can lead to good discussion if people remain engaged 1 $&&"& "*3&"*! in a day 1 *'&*"*+&+."+! approach used when collocated Pros 1 People mentally disengage during long calls 1 Only feasible with *" &"3&+'-)$(' workdays Iteration Planning—Approach #1 The Long Phone Call Cons 30
  26. © Copyright Mountain Goat Software ® 1First call: understand what

    the product owner wants built 1'$*,+%*3 ,)',+.!++!0&'%%"++' 1Second call the next day: Subteams share commitments 1 Can be a more 3"&+,*'+"% 1 Can be used whenever work hours can be made to overlap even a little Pros 1 Usefulness varies based on how widely distributed the team is 1 Not all knowledge is shared with everyone, leading to misunderstandings 1 Takes two days Iteration Planning—Approach #2 Two Calls Cons 31
  27. © Copyright Mountain Goat Software ® 1Everyone on the phone

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

    report or updates a wiki with status information 1Variation: A local group meets and others email updates 1 Sustainable over the long term 1 Helps overcome language problems Pros 1 No guarantee updates are read 1 **,*)&'+"*,**& may lay dormant 1 Doesn’t take advantage of daily interaction to improve relationships and knowledge sharing 1 Reduced feeling of accountability to teammates Daily Standup—Approach #2 Writing the meeting Cons 33
  29. © Copyright Mountain Goat Software ® 1 Have separate regional

    phone calls, e.g., western hemisphere and eastern hemisphere 1 Follow these with a written summary shared between teams 1 Or have one person from each region also participate in the other calls 1 Pain of off-hours calls is greatly reduced 1 Allows local subteams to share information most relevant to them Pros 1 &')%+"'&)$0)'%'& meeting to another may be incorrect or incomplete 1 Can lead to us/them feelings 1 Not everyone is involved in all discussions 1 &')%+"'&%0&'+*!) in timely manner Daily Standup—Approach #3 Regional Meetings Cons 34