DevOps, een samentrekking van Development en Operations, is een manier van (samen) werken waarbij ontwikkel- en beheerteams worden samengevoegd in één team. You build it, you run it. Met andere woorden: wat je samen maakt, beheer je ook samen. Het doel is minder overdracht van werk, maar ook om kleinere releases te maken en die sneller op te leveren. “Dit leidt tot minder fouten en minder risico’s. Met DevOps krijg je in kortere tijd resultaat van je werk.”

Waar in de klassieke projectaanpak een compleet eindproduct wordt opgeleverd, getest en geïmplementeerd, wordt bij DevOps iteratief ontwikkeld. Kleine stapjes en kleinere releases verkleinen het risico en vergemakkelijken de beheersbaarheid. Agile Coach Hans Heising: “Als een ontwikkelaar wat gemaakt heeft, wordt het automatisch getest, geïntegreerd en klaargezet om in productie genomen te worden.” Continuous integration/ Continuous deployment noemt Hans dat. “Hierdoor krijg je hele korte releases, soms zelfs van minder dan een dag. Door iteratief te werken, heb je veel sneller het effect van het werk beschikbaar voor de gebruiker. Vervolgens bouw je door op wat er dan staat. En de feedback kun je gelijk in een volgende release verwerken.”. De kracht van DevOps is dat één team verantwoordelijk is voor het hele traject. Van de vraag tot en met de beschikbaarheid voor de eindgebruiker.

Snel, sneller, snelst

Voor de opdrachtgever levert dit een groot voordeel op. “Hij heeft vaker een goedwerkend product”, aldus business consultant Rody Okhuijzen. “Fouten zijn sneller zichtbaar en worden eerder opgelost. Aanpassingen en verbeteringen zijn sneller in productie en de opdrachtgever hoeft niet lang te wachten op nieuwe functionaliteiten. Een wens van zijn kant kan volgende week al beschikbaar zijn. Zo kan hij beter inspelen op ontwikkelingen die in zijn omgeving plaatsvinden.”

Veranderende rol testen

Het automatisch testen verandert de rol van de testmanager. Deze moet niet achteraf maar vooraf goed nadenken over wat hij wil testen, waarom hij het wil testen en hoe het getest moet worden.  “De testmanager is in het DevOps-team niet meer degene die testprotocollen doorloopt, maar de persoon die nadenkt over wat er getest moet worden, om de tests vervolgens te ontwikkelen. “De tester en de ontwikkelaar werken samen op, zodat de software die ontwikkeld wordt direct automatisch getest kan worden”. Rody vult Hans aan: “Zijn bevindingen vormen op hun beurt weer nuttige input voor de ontwikkelaars. In een DevOps team wordt iedereen vanaf het begin gedwongen om – samen – kritischer na te denken.”

“De tester en de ontwikkelaar werken samen op, zodat de software die ontwikkeld wordt direct automatisch getest kan worden”.

- Hans Heising, Agile Coach InTraffic

Anders samenwerken

Waar het beheerteam belang hecht aan weinig verstoringen in de productieomgeving en liefst zo min mogelijk nieuwe versies oplevert, maakt het ontwikkelteam bij voorkeur juist veel versies en nieuwe functionaliteiten. “Dat is wennen voor de teams. Het vergt een nauwe manier van samenwerken en goede communicatie. In de praktijk werkt dit echter heel plezierig. Je hebt snel feedback en bouwt verder op wat er al staat.” Hans geeft aan dat je, door zo nauw met elkaar samen te werken, meer waardering voor elkaar krijgt. “Als jij als ontwikkelaar ziet dat wat jij hebt gemaakt op een goede manier in de praktijk wordt gebruikt en beheerd, dan kan je daar heel blij van worden.” Ook de opdrachtgever weet wat hij kan verwachten. “Hij kan ook sneller inspelen op ontwikkelingen die in zijn omgeving plaatsvinden in plaats van dat hij maanden onderweg is met een nieuwe release. Met DevOps is de doorlooptijd korter!

Brede toepasbaarheid

Vrijwel elk project is geschikt voor DevOps, maar het vereist een aanpassing in de organisatie. De verantwoordelijkheden verschuiven en er moet een grote basis van vertrouwen zijn. “Je kunt het niet opleggen, je moet het echt samen doen. Zowel Hans als Rody zijn grote voorstanders van het gebruik van DevOps. “Het is meer en breder in te zetten, ook in al bestaande projecten. De Ops-kant heeft contact met de eindgebruiker, de Dev-kant kan de feedback gelijk doorvoeren. Met DevOps blijft het einddoel gelijk maar bereik je dit doel sneller en met minder fouten.”