samen
werken
DevOps Praktijken in SAFe
Wat maakt DevOps bijzonder?
DevOps kom je steeds vaker tegen. Maar wat is DevOps precies? Wat maakt het bijzonder? Waarom is DevOps opgenomen in SAFe? Deze vragen worden beantwoord in deze blog. Overigens is (in tegenstelling tot onze andere blogs) deze blog IT gericht. DevOps is namelijk bij uitstek geschikt voor IT.
Het probleem dat DevOps oplost
Traditioneel staan de ontwikkelorganisatie en de beheerorganisatie qua belangen tegenover elkaar. De ontwikkelorganisatie wil graag snel nieuwe features, security updates, etc. De beheerorganisatie wil juist graag een systeem dat goed functioneert, snel is en stabiel blijft. Nieuwe software is dan een risico en wordt daarom liever gedoseerd toegelaten. Het gevolg is dat updates en releases lang op zich laten wachten. Hierdoor wordt de time to market lang, worden bugs laat bekend, stapelen fouten zich juist op, etc. Dit alles gaat ten koste van de klantwaarde. Klanten willen een stabiele snelle applicatie, waar ook de nieuwe functionaliteiten in zitten die ze nodig hebben. Samenwerking tussen development en operations is dus belangrijk.
Agile, DevOps en Scrum
DevOps is in 2009 ontstaan en daarmee wat jonger dan Agile. In DevOps zijn de woorden ‘development’ (ontwikkeling) en ‘operations’ (beheer en onderhoud) samengevoegd. Agile richt zich veelal op het ontwikkelen en testen van kleine waardevolle deelproducten. Op het beheer en onderhoud van software en hardware wordt minder ingegaan. Hoewel: binnen het Scrum framework wordt het beheer en de ontwikkeling van een product eenvoudigweg op de Product Backlog geplaatst. Toch biedt dit niet altijd uitkomst. Vanwege de schaalgrote en complexiteit is dit in de praktijk vaak geen oplossing. Hierdoor dreigt het gevaar dat de kloof tussen de silo’s ‘development’ en ‘operations’ blijft bestaan. DevOps biedt een aantal inzichten en gebruiken om deze kloof te overbruggen. Daarom is DevOps in de praktijk soms een vervolgstap op Scrum.
Wat is DevOps?
DevOps is erop gericht om snel kleine hoeveelheden functionaliteit voor het bedrijf of de klant te ontwikkelen, te implementeren en vrij te geven. Automatisering en samenwerking zijn twee belangrijke pijlers. Het gaat hierbij niet alleen om development en operations. Iedereen die betrokken is bij het proces van vrijgeven van software, zoals security en compliance, werkt samen om het proces te optimaliseren en te zorgen voor een goede procesflow.
De beschrijvingen van wat DevOps inhoudt verschillen. Daarom houden we de heldere beschrijving aan die binnen SAFe gegeven wordt. DevOps valt daar uiteen in 5 pijlers: cultuur, automatisering, Lean flow, metingen en recovery. We lopen ze alle 5 langs.
Een cultuur van gedeelde verantwoordelijkheid
De cultuur van samenwerking is van groot belang en sluit nauw aan bij de Lean-Agile principes van SAFe. Cultuurelementen zijn bijv.: durven leren van fouten, informatie delen, continu verbeteren en vooral het samenwerken aan het snel leveren van klantwaarde. Bij DevOps werken alle disciplines nog nauwer samen en ze denken met elkaar mee. Men zit met elkaar in Agile teams, of woont belangrijke events bij (denk aan de PI Planning, System Demo’s, Program Backlog Refinement). Ook is er overleg tussen bijvoorbeeld operations en Product Owners of Product Managers zodat klantwensen, technische vereisten of defecten goed begrepen worden. Het gevolg? Ontwikkelaars denken meer na over de wensen van de operatie, bijvoorbeeld over uptime en betrouwbaarheid. Zij kunnen switches inbouwen waarmee beheerteams functies kunnen aan- of uitzetten bij piekverkeer. De afdeling operations staat de ontwikkelaars weer bij door snellere testen mogelijk te maken, te monitoren, enz.
Automatiseer alles
In DevOps wordt het onderstaande figuur veel sneller doorlopen dan in traditionele organisaties door tijdens iedere fase waar mogelijk gebruik te maken van tools om allerlei werk te automatiseren. Denk aan: testen, documentatie, versiebeheer, etc. Veel tools die gebruikt worden zijn overigens als freeware beschikbaar.
Het actuele proces in kaart brengen kan bijvoorbeeld door Process Mining. Dit actuele proces is het startpunt van incrementele verbeteringen. Wanneer het gehele release proces efficiënt en effectief georganiseerd en geautomatiseerd is spreekt men van een Continuous Delivery Pipeline.
Snel opleveren is alleen mogelijk met automatisering. Automatisering zorgt voor hoge productiviteit, maar automatisering zorgt niet alleen voor tijdwinst. Door automatisering van testen en meetresultaten krijgt men snel feedback en wordt de veiligheid vergroot. Doordat zwaktes eerder bekend zijn, wordt voorkomen dat men voortbouwt op een fout. Bovendien krijgen de professionals meteen feedback op hun werk, waardoor deze in staat worden gesteld om te leren. Ook wordt het werk interessanter, doordat routineklussen wegvallen. Dit alles is uitstekend voor de motivatie.
Lean flow
Teams streven naar een continue flow, waardoor nieuwe functies snel van concept naar business waarde worden omgezet. Op programma niveau wordt een Kanban bijgehouden waarin dit proces gevisualiseerd is. Om een goede flow te creëren wordt: de WIP gevisualiseerd en beperkt, worden batch-groottes verkleind en wordt het werk dat in de wacht staat gemanaged.
Meet de waarde
De kwaliteit van een product wordt binnen DevOps niet alleen bepaald door feedback van de klant. Er worden ook verschillende metrics gemeten. Hierdoor wordt de kwaliteit van het product voor de eindgebruiker sneller en divers in beeld gebracht: ook technische eisen worden gemonitord en men meet wat klanten echt doen (in plaats van zeggen te doen). De technische waarde en business waarde wordt door geautomatiseerde systemen continu gemeten. Door deze meetsystemen heeft een Product Owner en het team snelle en betrouwbare feedback over de meerwaarde van de kleine verbeteringen die kort cyclisch geïmplementeerd worden.
Recovery
Het is belangrijk om een nieuwe feature of bugfix snel in productie te brengen, maar ook om zo nodig deze wijziging snel terug te kunnen draaien of problemen snel op te lossen. Omdat het niet de vraag is of er fouten gemaakt worden, maar eerder wanneer er fouten gemaakt worden, is het belangrijk voorbereid te zijn. De organisatie moet hierop zijn ingericht. Technisch moet het mogelijk zijn om terug te gaan naar eerdere versies en het is belangrijk dat hier procedures voor zijn. Ook kan het helpen wanneer mensen geoefend hebben in het oplossen van problemen.
Dit waren de vijf pijlers van DevOps die in SAFe gedefinieerd worden. Meer weten over SAFe? Lees een van onze vele meer blogs over SAFe.
Wil je meer weten over het implementeren van SAFe? Lees mijn blog over de implementatie roadmap of volg onze Leading SAFe training.
Op zoek naar verdiepende trainingen?
- Volg onze gedegen Agile Transformatie training
- Volg onze brede Agile Coach opleiding
Meer lezen over transformaties? Lees onze blogs:
Vind je dit artikel interessant?
Volg ons op LinkedIn (we delen onze blogs met je)