Agile, Trendsz

Devops is een reactie op het probleem dat de beheerorganisatie niet is aangesloten op de ontwikkelorganisatie. Dit uit zich vaak in conflicten en inefficiëntie over en weer, ook wel de ‘wall of confusion’ genoemd. Deze ontstaat door een combinatie van conflicterende motivaties, processen en tooling. Een development team is er op uit om een verandering tot stand te brengen terwijl een beheerorganisatie gebaat is bij (en vaak ook afgerekend wordt op) een stabiele productie-omgeving. De meeste agile implementaties hebben de muur tussen development en business al geslecht, het logische vervolg is om ook de kloof tussen development en beheer te dichten. Zodat op die manier een organisatie in staat is om software snel in productie te nemen en effectief te beheren.

Het nut

Organisaties zien dat er veel geld te besparen valt als de ontwikkel- en beheerorganisatie op elkaar zijn aangesloten. Met agile ontwikkelingsmethoden kunnen organisaties snel en wendbaar de wensen van de business vertalen naar een systeemoplossing. Maar vervolgens zijn ze veel tijd kwijt met het in productie nemen en beheren van de software. Hierdoor wordt het ‘paard achter de wagen gespannen’.

Als de beheerorganisatie niet in staat is iteratief software in productie te nemen, loopt men nog steeds vertraging op. DevOps is een manier om de beheerorganisatie bij het voortbrengingsproces te betrekken door ze een integraal onderdeel van het proces te laten zijn. Hierdoor kan de keten sneller software in productie nemen, worden kosten bespaard en dit kan een groot concurrentievoordeel zijn binnen een markt waar een korte time-to-market van belang is. Een andere reden voor bedrijven om over te stappen naar DevOps is dat de eerder aangehaalde ‘wall of confusion’ een hoop frustraties oplevert die ten koste gaan van productiviteit, samenwerking en werksfeer.

Het agile gedachtengoed moet volledig landen binnen de organisatie.

Adoptie

Er zijn een aantal grote bedrijven in Nederland die DevOps hebben aangenomen als voorkeursmethode voor softwareontwikkeling, het in productie nemen en beheren van software. Voordat je begint, moet eerst het agile transformatie- en scrum proces op orde zijn, omdat de complexiteit van de organisatieverandering anders teveel toeneemt. Naast IT en business (wat je in een ‘standaard’ agile-transitie doet) moet namelijk óók de beheerorganisatie transformeren. Daarnaast is het belangrijk dat het agile gedachtengoed volledig is geland binnen de organisatie. Het is beter klein te beginnen en langzaam uit te bouwen om de organisatie te laten wennen en leren.

Hierdoor kan je de feedback die je ontvangt gebruiken om het transitieproces te verbeteren waardoor een volgende transitie nog succesvoller kan zijn. Oefening baart kunst.

Vereiste veranderingen

Iedere organisatie zou in principe met DevOps kunnen werken, mits je bereid bent de organisatie (ingrijpend) te veranderen. Het doel moet niet zijn op korte termijn een time-to-market probleem op te lossen, maar wel om een IT-organisatie vorm te geven die voortdurend in staat is in samenspraak met de business systeemwijzigingen door te voeren en te beheren. Dit kan het verhelpen van incidenten zijn, of het toevoegen van (nieuwe) functionaliteit.

“Iedere organisatie zou in principe met DevOps kunnen werken, mits je bereid bent de organisatie (ingrijpend) te veranderen”

Om DevOps correct te implementeren zijn er op drie gebieden veranderingen nodig:

Meten van cultuurverandering

Als je een cultuur wilt veranderen moet je goed kijken hoe je het resultaat gaat meten en beoordelen. Wat gemeten wordt, beïnvloedt het gedrag en vice versa. Het succes van individuen en groepen dient te worden gemeten binnen de context van het succes van de gehele development- en beheercyclus. Voor veel organisaties betekent dit een verandering van kpi’s per silo en/of afdeling vaststellen, naar kpi’s per proces vaststellen. Het is belangrijk dat aan iedereen die deel uitmaakt van een proces duidelijk wordt gemaakt wat hun bijdrage aan het uiteindelijke doel is en hoe hun activiteiten zich verhouden tot andere activiteiten binnen het proces.

Geïntegreerde processen

Binnen DevOps dient de gehele development- en beheercyclus als één geïntegreerd proces te worden gezien en vormgegeven. Waarbij het ook als één geheel moet worden gemanaged. Hierbij kunnen verschillende segmenten of subprocessen hun eigen methodes hanteren zolang deze maar samen kunnen worden gevoegd tot één proces op hoofdniveau. In de praktijk betekent dit dat men het eigen ‘eilandje’ moet loslaten. Dit is niet gemakkelijk en zal met weerstand gepaard gaan omdat men bepaalde macht op zal moeten geven ten gunste van het grotere geheel.

Geïntegreerde tooling

Hier lijkt de DevOps-discussie zich het meest op te richten. Dit is niet verwonderlijk aangezien het een bijna natuurlijke reflex van techneuten is om meteen een discussie over tooling te starten als er een probleem moet worden opgelost. Want er moet toch een ‘tooltje’ zijn dat helpt dit proces vlot te laten verlopen? Het is belangrijk dat alle individuele tools samenwerken om als keten van tools de procesketen volledig te ondersteunen. Tools moeten voorzien in het automatiseren van handmatige taken (testen, deployment, monitoring, et cetera), beschikken over een software library die onder versiebeheer staat, zodat men in de hele keten met dezelfde gedeelde software configuratie werkt. Daarnaast moet het mogelijk zijn om softwaresystemen zo te modelleren (alle componenten, policies en dependencies zijn beschreven) zodat deze op ieder moment kunnen worden gereproduceerd zonder dat dit conflicten geeft met andere omgevingen. Vaak is het beheer binnen organisaties ook van elkaar gescheiden (functioneel applicatiebeheer, technisch beheer, infrastructuur en werkplekken), wat het extra lastig maakt om flexibel met omgevingen om te gaan of om tools uit verschillende domeinen aan elkaar te koppelen. Als organisatie moet je je ervan bewust zijn dat hier veel werk moet worden verricht om alle neuzen dezelfde kant op te krijgen.

Conclusie

Om DevOps succesvol te implementeren dien je bereid te zijn om je organisatie (ingrijpend) te veranderen. De cultuurverandering zal onherroepelijk weerstand oproepen, het overkomen van weerstanden heeft tijd en voldoende managementaandacht nodig. Ook het invoeren van DevOps moet als een iteratief proces gezien worden, waarin in verschillende fases gedeeltes van het eindbeeld worden gerealiseerd en geïntegreerd. Integratie van processen en tooling zijn belangrijke randvoorwaarden voor de inrichting van DevOps, maar de cultuurverandering en daarmee samenhangende aanpassingen in attitudes van mensen is de kern van het succes of falen.

Maak de noodzakelijke cultuurverandering meetbaar, integreer je processen en tooling en kom zo van A naar Beter!

140714 – DevOps van A naar Beter – Sander de Jonge

Wil je ons nieuwste Paarsz magazine per post ontvangen? Laat dan je gegevens achter.

Ontwerp zonder titel (19)

Werken bij Bartosz?

Vincent Verhelst

Geïnteresseerd in Bartosz? Dan ga ik graag met jou in gesprek. We kunnen elkaar ontmoeten met een kop koffie bij ons op kantoor. Of tijdens ontbijt, lunch, borrel of diner op een plek die jou het beste uitkomt. Jij mag het zeggen.

Mijn Paarsz