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

BLOGG

Her finner du nyheter om Cefalo og fagstoff om it-utvikling, outsourcing og eksterne utviklingsteam.

Slik beholder du full kontroll over outsourcede utviklingsprosjekter

Tom Handegård | 10.01.2019

En av de vanligste bekymringene ved å outsource utviklingsoppgaver er at du vil miste kontrollen. Moderne utviklingsverktøy gir deg heldigvis akkurat det du trenger for å unngå dette.

Først og fremst: Hva mener vi med å «miste kontrollen»? Mange bedrifter (særlig mindre bedrifter) er vant til å jobbe i et miljø der utviklere og ledere sitter tett på hverandre, og lett kan komme med innspill eller spørsmål til hverandre. Om viktige oppgaver plutselig utføres til en annen verdensdel, er det ikke så rart at noen bekymrer seg for at de vil miste oversikten.

Mye av nøkkelen til å beholde kontrollen er å sørge for transparens. Du må kunne sikre deg at du fremdeles har full innsikt i hva som foregår hos outsourcing-teamet ditt, og at dere ikke ender opp som to separate enheter. Her er det stor hjelp i moderne utviklingsprinsipper som Scrum, og kontinuerlig deployment og verktøy som GitHub, Jira og Jenkins. Ettersom store deler av moderne softwareutvikling allerede foregår distribuert, er disse bygget blant annet for å gjøre dette enklere.


Hold oversikt på oppgavene gjennom Scrum-verktøy

Når du ikke lenger kan prikke sidemannen på skulderen og høre hvordan han ligger an, blir verktøy som lar deg følge agil metodikk desto viktigere. Ved å bruke f.eks. Jira eller Trello til å fordele, spesifisere og tracke oppgaver, trenger du bare klikke deg inn på siden for å få et fullstendig overblikk.

Her er det viktig at dere beregner forventet tidsbruk i forkant, slik at dere vet hvorvidt progresjonen går som forventet, og oppdager det tidlig dersom utviklerne går over på tid.

Vi anbefaler at dersom dere allerede følger en slik metodikk, bruker dere samme verktøy for outsourcing-teamet, fremfor å skulle introdusere noe nytt.

Verktøyene erstatter selvsagt ikke behovet for jevnlig kontakt ansikt til ansikt, om så dette er gjennom fysiske møter eller video. Daglige Scrum-møter er minst like viktig når dere jobber distribuert, så se heller på verktøyene som hjelp til å understøtte og følge opp prosessene, fremfor å erstatte dem. Takhøyden for å kontakte hverandre jevnlig burde være svært lav.


Oppdater løpende med populære utviklingsverktøy

Scrum og tilhørende software er én side av mynten, nemlig den som dreier seg om prosjektstyring. Når det gjelder den tekniske utviklingen av produktet eller tjenesten deres, er det som nevnt også slik at moderne metodikker og verktøy allerede understøtter distribuert samarbeid. Vi skal nevne de viktigste:

Git ble opprinnelig laget fordi forrige generasjons verktøy ikke godt nok støttet behovene til utviklere som satt på ulike lokasjoner, men likevel måtte jobbe på felles kildekode. Opprinnelig ble utviklingen drevet av behovene til store OpenSource-prosjekter (Linux), men Git-baserte kodelagre, eller «repoer», som Github og Bitbucket brukes nå av de fleste utviklere. Git gjør det mulig å la alle utviklere jobbe effektivt på sin kopi av kildekoden, samtidig som det finnes en rekke mekanismer for å beholde kontrollen over hvordan de ulike utviklernes bidrag integreres.

Automatisert testing og kontinuerlige leveranser (continuous delivery) er praksiser som har som målsetning at et system skal kunne oppdateres ofte, i mange små iterasjoner. Prinsippet går kort sagt ut på at alle kodeendringer som gjøres, gjennomgår et sett automatiske tester. Dersom de passerer testen vil de automatisk bli lastet opp på en  kjørende versjon av systemet. For eieren av et system betyr dette at det blir mulig å inspisere og teste effekten av utviklernes arbeid nærmest kontinuerlig i en kjørende versjon av løsningen.

Skybaserte infrastrukturer som Amazon Web Services, Microsoft Azure og Google Cloud gjør det mye enklere og billigere enn tidligere å sette opp servere, databaser og andre basisressurser man trenger for å få opp et kjørende system. Skytjenestene har en rekke verktøy som (integrert med Git) støtter opp om kontinuerlige leveranser. Dette gjør det forholdsvis enkelt og rimelig å skape et miljø der man til enhver tid har oppdaterte testversjoner av systemet kjørende, i tillegg til produksjonsversjonen.   

En god outsourcing-leverandør burde ha mye kunnskap om disse verktøyene og metodikkene, slik at du kan få hjelp med å sette opp en løsning som gjør det lett å samarbeide. Sørg for å forhøre deg om dette før du inngår en avtale med ditt foretrukne outsourcing-firma.