De implementatie van DevOps vraagt om de juiste focus

In relatief korte tijd zijn agile en DevOps de standaard geworden voor de ontwikkeling en levering van softwaresystemen. DevOps brengt ontwikkeling en beheer samen in multidisciplinaire teams met een gedeelde verantwoordelijkheid voor een applicatieketen. Daarmee overbrugt het het traditionele spanningsveld, waarin ontwikkeling verantwoordelijk was voor het snel opleveren van software, en beheer voor het implementeren in en stabiel houden van de productieomgeving. Onderzoek laat zien dat DevOps een organisatie veel toegevoegde waarde kan leveren, zoals minder verstoringen en sneller opleveren van nieuwe functionaliteit. Maar niet alle systemen en applicatieketens zijn even geschikt voor toepassing van DevOps. Bijvoorbeeld voor legacy ERP systemen met een grote diversiteit aan koppelingen is het niet eenvoudig om DevOps optimaal te implementeren. Organisaties doen er daarom goed aan om de transitie naar DevOps te faseren op basis van twee aspecten.

1 De veranderbehoefte in een applicatieketen

DevOps heeft zijn oorsprong en kracht in de ontwikkeling en het beheer van systemen met een grote veranderbehoefte en -snelheid gericht op innovatie en digitale transformatie. Gartner noemt dit de ‘systems of innovation’ van een organisatie. Door de grote veranderbehoefte van deze systemen is het goed mogelijk om een continue flow aan wijzigingen te realiseren door het opzetten van een kanban systeem met kleine batch-groottes en beperkte wachtrijen. Er ontstaat zo continuous delivery: een continue flow van kleinere wijzigingen door het ontwikkelproces waarmee de business waarde wordt vergroot.

Organisaties gebruiken echter ook generieke applicaties waarvan de veranderbehoefte en veranderfrequentie veel lager is, de ‘systems of record’. Dit kunnen legacy systemen zijn, maar bijvoorbeeld ook standaard applicaties zoals een HR- of ERP-systeem. Volledig toepassen van DevOps is in die gevallen veel lastiger. Dat komt enerzijds doordat deze systemen altijd gestuurd zijn geweest op stabiliteit en beschikbaarheid. En op basis van strikte wijzigingsprocedures en governance structuren. De stap naar DevOps is dan groot, zowel op gebied van processen en organisatie, maar ook in de mindset en cultuur van de medewerkers. Door de lagere veranderbehoefte van deze systemen is het daarnaast ook lastiger om een continue flow aan wijzigingen te creëren. Daardoor is de meerwaarde van DevOps voor deze systemen lager.

2 De complexiteit van de applicatieketen

Het tweede element van de implementatiestrategie van DevOps is de complexiteit van de applicatieketen. DevOps en daarmee continuous delivery is sterk afhankelijk van de integrale automatisering van de leveringsketen van de applicaties. Alle partijen in de keten moeten meedoen, automatisering maakt de gewenste snelheid en continuïteit van ontwikkeling en implementatie mogelijk. In kleinere, onafhankelijke systemen is het relatief eenvoudig om deze concepten toe te passen. Maar in complexe systemen met verschillende platformen, technologieën, leveranciers, industriële automatisering en/ of cyber fysieke systemen is dat veel lastiger. De complexiteit wordt daarbij vooral bepaald door drie aspecten:

  1. Het aantal verschillende platformen of technologieën dat in de leveringsketen wordt toegepast;
  2. Het aantal betrokken partijen of leveranciers;
  3. De flexibiliteit van de bestaande IT-infrastructuur en de mate waarin deze self service, snelle schaalbaarheid, pay per use en het delen van resources ondersteunt.

DevOps heeft de grootste economische waarde in applicatieketens met een beperkte complexiteit van continuous delivery.

Conclusie

Faseer de transitie naar DevOps op basis van de veranderbehoefte van een applicatieketen en de complexiteit van continuous delivery in die keten. Pas DevOps vooral toe op applicatieketens met een grote veranderbehoefte en beperkte complexiteit van continuous delivery. Traditioneel servicemanagement is beter geschikt in applicatieketens met een lage veranderbehoefte en grote delivery complexiteit.

Overigens kan ook voor die laatste applicatieketens de softwareontwikkeling nog steeds gebaseerd worden op agile scrum. Toepassing van kanban systemen, werken met multidisciplinaire teams en geautomatiseerd testen bieden ook in die gevallen veel voordelen. Bepaal dan echter per applicatie welke agile practices de meeste toegevoegde waarde hebben en borg de samenhang met het servicemanagement.