Continuous Delivery pipeline: Förbättrar flödet från krav till leverans
Inom mjukvaruutveckling är det vanligt att dela upp arbetet i utveckling och drift. Tanken är att olika funktioner jobbar mer effektivt om de få fokusera på att optimera sin del i kedjan. Inom DevOps tänker man precis tvärtom – att man blir mer effektiv om alla har fokus på att effektivisera och optimera det egna arbetet med fokus på slutresultatet.
– Ett kundkrav är värdelöst fram tills dess att en kund tar emot lösningen. Målet med en Continuous Delivery Pipeline därför är att få den resan att bli så kort som möjligt, att uppdraget att rinner så snabbt och smidigt som möjligt från beställning till leverans, säger Martin Comstedt, seniorkonsult på Onbird inom Agil organisationsutveckling och förändringsledning.
Problemet med det traditionella sättet att dela upp arbetet i utveckling och drift är att de olika funktionerna optimerar arbetet utifrån sitt eget perspektiv och på så vis riskerar att skapa bekymmer för varandra. I slutändan är det kunden som blir lidande, med försenade leveranser och ökade kostnader.
Genom att se uppdraget som en helhet från beställning till leverans öppnas helt nya möjligheter att korta ledtider och hitta de bästa lösningarna för kunden.
Dra nytta av varandras kompetens
När vi slår ihop utveckling och drift till en enhet blir alla ansvariga för totalleveransen. De får en bättre förståelse för varandras arbete och utmaningar under resan och kan dessutom dra nytta av varandras kompetens på ett helt annat sätt.
Fördelar med Continuous Delivery Pipeline
- Kortare ledtider, bättre kvalitet. Tiden från beställning till leverans blir kortare, nya releaser kan släppas oftare och risken för kostsamma fel minskar.
- Automatisering. Minskar tiden för test, integration och överlämning samtidigt som det minskar risken för fel. Dessutom kan medarbetarnas kompetens användas på ett bättre sätt.
- Fokus på kunden. Ett gemensamt flöde, där alla mäts och utvärderas utifrån samma mål sätter ett tydligare fokus på att skapa värde för kunden. Det blir också lättare att vara lyhörd för kundens önskemål.
- Utveckling, test och integration sker kontinuerligt i små steg. Det minskar risken för att fel hänger med ända fram till release.
- Små iterativa förändringar uppmuntrar kreativitet och gör det lättare att våga testa nya idéer.
Fel och problem upptäcks tidigt
DevOps bygger på en kombination av Lean och Agil Utveckling. Det innebär att man drar nytta av metoder och verktyg inom Lean för att skapa flödeseffektivitet, samtidigt som man jobbar agilt med små iterativa förändringar där utvecklarna kodar, testar och anpassar mjukvaran i små steg under hela resan.
– Vi får en överblick som hjälper oss se vad som stoppar upp i flödet till kund. Den stora utmaningen är att få alla att lyfta blicken från den egna lilla delen i flödet se det gemensamma problemet. Varför tar det tre månader från beställning till leverans? Var finns problemen och hur kan vi lösa dem tillsammans?
Martin Comstedt berättar att ett flödesorienterat arbetssätt inte bara leder till kortare ledtider, utan även påverkar kvalitet och kreativitet. I en Continuous Delivery Pipeline jobbar alla i samma flöde och man strävar efter att testa och integrera kod och funktionalitet kontinuerligt istället för att avsätta en egen testperiod för detta. Fördelen är att fel och eventuella konflikter eller problem upptäcks tidigt och kan rättas till på en gång.
Automatisering är en viktig nyckel och idén är att automatisera allt som går att automatisera.
– Du kan exempelvis automatisera testningen så att den kod du skriver på kastas in i källkodsarkiv och testas varje gång du sparar. Då får du direkt ett kvitto på hur koden fungerar, förklarar Martin Comstedt.
Automatisering låter den mänskliga hjärnan fokusera på det den är bra på
En vanlig orsak till problem i mjukvaruutveckling är dåliga överlämningar. Martin Comstedt jämför det med viskleken, där information förvrängs och tappas bort mellan varje steg, vilket gör att man får ett helt annat resultat än förväntat. Att automatisera överlämningar minskar risken för mänskliga fel, samtidigt som det ger utrymme för utvecklarna att fokusera på det som den mänskliga hjärnan är bra på – att se vad som skapar värde för kunden och hitta de kreativa lösningarna.
– Genom att automatisera överlämningar minskar man risken för fel och det går dessutom att kapa en hel del tid i flödet, poängterar han.
Kortare ledtider är en viktig effekt av DevOps, men det finns även fler fördelar. Kvaliteten på slutresultatet blir bättre, eftersom man hela tiden jobbar med test och integration. Verksamheter som jobbar med DevOps kan släppa nya uppdateringar oftare och eftersom man jobbar med små förändringar är det också lätt att rulla tillbaka en release om det trots allt inte skulle fungera som det var tänkt. Jämfört med att göra stora releaser sällan, som kan bli väldigt kostsamma för kunden om de går fel, så uppmuntrar detta arbetssätt även kreativitet och experimentvilja.
– Arbetssättet uppmuntrar en kultur där man vågar pröva nya saker. Det är inte hela världen om något inte blir som man tänkt sig, men om man lyckas kan det få stora effekter på slutresultatet.
Två vanliga misstag
Hur kommer man igång?
Även om automatisering är en central del i DevOps varnar Martin Comstedt för att direkt kasta sig in i verktygslådan.
– Det är ett vanligt misstag. Många lockas av tekniken och det konkreta i att automatisera. Men då är det väldigt lätt att tappa bort att du också bör ta reda på hur flödet ser ut så att du sätter in krutet på rätt ställe.
Det viktigaste steget för att komma igång med DevOps är därför att kartlägga flödet och skapa sig en gemensam bild av hur flödet ser ut, hur lång tid det tar från beställning till leverans och var tidstjuvarna finns på vägen. När ni har koll på flödet och vilka problem det finns, välj då ut det viktigaste och börja med att jobba med det.
– En viktig princip i DevOps är att jobba med små förändringar och se till att de förbättringar man gör funkar med helheten och ger det resultat man är ute efter. Så mitt råd är att börja med att skaffa er en bild av helheten. Var gör det mest ont? Då lägger ni kraften på rätt ställe.
Så kommer du igång
-
•
Kartlägg flödet
Rita upp flödet från beställning, via kodning, testning och integration till release. Hur lång tid tar det? Var finns de stora problemen?
-
•
Börja där det gör mest ont
Börja med att automatisera den delen, testa och utvärdera.