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.