Scaling Agile and Working with a Distributed Team


Published on

Published in: Business, Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Scaling Agile and Working with a Distributed Team

  1. 1. Mike CohnNorwegian Developer’s Conference6 June 2012Scaling Agile witha Distributed Team1
  2. 2. © Copyright Mountain Goat Software®Scaling IssuesDependenciesIteration planning meetingCoordinating teams2
  3. 3. © Copyright Mountain Goat Software®Proactively manage dependenciesUse rolling lookahead planningACode the…Tasks Est.Integrate with the…Test the…8168Code the…Design the…128Iteration4Iteration5Iteration63
  4. 4. © Copyright Mountain Goat Software®Share team membersBFeature team 1 Feature team 3Feature team 2Componentteam•Be cautious of sharingteam members•There are drawbacks tothe increased multitasking4
  5. 5. © Copyright Mountain Goat Software®Two types of interfacesto worry aboutUnattended interfacesAt least one team isaware of theinterface, but no one isdoing anything about itUnidentified interfacesAn interface thatexists but that no onehas discovered yet5
  6. 6. © Copyright Mountain Goat Software®Use an integration teamCTakes on the unattended interfacesWhile on the look out for unidentified onesCan be a virtual team with part-time membersCommon up to perhaps a dozen teamsLarger projects will have a full-time teamMaybe more than oneNot a dumping ground for poor performers6
  7. 7. © Copyright Mountain Goat Software®Scaling IssuesDependenciesIteration planning meetingCoordinating teams7
  8. 8. © Copyright Mountain Goat Software®Scale up the iteration planning meetingIteration planning meeting is the hardestto scaleOther meetings require less coordinationTwo general approaches1.Stagger by a day2.The big room8
  9. 9. © Copyright Mountain Goat Software®The Big Room9
  10. 10. © Copyright Mountain Goat Software®“I require medicalassistance.”Nautical Meaning Our Meaning“We require assistance.”“We need the productowner.”“We need the architect.”“We require a tug.” “We require a pizza.”“We are dragginganchor.”“We are on a break.”10
  11. 11. © Copyright Mountain Goat Software®Scaling IssuesDependenciesIteration planning meetingCoordinating teams11
  12. 12. © Copyright Mountain Goat Software®Communities of practiceDevelopmentteam 1Developmentteam 2Developmentteam 3ProgrammingCommunityTestCommunityUICommunityScrumMasterCommunityA group of like-minded or like-skilled individuals12
  13. 13. © Copyright Mountain Goat Software®Characteristics of communitiesSelf-organizingOrganicCan span projectsNot a full-time jobThere’s often a “community coordinator”Typically 5-20 hours/month13
  14. 14. © Copyright Mountain Goat Software®Five types of communitiesUnrecognizedInvisible to the organization andpossibly even to its members.BootleggedVisible but only to a small, selectgroup of insiders.LegitimizedOfficially sanctioned as a valuableentity.SupportedProvided with resources (time,money, facilities, people).InstitutionalizedGiven an official status andresponsibilities in the organization.14
  15. 15. © Copyright Mountain Goat Software®Creating an environmentfor communitiesDesign for evolution.1Open a dialoguebetween inside andoutside participants2Invite different levelsof participation.3Have both publicand private events.4Focus on value.5Combine familiaritywith excitement.6Create a rhythm forthe community.715
  16. 16. © Copyright Mountain Goat Software®DailyScrumsScrum ofScrums2–3/weekScrum ofScrum ofScrums1/week16
  17. 17. © Copyright Mountain Goat Software®Agenda• What has my team done since we last met that mightaffect other teams?• What will my team do before we meet again that mightaffect other teams?• What problems are my team having that other teams mightbe able to help with?Three questions (15 minutes at most)• Discuss items kept on an Open Issues BacklogDiscussion (as long as needed)17
  18. 18. © Copyright Mountain Goat Software®Distributed teams•Decide how to distribute•Create coherence•Change how you communicate18
  19. 19. © Copyright Mountain Goat Software®Team 1Team 2Collaborating collocated teamsEach team has all needed skillsTeams in different locations workindependently but collaborate tocoordinate their work19
  20. 20. © Copyright Mountain Goat Software®Deliberately distributed teamsEach location has all needed skillsWe could form collaborating collocated teamsBut we choose not toIndividuals in different cities work togetheras one teamTeam 1Team 2Team 1Team 220
  21. 21. © Copyright Mountain Goat Software®Distributed teams•Decide how to distribute•Create coherence•Change how you communicate21
  22. 22. © Copyright Mountain Goat Software®Creating coherenceCoherent is from the Latin cohaerent“sticking together”We want a team that will stick togetherSo we’llAcknowledge big cultural differencesAcknowledge small cultural differencesStrengthen functional and team subculturesBuild trust by emphasizing early progress22
  23. 23. © Copyright Mountain Goat Software®Create coherenceBig cultural differencesAttitudes toward power, individualism, achievement,uncertainty, and long-term vs. short-termemployees in these areasSmaller cultural differencesHolidaysWorking hours❶ Acknowledge cultural differences23
  24. 24. © Copyright Mountain Goat Software®More ways to create coherenceEarly emphasis on relationship building encouragessubgroups to form around surface-level attributes†Defer relationship building until team members have❸ Build trust by emphasizing early progress†Gratton, Voigt, and Erickson. “BridgingFaultlines in Diverse Teams.”Establish a shared visionEstablish working agreements❷ Strengthen functional and team subcultures24
  25. 25. © Copyright Mountain Goat Software®Distributed teams•Decide how to distribute•Create coherence•Change how you communicate25
  26. 26. © Copyright Mountain Goat Software®Get together in personSeeding visitsIdeally, whole team meets in person at startStay together an iteration or more when possibleContact visitsWhole team, Quarterly, face-to-faceTraveling AmbassadorsIndividuals who travel more frequently amonglocations to ensure good working relationships26
  27. 27. © Copyright Mountain Goat Software®Change how you communicateAdd back somedocumentationCannot rely as muchon talkingAdd detail to theproduct backlogEncourage lateralcommunication27
  28. 28. © Copyright Mountain Goat Software®It’s not the distance, it’s the timezonesLondonCapeTownSan Francisco 8,600 km - 5300 miles9,700km-6000miles16,400 km - 10,200 miles8 hours10 hours2hours 28
  29. 29. © Copyright Mountain Goat Software®Useful advice for all meetingsInclude time for small talkShare the painMake sure everyone knows who is talking29
  30. 30. © Copyright Mountain Goat Software®Everyone on the phone at onceCan lead to gooddiscussion if peopleremain engagedin a dayapproach used whencollocatedProsPeople mentallydisengage during longcallsOnly feasible withworkdaysIteration Planning—Approach #1The Long Phone CallCons30
  31. 31. © Copyright Mountain Goat Software®First call: understand what the product owner wants builtSecond call the next day: Subteams share commitmentsCan be a moreCan be usedwhenever work hourscan be made tooverlap even a littleProsUsefulness varies based onhow widely distributed theteam isNot all knowledge isshared with everyone,leading tomisunderstandingsTakes two daysIteration Planning—Approach #2Two CallsCons31
  32. 32. © Copyright Mountain Goat Software®Everyone on the phone at onceSimilar to what isdone with collocatedteams so there’snothing new to learnDiscussions involvethe whole teamEveryone hears allissues, leading togreater commitmentProsCan be extremelyinconvenient for someNot sustainable if peopleare forced to work outsideof normal work hoursDaily Standup—Approach #1Single CallCons32
  33. 33. © Copyright Mountain Goat Software®Everyone emails a written report or updates a wiki withstatus informationVariation: A local group meets and others email updatesSustainable over thelong termHelps overcomelanguage problemsProsNo guarantee updates are readmay lay dormantDoesn’t take advantage of dailyinteraction to improverelationships and knowledgesharingReduced feeling ofaccountability to teammatesDaily Standup—Approach #2Writing the meetingCons33
  34. 34. © Copyright Mountain Goat Software®Have separate regional phone calls, e.g., western hemisphereand eastern hemisphereFollow these with a written summary shared between teamsOr have one person from each region also participate in theother callsPain of off-hours callsis greatly reducedAllows local subteamsto share informationmost relevant tothemProsmeeting to another may beincorrect or incompleteCan lead to us/them feelingsNot everyone is involved in alldiscussionsin timely mannerDaily Standup—Approach #3Regional MeetingsCons34
  35. 35. © Copyright Mountain Goat Software®mike@mountaingoatsoftware.comwww.mountaingoatsoftware.comtwitter: mikewcohn(720) 890-6110Mike Cohn35