Kontinuerlig gevinstrealisering med UsrBizDevOps

Alle snakker om DevOps. Virksomheter kan rett og slett ikke overse det faktum at DevOps er en forutsetning for mer effektiv programvareutvikling. Det er riktig det, men DevOps alene er ikke hele svaret. Derfor er det viktig å forstå hva DevOps er en forutsetning for, hvilke hindringer det fjerner, hvilke fordeler det gir og hvordan det påvirker organisasjonen. Hvorfor er det viktig for forretningssiden? Hvordan påvirker det IT-avdelingen? Vel så viktig er det å snakke om hva som er forutsetninger for DevOps. Selv om DevOps ikke er et sett med teknologier eller prosesser, er det vanskelig å implementere det uten å ta hensyn til disse aspektene.

Stein Inge Morisbak
Bekk

--

For å forstå hvorfor DevOps er viktig må man se forbi hva det konkret tilfører og plassere det i en større sammenheng. Virksomheter i dag er på vei bort fra å behandle IT som en støttefunksjon. Effektivisering, vekst, innovasjon og lønnsomhet er i økende grad IT-drevet, og dagens brukere forlanger stadig mer av IT-systemene som produseres. Brukerne er utålmodige og forventer at virksomhetene forstår deres behov, i motsetning til virksomhetens behov. Lykkes man ikke med kontinuerlig realisering av brukerverdi, står man i fare for at de blir misfornøyde, ikke benytter tjenestene eller i verste fall at de går til konkurrenten. Utvikling av nye tjenester og produkter må være raskt og rimelig, produsere verdi tidlig og kontinuerlig, og gi innsikt i hva brukerne egentlig trenger og ønsker på deres premisser. DevOps er ikke hele løsningen, men det er definitivt en sentral del for å lykkes med virksomhetens mål. Jeg vil innledningsvis gi en kort forklaring av hva DevOps er for så å diskutere hva det bidrar med i en større sammenheng og hvordan det endrer virksomheters struktur og organisering.

Hva er DevOps?

DevOps er en kombinasjon av to ord. Development og Operations. Utvikling og Drift. Det er en kulturgreie som understreker at utviklings- og driftsfunksjonene må samarbeide tett og unngå siloene hvor drift blir målt på stabilitet, og utvikling på endring. Det kunstige skillet mellom de to disiplinene brytes ned. Man ser på IT-systemer som tjenester og produkter som tekniske team samarbeider om å utvikle, vedlikeholde og drifte. Teamene er kryssfunksjonelle og har ansvaret for hele livssyklusen til programvare fra unnfangelse til bruk, inkludert ansvar for kvalitet, tilgjengelighet, ytelse, stabilitet, skalerbarhet, sikkerhet og monitorering. Teamet kan løse alle tekniske oppgaver som skal til uten ekstern innblanding eller behov for å henvende seg til utenforstående personer. Autonomiteten gjør at de kan bevege seg raskt og smidig og på den måten understøtte forretningssiden sine ønsker om å lage best mulig tjenester på en forutsigbar måte.

Kjerneverdier i DevOps kjenner vi igjen fra Smidig programvareutvikling, Lean IT, og produkt- og forretningsmetodikken Lean Startup. Alle disse fokuserer på effektiv flyt av verdifulle produkter eller tjenester gjennom verdikjeden. I tillegg er rask feedback på prosess og produkter sentralt, samt at de vektlegger eksperimentering og læring underveis. DevOps har ikke oppstått i et vakuum. For å forstå verdien av DevOps må man se på koblingen mellom IT og forretningsmessige mål.

UsrBizDevOps

DevOps er et middel og ikke et mål i seg selv. Målet er å tilfredsstille brukernes behov og skape verdi for forretning. DevOps bør derfor prefikses med Bruker (Usr) og Forretning (Biz) i den rekkefølgen. UsrBizDevOps.

UsrBizDevOps-team

Brukerne er de vi lager produktene eller tjenestene for. Derfor er det viktige å involvere brukerne tidlig og kontinuerlig gjennom hele prosessen. Ved å lansere hyppige eksperimenter, lære, og planlegge basert på denne læringen, blir man sikrere på at man lager riktig produkt. Uten DevOps er det så og si teknisk umulig å oppnå denne raske itereringen.

Men det er ikke brukerne som skal tjene eller spare penger. Det er forretningssidens ansvar. Og siden det bør være det viktigste å bruke tid på, så deltar de tett sammen med det tekniske teamet som skal lage produktene. Og gjennom å lage det brukerne vil ha, så skal de sikre at gevinster realiseres og at det skapes verdi.

Organisatoriske forutsetninger

Om man skal ta ut det fulle potensialet DevOps gir må en del organisatoriske forutsetninger være på plass. Først og fremst en forretningsside som er involvert fra dag til dag. UsrBizDevOps-team har full kontroll over alle aspekter ved produktet (eller verdien) som produseres. Alle forstår hensikten med innsatsen og hva man ønsker å oppnå. I en større organisasjon gir dette at hele virksomheten blir mer smidig og endringsdyktig, samt at skalering og omprioritering blir mye enklere.

UsrBizDevOps-org

For å unngå suboptimalisering stilles det sterke krav til effektiv målstyring. Og man må slutte med IT-prosjekter. Fokuset skifter fra folk og leveranser til en lærende nettverksorganisasjon som fokuserer på verdiskaping. De selvstyrte teamene gir en unik mulighet for fleksibilitet og evne til å reagere på endringer og nye muligheter. Det er derfor viktig at teamene jevnlig synliggjør resultater som kan brukes til å styre initiativene. Fleksibiliteten gjør at man kan styre sin bedrift ved å finansiere initiativer man ønsker å få gjennomført. Viser ikke initiativet de ønskede resultatene kan man kutte finansiering, omorganisere og investere pengene andre steder. Tilsvarende kan man øke investeringen der potensialet er større. Noen virksomheter benytter også denne tilnærmingen for å konkurrere med seg selv. Dette gjør at man kan komme konkurrenter eller nye disruptive trender i forkjøpet.

Hva skjer med IT-avdelingen?

Oppgavene IT-avdelingen har ansvar for forsvinner ikke. Det er heller slik at ansvaret øker. IT skal ikke lenger bare være ansvarlige for teknisk suksess. De skal i mye større grad også være ansvarlige for hele virksomhetens suksess. Virksomheten må innse at den er en IT-bedrift og at IT-avdelingen ikke lenger er en isolert støttefunksjon for forretning. Det vil være nødvendig med organisasjonsendring som sørger for et mye tettere samarbeid mellom alle funksjoner. Beslutninger om IT kan ikke bare overlates til IT-sjefen. Når teknologi er den viktigste driveren for forretningsverdi må ledere ha IT-kompetanse. Teknologene vil jobbe mye tettere på brukere og skal sørge for rask feedback på fungerende programvare med høy kvalitet. Planlegging, kravspesifisering, estimering, overleveringer og testfaser er det ikke tid til. Dette medfører endring i hvordan IT-systemer utvikles.

Tekniske forutsetninger for DevOps

Automatisering er essensielt om man skal oppnå repeterbare, suksessfulle releaser jevnlig. Manuelle prosesser er ineffektive og simpelthen alt for utsatt for feil. Bygging, testing og produksjonssettinger skal være automatisert på en slik måte at når en utvikler er ferdig med en endring så kan den umiddelbart rulles hele veien ut i produksjon.

Monitorering og måling bør gjennomsyre alt man lager og gjør. Risikoen for produksjonsproblemer reduseres dramatisk når effekten av hver minste endring er synlig. Det er ikke bare monitorering av tekniske aspekter som gir verdifull innsikt. Også funksjonell monitorering kan fortelle mye om effekten av endringer, for eksempel færre registreringer eller reduksjon i antall brukere som benytter seg av en funksjon.

Produksjonslik infrastruktur må være selvbetjent og tilgjengelig for alle. Dette krever en elastisk infrastruktur hvor miljøer kan opprettes og rives ned etter bruk. Ellers vil kapasiteten fort bli overskredet eller veldig dyr. Manuelle operasjoner på servere eller annen infrastruktur er ikke tillatt. All konfigurasjon er definert som kode, versjonert i kildekodekontroll og testes automatisert. Miljøene som opprettes er garantert like og behovet for konfigurasjonsstyring av miljøer borte.

Offentlige skytjenester gjør alt eksponentielt enklere. Infrastruktur i egen datahall, eller hos tradisjonelle driftsleverandører, kan simpelthen ikke konkurrere med de store nettskyleverandørene når det gjelder fleksibilitet, skalerbarhet, stabilitet, sikkerhet eller tjenestenivå. Trond Arve Wasskog har skrevet mer om dette i Alle vil til himmelen men ingen vil dø og Hvem kan konkurrere med Amazon Web Services?

Modernisering av IT-funksjonen er nødvendig, og det er viktig å ikke miste motet på veien. Det er en rekke tiltak på veien mot toppen. Det oppløftende er at alle tiltakene tilfører verdi og gjør oss stadig bedre. Sveinung Dalatun og jeg har tidligere skrevet om dette i bloggposten A Maturity Model for Continuous Delivery.

Avsluttende ord

Selv om DevOps først og fremst handler om kultur, organisering og noen overordnede prinsipper, så forutsetter en vellykket implementering teknologistøtte. Automatisering, monitorering og en fleksibel infrastruktur må til for å ta ut de virkelig store effektene. Teknologien finnes i form av verktøy for automatisering og monitorering, og offentlig nettsky er løsningen for infrastruktur.

DevOps er ikke et mål i seg selv. Det er et middel for at forretningssiden skal få tilbake kontrollen over release-planen. IT skal ikke lenger være en bremsekloss. DevOps muliggjør en taktfast og repeterbar prosess for hyppige endringer uten at korthuset raser sammen på grunn av dårlig håndverk. Kontinuerlig eksperimentering i produksjon gjør det mulig å skaffe tidlig og sikker innsikt i hva brukerne gjør og ønsker.

Forsidebilde er hentet fra devopsdays.org

--

--