Hur man bygger ett framgångsrikt distribuerad mjukvaruutvecklingsteam

Agile är en familj av "agila" tillvägagångssätt för mjukvaruutveckling baserade på fyra nyckelvärden: människor, fungerande produkt, samarbete med kunder och vilja att förändra. Värderingarna är vanliga saker som prioriterar i arbetet, oavsett en viss process och ämne.

Initialt agila metoder utvecklades för team på samma kontor. I enlighet med tanken att det mest effektiva och praktiska sättet att överföra data till eller mellan utvecklingsteam var genom personlig kommunikation, först agila team fick arbeta i nära anslutning.

Men idag har de flesta företag flera distribuerade team. Detta är inte bara en hyllning till mode – det drivs av ett verkligt behov. Distribuerade team kan arbeta med projekt dygnet runt, och en värdefull medarbetare kan hittas på en marknad där konkurrensen inte är lika hård (för att inte tala om det faktum att det är lättare att behålla anställda om man inte tvingar dem att byta plats). 

Men distribuerade lag kan också möta vissa utmaningar. Många har till exempel svårt att införa personlig kommunikation.

Andra utmaningar inkluderar följande processer:

  • Samordna anställda från olika tidszoner;
  • Etablera goda relationer mellan teammedlemmar som arbetar på olika kontor;
  • Samarbete mellan professionella som utövar olika utvecklingssätt;
  • Schemaläggning av möten eller informella samtal när båda teamen samtidigt är tillgängliga online för bara några timmar (eller ännu mindre), etc.

Dessutom är det mycket svårare att simulera ett sjudande liv på en avlägsen plats än på kontoret. Antingen visar du resultat eller så gör du det inte – laget ser det direkt. 

Allt detta skapar verkliga problem, som dock har sina lösningar. Kolla in följande användbara strategier för att överbrygga avståndet mellan lokala och avlägsna kontor och idéer om hur man kan hantera andra potentiella utmaningar.

Skapa korrekt distribuerad teamstruktur

Arkitekturen för bra mjukvara är strukturerad i moduler – samma tillvägagångssätt bör tillämpas på team. Varje kontor bör kunna stödja sina egna teknikbehov så att det är mindre beroende av team från andra tidszoner och mer självständigt överlag. När ett projekt kräver inblandning av andra fjärrteam kan de fokusera på integrationspunkter och API:er.

Kodegranskning spelar också en viktig roll. Människor är tillgängliga online vid olika tidpunkter, så att dela kodkunskap mellan kontor gör support och underhåll mycket enklare. Om ett problem uppstår när ett team inte är tillgängligt kan ett annat kontor enkelt ersätta, ge support till användare och åtgärda problemet. Allt tack vare det faktum att de har lärt sig kodspecifikationer genom samarbetstestning.

Fokusera på uppgifter

Arbetsspecifikationer tillåter utvecklare att arbeta på distans på ett normalt sätt. När utvecklare tar upp nya uppgifter tenderar de att fördjupa sig helt i dem och gillar inte att bli distraherade av någon. För att komma tillbaka till jobbet måste de trots allt ställa om och koncentrera sig igen, vilket tar tid. Därför är det bekvämare för dem att arbeta på distans.

När alla jobbar på kontoret stör chefer ofta utvecklare av någon anledning. Det är en dålig praxis som minskar de anställdas effektivitet. Fjärrarbete eliminerar ett sådant problem.

Bygg bra relationer 

I någon mjukvaruutveckling speciellt i ett agilt projekt, är det avgörande att skapa starka band mellan teammedlemmarna. 

Personliga kontakter hjälper till att bygga upp förtroende, bekämpa orimliga förväntningar, eliminera svårigheterna med självorganisering och förbättra moralen. Ta dig tid att lära känna varje medlem i teamet som arbetar på samma kontor som du. Försök att lära känna människor från avlägsna kontor så bra som möjligt. 

Personliga kontakter är viktiga. Ju starkare de är, desto mer sannolikt kommer dina kollegor att bli mer värda för dig, snarare än bara några distansanställda som arbetar någon annanstans, som du inte har något gemensamt med. Du kan också gå för professionella mentorprogram för att dina anställda ska få den utbildning som krävs så att de lyckas i sina roller.

Med det sagt kan varje ny teammedlem posta ett "välkomstinlägg" i din verktyg för innehållssamarbete. Det här inlägget kommer att introducera teamet för nykomlingen som både expert och person, vilket gör att du kan lära dig om deras hobbyer, intressen, familj etc. Detta kommer att förkorta avståndet mellan dina kontor. Ju bättre ditt team känner varandra som individer, desto mer sammanhållna är de.

Det viktigaste är att ingenting kan ersätta kommunikation ansikte mot ansikte. Teammedlemmar från varje kontor skulle dra nytta av regelbundna möten ansikte mot ansikte med kollegor genom videokonferenser eller när de besöker fjärrkontor.

Verktyg för videokonferenser såsom Zoom hjälpa till att minska avståndet mellan distribuerade agila team. Lag som väljer att använda det här verktyget bör dock vara medvetna om vissa begränsningar.

Videokonferenser låter dig ofta kommunicera bara under en kort period samtidigt som att arbeta på samma kontor är en chans att helt fördjupa dig i en annan anställds värld, lära dig om hans svårigheter, erfarenheter och möjligheter.

Hittills har Zoom hanterat nätverksfel bra. Det är dock mycket möjligt att nätverksproblem kan göra att ljud eller video blir intermittent och oförståelig.

De flesta försöker fortfarande att förplanera videokonferenser i Zoom. Vanan att använda en videochatt för spontan kommunikation i en avslappnad miljö kommer med tiden. Du kan också använda verktyg för snabbmeddelanden, t.ex. Slack, för att hantera små problem.

För att övervinna några av dessa utmaningar i samband med videokonferenser, erbjuda dina teammedlemmar personliga videochattsessioner varje vecka. De kommer att hjälpa till att lossa och ge ett incitament att dela kunskap i en informell miljö. Detta kommer att hjälpa dig att bygga goda relationer med dina kollegor och öka effektiviteten i samarbetet.

Kom ihåg att intonation, röst och kroppsposition spelar en stor roll i kommunikationen. Livekonversationer ansikte mot ansikte hjälper team på distans att lära känna sina avlägsna kollegor bättre, vilket gör framtida onlinesessioner mer effektiva.

Precis som att bygga ett hus eller släppa en produkt måste du definiera din vision och lyfta fram strategiska ämnen. Se dem som de huvudsakliga fokusområdena inom organisationen. Vad vill du fokusera på under nästa kvartal, sex månader, år? Vad vill du ägna tid och resurser åt? Produktivitet, användarinteraktion, säkerhet, nya konkurrenskraftiga funktioner (någon som vill ha en badtunna?), eller några saker på listan samtidigt?

En anställd kan omplaceras till ett annat jobb eller kontor under en tid (från ett par veckor till ett år). Detta är inte bara ett bra sätt att bygga starka relationer och vårda en lagkultur utan också en fantastisk möjlighet för anställda att uppleva en annan kultur.

Forma en enda uppsättning utvecklingsmetoder

Förenkla arbetet för geografiskt fördelade team och ingjuta en gemensam utvecklingskultur i dem med fyra enkla tekniker.

  • Kommunicera även de minsta besluten till alla teammedlemmar;
  • Gör implementeringen av utvecklingsmiljön enkel;
  • Upprätta tydliga kriterier/checklista för arbetsberedskap;
  • Ge instruktioner om hur man hanterar incidenter.

Låt oss bryta ner var och en av dessa tekniker.

  • Förnamn, när ett team som är vant vid att arbeta på ett kontor blir fördelat, blir kommunikationen svårare. Det första du ska göra är att berätta för teamet om nödvändigheten av att rapportera om fattade beslut. Detta verkar otroligt enkelt, men det är lätt att glömma. Ofta fattas viktiga beslut på flykt, under informella lokala teammöten eller av enskilda medarbetare etc. Dessutom är det lätt att ignorera små beslut, eftersom de anser att de är oviktiga.

När du går över till en distribuerad teamstruktur, gör allt för att hålla alla uppdaterade. Dela även de minsta detaljerna tills det finns en fungerande kommunikation mellan kontoren.

När ett beslut fattas bör innebörden och, helst, dess skäl förstås av alla på varje kontor. Skicka inte e-postmeddelanden – det är lätt att missa viktig information i dem.

Använd en handy projektledningssystem där teammedlemmar enkelt kan se nyheter från olika delar av teamet (och ställa in meddelanden om ändringar som ska skickas via e-post eller till deras Slack-gruppchatt). Du kan också skapa personliga kanaler och en lagkanal i Slack för att kommunicera och se uppdateringar. 

Föråldrad information kan leda till att hamna i en återvändsgränd och slösa bort mycket tid, vilket till slut kommer att kosta ditt team mycket mer än att dela information i god tid.

  • Sekund, att arbeta som ett team och hålla reda på uppgifter är mycket lättare med organiserade utvecklingsmiljöer. Skapa en enkel startguide och jämna ut eventuella ojämna kanter genom att automatisera jobbförberedelser så mycket som möjligt.
  • Tredje, om distansanställda arbetar från olika kontor, är det lättare att hantera förväntningar och skapa förståelse mellan team när slutförandekriterierna är tydligt definierade. Detta kan hjälpa till att belysa oklara punkter och hjälpa till med processförbättringar. Till exempel, om du levererar en version som flera team har arbetat med, definiera tydligt vad "avslutad" betyder: kod skriven, pull-begäran skapad, kod verifierad, testad och sammanfogad med motsvarande gren.

Slutligen innebär distribuerad utveckling att när problem uppstår kommer inte alla teammedlemmar att vara tillgängliga online. När tydliga instruktioner för felrapportering och felsökning finns till hands kan alla teammedlemmar enkelt identifiera problemet. Kodkontroller och solida autotester hjälper också till att dela kunskap om kodbasen och låter lämpligt team åtgärda problemet och se till att det inte finns några oavsiktliga biverkningar. Som ett resultat skapar inget lag några problem.

Tydligare uppgift

Att göra uppgifter är mycket viktigt för att ett distansteam ska fungera korrekt. Alla uppgifter och kommunikation kan ske i en tidsspårningsverktyg

När det inte finns någon möjlighet att kommunicera personligen och förklara varje detalj i uppgiften, tar det längre tid att beskriva den: du måste bifoga skärmdumpar, dokument, länkar, guider och så vidare.

Detta lär dig dock att formulera dina tankar mer exakt och uttrycka dem tydligt för artisten. När allt kommer omkring kräver ytterligare frågor extra tid, vilket gör processen mindre effektiv.

Ja, det kan ta längre tid att ställa in uppgifter, men när de väl är korrekta kommer de att "anlända" till utvecklare och testare tydligt, fullständigt beskrivna och med detaljerade kommentarer. Sådana uppgifter är lätta att kontrollera, vilket gör det bekvämare att fixa buggar och visa utmärkta resultat för kunderna.

Ocuco-landskapet mest funktionella projektledningsverktyg idag kan hjälpa dig att arbeta med externa team i projekt.

Betoning på självutbildning

En av de största utmaningarna med att flytta till en avlägsen plats är vanan att arbeta i samma rum. Människor är vana vid att träffas, diskutera projekt och aktuella uppgifter, hitta de bästa sätten att lösa dem. Psykologiskt är allt detta bekvämare att sitta bredvid varandra. Dessutom hjälper livekommunikation dig att lära dig något nytt snabbare av dina kollegor.

Nu måste du utvecklas på egen hand, läsa mycket specialiserad litteratur och lyssna på webbseminarier, istället för att vänta på råd från den som sitter bredvid dig.

Det kommer att ta tid för nya principer att slå rot, men så småningom kommer det hela att bli lättare och du kommer att veta att distansarbete kan vara mycket effektivare när det organiseras på rätt sätt.

Implementera Golden Hours

Inom fotografering syftar "gyllene timmar" på tiderna precis före soluppgång och solnedgång och strax efter dem, när du får de mest framgångsrika landskapsbilderna.

För distribuerade utvecklingsteam är de "gyllene timmarna" när både lokala och avlägsna team är på sina kontor, dvs alla team är vid sina skrivbord, och det är en bra tid att hålla standups.

Standup-möte ("Daily Scrum", "Kanban Meeting" eller helt enkelt "Daily") är ett vanligt kort agilt teammöte utformat för att synkronisera alla deltagare, ge transparens i arbetsprocessen. och därmed upprätthålla teamets effektivitet och produktivitet.

Avlägsna team, där arbetet är spritt över flera tidszoner, kan dra nytta av standups: via dem kan teamet som avslutar arbetet skicka facklan till nästa lag som tar skiftet. Och om standup sker via videokonferens kan det ena teamet enkelt ställa de nödvändiga frågorna till det andra och komma igång snabbt, det vill säga komma till jobbet direkt efter mötet.

Ibland är kontoren så långt ifrån varandra att delade möten kommer att orsaka en del olägenheter för ett team. Går du upp klockan 5 för att stå upp med ett annat lag? Nej tack. 

Alternativa mötestider. Detta kommer att vara rättvist för båda lagen, och inget av lagen kommer att behöva ständigt arbeta övertid (sådana situationer undergräver allvarligt moralen). Om detta scenario inträffar måste du ha en övertidskalkylator att mäta övertidsarbete och lön. 

Var noga med att se till att hela laget är involverat i standupen. Om teamet är för spänt eller missnöjt med hur det går, kommer de så småningom att tappa intresset, sluta lyssna eller dela sina åsikter. 

Du behöver inte köra en standup varje dag. Träffa ditt fjärrteam några gånger i veckan, och andra dagar, håll en standup för det lokala laget. Standups kan hållas annat än på morgonen när det passar för alla att delta.

Kontor för juniorer. Distansarbete för seniorer 

Eftersom mjukvaruutvecklare inte sitter bredvid varandra när de arbetar på distans är det svårare att dela kunskap och erfarenhet och företagskulturen sprider sig långsammare.

Det finns dock en väg ut. Du kan anlita seniorer, det vill säga professionella utvecklare med erfarenhet, som kan sin verksamhet grundligt, för distansarbete och anställa juniorer, det vill säga de som bara börjar ägna sig åt anpassad mjukvaruutveckling, att arbeta på kontoret.

De kommer att lära sig och anta företagskulturen snabbare under ledning av teamledare. För att växa till en värdefull specialist behöver en junior mycket uppmärksamhet.

Med det sagt kanske du vill kolla följande plattformar som hjälper dig att hitta rätt kandidater:

  • Codementor hjälper dig att hitta experter för on-demand kodgranskning och när som helst få kontakt med 12 XNUMX professionella utvecklare.
  • Båge() kommer att hjälpa dig att hitta förhandsgranskade utvecklare för ett komplext projekt under snäva deadlines i olika branscher.
  • AngelList är en plattform där du kan hitta högkvalitativa kandidater (2,3M+, inkl.750k+ utvecklare), lägga upp jobberbjudanden och hantera din kandidatpipeline med en fullfjädrad anställningsverktygslåda gratis.  
  • Hired låter dig skapa en profil för att göra olika företag intresserade och ge dig sina erbjudanden.
  • Testa Gorilla har kraftfulla rekryteringsverktyg som hjälper dig att identifiera de bästa kandidaterna och fatta snabba och korrekta anställningsbeslut.

Kontorsboende och kommunikation

CTO och vissa avdelningschefer kan fortfarande arbeta på kontoret, så det är lättare att hålla ett öga på teamets arbete. Vissa säljare, marknadsföringsspecialister och projektledare – de som aktivt kommunicerar med kunder – kan också arbeta från kontoret. 

Många kunder kan vara i din stad och besöka ditt kontor för att diskutera viktiga affärsfrågor. Att prata personligen är bekvämare – man kan skaka hand och titta in i varandras ögon.

Andra chefer och marknadsavdelningar kan arbeta på distans, liksom de flesta i teamet om detta format inte hindrar anställda från att utföra sina uppgifter väl.

Det finns inget behov av att skapa avdelningar som stannar på kontoret eller arbetar på distans på permanent basis. Implementera flexibilitet, prova olika kombinationer och håll dig till det som är mest effektivt vid denna tidpunkt av företagets liv.

Odistribuerade lag finns inte

Verkligheten är att i en distribuerad organisation är alla team avlägsna. Alla team måste anpassa sig och lära sig att utföra ett jobb på flera kontor, dela information effektivt och skapa en gemensam kultur för anställda från olika platser. 

Fjärrarbete är inte längre ett sätt att hitta billig arbetskraft – det är ett sätt att konkurrera med andra städer, regioner, länder. Faktiskt med hela världen.

I de mest effektiva teamen behöver distansrepresentation inte bara kopiera kulturen på huvudkontoret. Sådana team vet att varje kontor har något att lära av andra.

Framgångsrika metoder tillämpas i alla regioner där det finns teamrepresentanter; de måste hittas och delas med andra. Kontor ska inte ställa sig mot alla andra utan behandla varandra som olika delar av samma team.

Även team som har anställda på samma kontor kan dra nytta av att använda en distribuerad modell. Eftersom många team tvingas bli distribuerade då och då, oavsett om det är på grund av affärsresor eller tillfälligt arbete hemifrån – kan alla hitta den perfekta balansen mellan arbete och privatliv.

Team som värdesätter struktur och transparens anpassar sig också mer effektivt till förändringar i projektomfattning. När ett projekt sträcker sig utanför kontoret behöver ingen gå emot deras principer och värderingar för att få de resultat de vill ha.

Författare Bio:

Jessica Winston är SEO-specialist på CoreCommerce.com och har mer än 20 framgångsrika projekt. Hon samarbetar med kända bloggare, författare till sajter som Entrepreneur och andra. Jessica är frisinnad och tack vare sin kreativitet har hon bara haft framgång.