Talare: Thushara Wijewardena, projektledare (www.exilesoft.com)
Hur ska man tänka om man sitter i stora utvecklingsprojekt där teamens kunskap och kompetens är utspridda över flera länder (Distributed development)? Utmaningen och scenariot Thushara berättar om är när hon som projektledare skulle arbeta med två team från Norge och ett team från Colombia i samma projekt. Det tog flera månader av laborering innan man tillsammans hittade ett sätt att organisera teamen för att få det att fungera.
Utgångspunkten var att få teamen självorganiserade och alla utvecklare flögs in till Norge för att tillsammans prata om organisationen. Det tog flera månader och olika formationer innan man hittade fram till en fungerande lösning som alla uppskattade.
Så här provade sig teamen fram:
Plan A) Språkteam – Ingen blandning geografiskt, olika språk på backlog behövs men komfortzonen är hög
Plan B) Progressteam – Problem med beroenden av alla team. komponentteam och kunskapsteam baseras på tekniken
Plan C) Feautureteam – Fick problem med att ett team i ett land fick ensidiga och enkla uppgifter i sin backlog
Plan D) Collaboration model – Alla team arbetar enligt Scrum och har Scrum of scrums, gick inte att underhålla
Plan E) Featureteam utifrån collaboration – fördela olika features till olika team och blanda teamen, också geografiskt
Lesson learned
Den lösning som teamen kom fram till var tillslut featureteams utifrån collaboration.
* Teamen är utspridda och arbetar från både från Norge och Colombia.
* Alla team har teammedlemmar från olika länder och blandar språk
* En sammanhållande teamcoach för collaboration utsågs för att hålla i offshore och koordinera arbetet
* Utvecklarna reser ofta och besöker varandra för att dela kunskap inom teamen – fysiska scrum of scrum
Innan man startar
* Ta fram en modell för hur man organiserar projekten och team- Distributed team zones
* Identifiera vilka kompetenser behövs(UX, arkitekt, frontend etc) och var de befinner sig geografiskt(Inshore, nearshore, offshore).
Tänk på komplexitet: Kan vi hantera uppdraget inom bolaget eller kan kompetensen finnas geografiskt i ett annat land.
Trust with remote team
Lära känna varandra och gör en gemensam code review
Kontraketen måste vara tydliga – vad ska levereras och när
Kunskap om uppgiften – finns kompetens för levereras
Identification – Hitta roller, vem som kan göra vad utifrån kompetens och individ
Teamtrust – vad är känslan? Hur mycket litar vi en leverans av ett remote team?
Ordentlig projekt initiering
Använder man en metodik ex Scrum? Finns en backlog och produktvision?
Ta reda på praktiska spelregler för projektet. Vilken wiki använder vi, rättigheter, utvecklingsprocess, releaseprocess, sätt att arbeta på, mål, dokumentationsnivå, kvalitet etc.
Kommunicera projektvisionen med teamen.
Specificera DOD
Förväntan av sunt förnuft är olika beroende på kultur och land
Collocation + after action review
Res och besök varandra ofta och låt teamen och utvecklarna träffa varandra. Håll workshops för att utvärdera arbetet löpande och tänk på teambuildning.
Dealing with the middle layer
Identifiera och försök att undvika missförstånd i kommunikationen mellan teamen och stakeholders. Det blir extra viktigt när man sitter i olika länder att inte hamna i “viskleken”.
Utbilda alla i hela ledet om projektet och visionen och hur processen ser ut.
Välj partner med omsorg
Don’t fake Agile – Se till att alla arbetar utifrån samma utvecklingsprocess/metodik och alla partners har samma syn på bra arbetsmiljöförhållanden.
Välj partner med omsorg om man tänker offshore – Säkerställ att teamen och utvecklarna behandlas väl, besök kontoren och ha personliga möten.
Påminner mycket om samma förutsättningar som en utvecklingsavdelning men i större proportioner. Hitta ett skönt gäng (partners och utvecklare) som man tycker har en härlig blandning av personlighet och kompetens. Tillsammans skapar man en gemensam plattform för utveckling, kommunikation och kollaborerar.