Agile og DevOps er forskellige ved, at Agile i højere grad fokuserer på tilgangen til softwareudvikling og -levering, mens DevOps fokuserer på den løbende implementering af software. Disse to metoder har dog også meget til fælles, så lad os udforske dem.
Agile kontra DevOps er et emne, der ofte dukker op, men den grundlæggende forskel ligger i deres fokusområder og metoder. Agile er en filosofi, der er centreret omkring tilgangen til softwareudvikling og -levering, med vægt på iterative fremskridt og samarbejde. DevOps handler derimod mere om den løbende implementering af software ved hjælp af moderne værktøjer og automatiserede processer, der effektiviserer og forbedrer effektiviteten ved implementering af kode.
De stigende krav om digitalisering samtidig med den voksende bekymring for datasikkerhed har lagt et stort pres på softwareudviklingsteams verden over. Kunder og interessenter forventer, at udviklingsteams kan udrette mere med færre ressourcer, samtidig med at tiden til markedsintroduktion af tekniske produkter forkortes.
I dette miljø er valget af de rette softwareudviklingsmetoder afgørende for succes. Når CTO'er står over for to førende metoder, DevOps og Agile, kan de spørge sig selv, om det vil give bedre forretningsresultater at satse på den ene eller den anden.
Ligheder mellem Agile-metoden og DevOps
Softwareudvikling er vokset eksponentielt i de seneste år. Ifølge data offentliggjort af IBISWorld steg omsætningen med 3,1 % mellem 2018 og 2023 — selvom omsætningen i mange andre sektorer havde det svært.
Hvis du forsøger at vælge mellem en Agile-tilgang eller DevOps-metoder til din softwareudviklingsproces, er det afgørende at forstå, hvor Venn-diagrammet for disse to valg overlapper.
Forståelse af Agile-metoden
Agile-praksisser er relevante for udvikling og projektstyring. Når de implementeres korrekt, kan de have generelt positive fordele for tekniske teams, afdelinger og hele organisationer.
Oversigt over Agile-principper
Agile bygger på en række centrale værdier og principper. De fire grundlæggende værdier i Agile er:
- Mennesker og interaktioner. Agile prioriterer de involverede mennesker, herunder teammedlemmer og kunder, frem for processer og værktøjer. Det omfatter naturlige feedbacksløjfer, retrospektiver og daglige statusmøder for at imødekomme de involverede personers behov gennem hele processen.
- Fungerende software. Agiles primære mål er hurtigt at levere fungerende software, og resultater prioriteres frem for omfattende dokumentation.
- Samarbejde med kunden. Agile er af natur en samarbejdsproces. Den fungerer godt for interne teams og stærke partnerskaber, blandt andet fordi samarbejde prioriteres frem for strenge kontraktforhandlinger.
- Reaktion på forandringer. Agile-teams er fleksible. De er rustet til at reagere hurtigt på forandringer i stedet for at holde fast i en køreplan eller plan, der måske ikke længere er relevant.
Ud over de fire værdier hjælper 12 principper fra Agile-manifestet med at fastlægge, hvordan denne metode fungerer. Disse principper omfatter:
Kundetilfredshed gennem tidlig og kontinuerlig levering | Prioritering af kontinuerlig levering af værdifuld software for at tilfredsstille kunden. |
| At byde forandringer velkommen | At omfavne ændringer i kravene, selv sent i udviklingen, for at give kunden en konkurrencemæssig fordel. |
| Hyppig levering af fungerende software | Fungerende software leveres ofte, med en præference for kortere tidsintervaller. |
| Samarbejde mellem forretningsinteressenter og udviklere | Fremme af et tæt dagligt samarbejde mellem forretningsfolk og udviklere |
| Motivering af individer | At opbygge projekter omkring motiverede individer og have tillid til, at de får arbejdet udført. |
| Ansigt til ansigt-samtale | At værdsætte ansigt til ansigt-samtaler som den mest effektive og virkningsfulde metode til at formidle information. |
| Fungerende software som det primære mål for fremskridt | At betragte fungerende software som det primære mål for fremskridt. |
| Bæredygtig udvikling | At fremme bæredygtig udvikling og gøre det muligt for sponsorer, udviklere og brugere at opretholde et konstant tempo på ubestemt tid. |
| Kontinuerligt fokus på teknisk ekspertise | Kontinuerligt at fokusere på teknisk ekspertise og godt design for at øge agiliteten. |
| Enkelhed | At maksimere mængden af arbejde, der ikke udføres, og fokusere på enkelhed. |
| Selvorganiserende teams | At fremme, at de bedste arkitekturer, krav og designs opstår fra selvorganiserende teams. |
| Regelmæssig refleksion og tilpasning | Med regelmæssige intervaller reflekterer teamet over, hvordan det kan blive mere effektivt, hvorefter det justerer sin adfærd i overensstemmelse hermed. |
12 principper i Agile-manifestet
Agile-principperne understøtter løbende kommunikation og kvalitet i processen. De omfatter også krav om hurtig handling, herunder levering af fungerende software inden for korte tidsrammer og brug af retrospektiver til at reflektere over processen og resultaterne.
Agilitet er afgørende for at ændre håndteringen af usikkerhed i teknologiprojekter.
Agile for CTO'er
Agiles positive forhold til forandring, afhængighed af sprints og andre hurtige aktiviteter samt fokus på hurtig softwareudgivelse som mål understøtter den fleksible udvikling, der kræves i dagens teknologilandskab.
Traditionel teknologi kræver, at der med jævne mellemrum udvikles en køreplan for at afstemme den tekniske indsats med virksomhedens mål. Organisationer, der er centreret omkring køreplaner, understøtter dog muligvis ikke nye forretningsbehov. Agile giver en ramme, der styrer den tekniske indsats, samtidig med at den traditionelle tilgangs ufleksibilitet fjernes.
En CTO i et sundhedsmiljø kan for eksempel være blevet bedt om at udvikle bedre patientportal-løsninger, efter at forretningsmålinger identificerede patientkommunikation som en udfordring. I en traditionel tilgang kan dette blive et fast punkt i køreplanen for den tekniske udvikling det pågældende år. Hvis medicinske faktureringsteams senere identificerer en fejl i løsningerne til skadesanmeldelser, kan det tekniske team dog være ude af stand til på passende vis at flytte indsatsen over på dette nye behov.
Agile-teams har ikke denne begrænsning. De kan hurtigt bevæge sig fra én indsats til en anden og endda videreudvikle en specifik indsats undervejs. Det oprindelige krav til patientportalløsningen kunne for eksempel have været at øge patienternes mulighed for at sende beskeder til behandlere. Hvis yderligere kundefeedback viser, at fakturering er et lige så stort problem, kan det tekniske team også skifte fokus til at tilføje faktureringsløsninger.
Have an account? Log In
Afmystificering af DevOps
DevOps-kulturen bruger ofte mange akronymer og tekniske termer, så den kan umiddelbart lyde langt mere kompleks end Agile. Selvom DevOps-teams muligvis gennemgår processer og trin, som Agile-teams springer over, er det ultimative mål med begge processer at skabe nye produkter, implementere forbedringer og samarbejde godt med tværfunktionelle teams i virksomheden.
De grundlæggende begreber inden for DevOps
DevOps-praksisser følger ofte CALMS-rammen. CALMS står for Kultur, Automatisering, Lean, Måling og Deling. Disse kan betragtes som nogle af de grundlæggende begreber inden for DevOps.
- Kultur – Det hjælper ikke meget at anvende DevOps-værktøjer uden opbakning og fokus på forandringer i teknologiprocesserne. For at DevOps kan fungere, skal driftsændringer i IT-processer blive standarden, og interessenter fra hele virksomheden skal forstå, hvordan disse ændringer kan forbedre de tekniske resultater.
- Automatisering – Automatisering reducerer kedeligt og gentagende arbejde og frigør tekniske ressourcer til at udvikle kreative løsninger.
- Lean – DevOps-teams søger muligheder for løbende forbedringer på tværs af alle processer og opgaver. De accepterer, at fejl er en del af processen, og de kan lære af utilfredsstillende resultater for at forbedre fremtidige resultater.
- Måling – Løbende forbedringer kræver data, som du kan gennemgå. DevOps-teams fokuserer på centrale resultatindikatorer og andre målepunkter, der hjælper med at informere deres løbende beslutninger om arbejdet.
- Deling – En stærk DevOps-kultur indebærer, at ansvarlighed og ansvar for løsninger deles med virksomheden. I disse strukturer arbejder udviklere ofte også videre med produktet fremover.
DevOps' rolle i drift og infrastruktur
DevOps arbejder på at strømline processer og understøtte kontinuerlig integration og levering. I teorien er dette de samme mål som i Agile. DevOps fungerer dog inden for en mere struktureret tilgang, som driftsteams i større virksomheder muligvis bedre kan forudsige og forstå.
Eksempel
Overvej Netflix som et eksempel. Den populære streamingtjeneste har benyttet DevOps-kultur og -værktøjer i over et årti — lige siden den foretog det hidtil usete skift fra at sende lånte dvd’er til at streame digitalt indhold. Netflix er en enorm virksomhed med tusindvis af bevægelige dele. Sammen med partnere som Amazon Web Solutions understøtter den også en enorm mængde server- og digital aktivitet.
DevOps-metoden er afgørende for Netflix’ succes. Streamingservicevirksomheden går så grundigt ind for CALMS-koncepterne, at den automatiserede fejl for at sikre, at den konstant lærte og blev bedre for at forhindre fejl, som slutbrugere kan opdage. Dette er en af grundene til, at din Netflix-konto fungerer så stabilt.
Agile over for DevOps: Hvad er forskellen?
Selvom de overordnede mål måske er de samme, arbejder Agile-teams og DevOps-teams ikke på samme måde. Der er afgørende forskelle på, hvordan disse udviklingsteams ledes og arbejder i virksomhedsorganisationer.
Tilgang til softwareudvikling
Måske er den væsentligste forskel Agiles iterative udvikling over for DevOps' kontinuerlige levering.
Agiles iterative tilgang
Den sprintbaserede tilgang og fleksibiliteten ved Agile-softwareudvikling prioriterer kundefeedback og understøtter kortere samlede udviklingstider. Agile-udviklere gentager processen løbende for at forbedre tilbuddene over tid, uanset om softwaren udvikles via lavkodeplatforme eller gennem mere traditionelle metoder. Hvert sprint i denne tilgang kan potentielt resultere i en leveringsklar produktforøgelse, hvilket kan bidrage til løbende kundetilfredshed eller tilfredshed blandt interessenter samt engagement.
Et eksempel på Agiles succes kommer fra CISCO – de bruger et "team af teams" til at understøtte trinvise Agile-udgivelser. CISCO bruger Agile-metoden til at styre projekter, skabe nye funktioner og lancere rettelser af fejl.
DevOps' kontinuerlige levering
DevOps-teams arbejder via kontinuerlig integration og kontinuerlig levering for at forkorte systemets eller softwareudviklingens livscyklus uden at påvirke kvaliteten af leverancerne. De sammenfletter automatisk kode med hovedproduktet uden at vente på betydelige udgivelsesdatoer. Det muliggør fortsatte opdateringer, samtidig med at integrationsudfordringer, som opleves ved større opdateringer, reduceres.
Værktøjer til kontinuerlig levering følger denne proces og implementerer automatisk kode i de relevante test- og produktionsmiljøer. Leveringen kan ske efter en fast tidsplan, f.eks. ugentligt. I mange organisationer gennemføres kontinuerlig levering under de natlige systemopdateringer. Kontinuerlig implementering kan yderligere effektivisere integrationer. Her udgives opdateringer til kunder eller slutbrugere umiddelbart efter automatiseret test.
Evnen til at levere opdateringer i realtid til hundredtusindvis af kunder, der bruger AWS, er afgørende for den digitale gigants succes, og det er ofte komplekse automatiserede testprocesser, der skal stoppe implementeringen, hvis der opstår en kritisk fejl.
Teamstruktur og samarbejde
Hvordan teams er struktureret — og hvordan de arbejder sammen med andre i virksomheden — varierer afhængigt af, hvilken model du vælger.
Agile-teamets dynamik
Agile-teams består typisk af udviklere, Scrum-mastere og produktejere. De arbejder via konstante daglige statusmøder og regelmæssige møder og kan bruge værktøjer som kanban-tavler til at styre opgaver. Agile-teams er typisk små og tværfunktionelle; de ledes ofte selvstændigt inden for rammerne af deres roller og mandater. Hvert teammedlem eller gruppen kan træffe projektbeslutninger eller ændre fokus uden specifikke anbefalinger fra ledelsen.
Hvert Agile-team kan være ansvarligt for et specifikt projekt eller endda et bestemt fokusområde inden for et større produkt. De kan også skifte fra én indsats til en anden, nogle gange fungere som et teknisk beredskabsteam, uden at se en hel softwarelivscyklus.
More Articles
DevOps-teamets fokus
I modsætning hertil er DevOps-teams ofte ansvarlige for hele softwareudviklingens livscyklus. De kan fortsætte med at understøtte produkter, efter at de er blevet implementeret. Teams består af ressourcer inden for udvikling, QA, IT-drift og sikkerhed, med langt mere samarbejde på tværs af teams og afdelinger end i Agile.
Mens Agile-teams måler succes på levering af fungerende software, bruger DevOps-teams præstationsmålinger, såsom gennemløbstid for ændringer og implementeringsfrekvens, til at måle succes.
Agile og DevOps: komplementære eller modstridende?
Ofte kræver optimeringen af softwareudviklingsprocesser og brugen af teammedlemmer en hybridtilgang. I sådanne tilfælde vil CTO'er måske benytte DevOps som en overordnet praksis og anvende Agile-metoder inden for denne ramme for at imødekomme behov for hurtig udvikling eller ændringer i fokus.
Du kan for eksempel arbejde med en DevOps-kultur, men inden for den have et særligt Agile-projektteam. Du kan bruge dette team til at imødekomme skiftende eller særlige behov, der opstår i løbet af året, og som ikke passer ind i en DevOps-køreplan.
Hvad er næste skridt?
Der findes mange bemærkelsesværdige ressourcer om softwareudvikling, herunder nyhedsbreve om udvikling, som du kan bruge til at lære mere.
For CTO'er og teknologiledere i frontlinjen af udviklingen kan du tilmelde dig vores nyhedsbrev med ekspertrådgivning om succeser og udfordringer inden for Agile og DevOps.



