<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=614121&amp;fmt=gif">
Kontakt oss

Slik bygger du produktive utviklerteam

Gode resultater starter med et godt team. Dette bør du tenke på når du skal sette sammen et produktivt utviklerteam.

Skal du bygge et godt utviklerteam kan det virke enkelt å plukke dyktige folk og sette dem til de oppgavene du tror de vil løse best. Men det skal mer til for å lage gode team enn bare å sette dyktige folk sammen.

Forskning viser at det er særlig tre aspekter som har betydning for effektiviteten. Det er teamets størrelse, mangfold og medlemmenes kompetanse og personlighet.

I Cefalo har vi mange års erfaring med å sette sammen gode utviklerteam. Her får du våre tips for å bygge produktive team av utviklere som vil nå de resultatene du har behov for.

 

1. Start i det små

Et team er altså en liten gruppe. Vår erfaring er at et optimalt team består av mellom tre og syv personer. Blir det flere, er det vanskeligere å samarbeide som en enhet. Da blir det fort til at mange kokker lager mye søl og du øker risikoen for at «sosial loffing» forekommer.

Når du skal sette sammen et team anbefaler vi at du starter i det små, med en team lead og en kjernestruktur som både setter opp strukturen i løsningen som skal lages, og legger grunnlaget for den arbeidskulturen du ønsker i teamet. Her bør du starte med de mest erfarne utviklerne og fylle på med juniorer etter hvert, selv om du er ute etter et «stort» team.

shaon_circle

Ferdous Mahmud Shaon er daglig leder av vårt datterselskap i Dhaka. Han har jobbet med IT-utviklere og ledelse i over 15 år, og har lang erfaring med hva som skal til for å bygge gode team. Han deler gjerne av sin kunnskap.

– Ideelt sett bør teamet ikke overstige 7–8 personer. Hvis du har større team, bør disse deles i mindre team. En optimal størrelse på teamet gjør det lettere å følge opp arbeidet som gjøres. Du får bedre kontroll på oppgavene, hva som foregår og hvem som gjør hva, sier han.

 

2. Den viktige team leaden

Team leaden er avgjørende for at teamet skal fungere optimalt. Han eller hun gjør de andre gode, og en slik kultur bør du strebe etter å få til for hele teamet. Åpen dialog og trygg kommunikasjon er stikkord her.

– En team lead må kunne holde seg rolig, han kan aldri miste fatningen, oppsummerer Shaon.

I et utviklerteam bør team lead være en som er teknisk kompetent, altså en som holder et visst nivå teknisk. Mangler team lead den tekniske kompetansen, vil han eller hun risikere ikke å få den nødvendige tilliten og troverdigheten hos de mer teknisk kompetente utviklerne. Rollen som team lead krever også evner til å kommunisere, organisere og delegere arbeid og oppgaver. Det gjelder kommunikasjon både internt og eksternt. 

En team lead er typisk en person som har en god del erfaring. Personen som innehar rollen skal ikke bare ha en dyp forståelse av den tekniske siden av prosjektet, men også teamledelse. Hovedoppgavene består av å løse problemer og bidra til prosjektvekst.

– En team lead fungerer på et vis som et skjold, og skal beskytte teamet slik at det kan holde fokus på oppgavene. Samtidig er team lead en slags bro fra ledelsen, produkteier, prosjektleder, eller kunde til utviklingsteamet og omvendt. En team lead må ha utmerkede kommunikasjonsevner, spesielt om han skal jobbe med distribuerte team, forteller Shaon.

Det er også team lead som er ansvarlig for å overvåke teamaktiviteten, tidsrapporteringen og som har kontroll på fasene i prosjektutviklingen. Det sier seg selv at du bør bruke tid på å finne rett person til rollen. Helst en som har vært team lead før, eller en som har erfaring som utvikler og som viser motivasjon og evner for å være team lead.

 

3. Velg en god miks av seniorer og juniorer

Når du skal sette sammen et utviklerteam, vil du kunne velge mellom ulike typer utviklere. Typisk er dette seniorutviklere, juniorutviklere, og kanskje også noen på et nivå midt i mellom. Du trenger alle typene for å få optimal produktivitet, men du bør ha gjort deg noen tanker om hvilken fordeling du vil ha på disse.

Fordelen med seniorer er at de har lang erfaring og kan gjøre jobben sin raskt. De har ofte en dypere forståelse av arkitekturen og vil kunne fungere som mentorer for andre på teamet.

Vær også bevisst på å få inn teammedlemmer på juniornivå. Du trenger ikke et helt team bestående av høyt kvalifiserte seniorer. En god del av arbeidet innen softwareutvikling er repetitivt. Ikke direkte kjedelig i så måte, men de som jobber med det må ha et kunnskapsnivå som passer til oppgavene. Når det er sagt så bør du ha minst én på teamet som er høyt kvalifisert.

– Ofte vil juniorene gjerne være de som utfører de mer repetitive oppgavene, fikser ting underveis og alltid står parat til å lære. Det som er viktig er å få til et samspill mellom de ulike rollene, slik at alle parter lærer av hverandre. Juniorene bidrar typisk med engasjement og kreativitet, mens seniorene raskere ser helheten i prosjektet og hvordan beslutninger som tas i dag kan påvirke teamets produktivitet i fremtiden, forklarer Shaon.

 

Det er altså en god miks av junior- og seniorutviklere du er ute etter. Treffer du på dette vil du kunne sørge for at teamet ditt følger en god fremdrift og leverer resultater når de skal.

 

4. Legg opp til en mentorordning

Når du har fått seniorutviklerne på plass, bør du se på hvordan du kan bruke dem best mulig til å utvikle potensialet som finnes hos de andre på teamet. Vil du at temaet ditt skal bli stadig bedre, bør du oppfordre til mentorskap og legge til rette for at det kan finne sted.

Forskning på effekten av å ha en mentor viser at mennesker med mentorer presterer bedre, avanserer i karriere og har mer jobbtilfredshet. I tillegg kan det være positivt for mentorens forpliktelse til selskapet og egen jobbtilfredshet. Vinn-vinn for deg med andre ord.

Sørg for at hver junior er tilknyttet en senior, som kan høste av sin erfaring og få juniorene opp på et høyere nivå. På den måten øker du produktiviteten til teamet som helhet. 

Seniorutviklere vil ofte finne det motiverende og lærerikt å fungere som mentorer, noe som også vil kunne øke deres engasjement og resultat. Legger du til rette for en mentorordning, der for eksempel parprogrammering og «code-reviews» gjøres regelmessig, vil selv nybegynnerne dine kunne bli produktive bidragsytere i løpet av kort tid. 

 

5. Bygg en god teamkultur

Tillit er grunnleggende for å få et team til å fungere. Har dine ansatte tillit til hverandre og team lead, vil de gå den ekstra mila for å sikre suksess. Tillit er også avgjørende for å skape trygghet. Har utviklerne tillit internt i teamet og til leder, ja da tør de si fra om problemer. De vil også våge å utfordre og være uenige, slik at du sammen med teamet finner de beste løsningene.

Vår daglige leder i Dhaka oppsummerer det slik:

– Det må etableres en vi-kultur fra starten av. Teamet som helhet skal ha kapasitet til å ta fullt eierskap til oppgavene sine, og oppleve en holdning som sier «Vi løser dette sammen!».

Han fremhever viktigheten av teambuilding-aktiviteter og å ta seg tid (og råd) til å gjøre skikkelig onboarding, også for distribuerte team.

– Dette minimerer gapet mellom hjemme-organisasjonen og teamet, og skaper det sterke båndet som trengs for å nå målene raskt og effektivt, sier han.

Vil du lære mer om hvordan du kan motivere, lede og få resultatene du ønsker av utviklingsteamet ditt? Da bør du lese denne artikkelen, der vi har gått grundig gjennom hva som må til for å oppnå suksess med et team av utviklere.

 

6. Spesialisering (og allsidighet) til sin tid

Når du skal sette sammen teamet ditt, vil du såklart ha så flinke folk som mulig. Sørg for at du har en miks av kvaliteter og spesialiseringer. Vi anbefaler ikke å satse på én, eller noen få, som skal kunne og gjøre alt.

Scrum er en metode som peker på fordelene ved å ha et tverrfaglig team, satt sammen av personer med hver sine spesifikke evner og tiltenkte roller. Skal du ha et team på 6–8 personer, vil du typisk ha behov for en som er god på design, en på brukergrensesnitt, en frontend, noen backend, en til testing og kvalitetssikring, samt en team lead. Blant disse igjen bør du som tidligere nevnt også ha variasjon på junior- og seniorutviklere. Det er litt av en kabal du skal legge.

– Som hovedregel kan vi si at dersom teamet ditt er lite, rundt 2–3 personer, da bør du se etter utviklere som er gode på variasjon og kan håndtere flere ulike oppgaver – allrounderne. Skal du ha et større team, bør du lete etter de mer spesialiserte utviklerne, forklarer Shaon.

Spesialisering i et utviklerteam gir svært gode produktivitetsgevinster. Derfor er den generelle anbefalingen vår at du bør ansette med spesialisering i tankene, fremfor å bygge et team med generelle utviklere.

 

Men – du kan likevel legge til rette for å trene på allsidighet internt i teamet. Noen team har godt utbytte av å jobbe på tvers av roller, i hvert fall i blant. Å utfordre seg selv på andre oppgaver enn de man gjør til daglig, kan gi økt motivasjon og ikke minst legge til rette for at teamet står bedre rustet ved fravær eller andre uforutsette hendelser.

 

7. Rekruttere lokalt eller distribuert?

Når du skal sette sammen et nytt team må du også vurdere om du skal rekruttere lokalt, globalt eller ha en miks av begge deler. Ofte avhenger dette først og fremst av budsjett og tilgjengelighet. Har du tilgang på nok lokale utviklere, og har du råd til å ansette disse?

– Har du anledning til det, så anbefaler vi en miks der minst én på teamet holder til lokalt hos hjemme-organisasjonen. Det er ofte enklere for den ikke-tekniske delen av kundens organisasjon å forholde seg til en lokal tekniker som snakker samme språk og er «enkel» å få tak i, forklarer Shaon.

Men – la oss presisere at dette er vedtatte sannheter som står for fall, spesielt nå som alle er blitt vant til å jobbe over video. Hvorvidt utviklerne dine befinner seg i Dhaka eller på Lysaker har det siste året blitt mindre relevant.

Kort oppsummert vil vi si at dersom du har oppgaver som involverer mange parter, der disse stort sett er lokalisert i Norge, vil det typisk være lettere for en lokal utvikler å stå for koordineringen. Integrasjonsprosjekter der flere fagsystemer skal settes sammen til en helhetlig løsning er et typisk eksempel på dette. Her er det en klar fordel å ha lokal teknisk kompetanse, som kan fungere som en bro mellom det distribuerte teamet og oppdragsgiver (som ofte er ikke-teknisk).

En miks av lokale og distribuerte utviklere er også fordelaktig dersom det skulle oppstå kriser – det skjer jo at ting krasjer eller er nede. Da er det en smart å ha en lokal kompetanse som kan være med å håndtere disse krisene.


Les mer: Fra få til flere utviklere – hvordan profesjonalisere når du skal vokse?

cefalo-prikker-horis

Er du nysgjerrig på ekstern utvikling? Vi tar gjerne en hyggelig prat med deg på telefon, møte eller video.

Snakk med oss om utviklere

Hold deg oppdatert

Abonner på bloggen og få en samling av våre nyeste bloggposter på e-post.

Sign up to our blog