De term devops doet al ruim tien jaar de ronde en beloofde de wereld aan bedrijven. Hoewel er aanzienlijke productiviteits- en snelheidswinst is geboekt door organisaties van elke omvang, zijn de voordelen ervan niet algemeen gerealiseerd wanneer ze op grote schaal worden geïmplementeerd in grote omgevingen. Waar gaat het mis en welke stappen zijn te nemen om devops wél te laten slagen?
Veel organisaties werkten aan lokale optimalisaties om individuen en teams hun code beter en sneller te laten ontwikkelen, testen en implementeren. Er werden bijvoorbeeld teams opgericht om de devops-tooling van de organisatie te beheren. Door deze organisatie-specifieke aanpak ontstonden er ook sneller en meer organisatie-specifieke obstakels.
Vaak werd de waarde van deze teams niet begrepen door het management, wat uiteindelijk leidde tot uitbesteding. Gevolg? De teams die de drijfveren van efficiëntie en snelheid hadden moeten zijn, werden gezien als de oorzaak van knelpunten en vertragingen.
Daarnaast bestond kostentransparantie nog niet. De meeste developers, architecten en it-managers hadden totaal geen weet van de infrastructuur kosten die geconsumeerd werden. De kosten waren niet inzichtelijk en er werd zelden goed naar gekeken. Zonder transparantie was er dus geen helder overzicht over hoeveel een team of project spendeerde aan infrastructuur en tools.
De weg naar succes
Waar bij devops gekeken moet worden naar ieder onderdeel binnen een onderneming, werd er binnen veel organisaties nog juist in silo’s gedacht. Maar wat er moet er dan wel gebeuren? Er valt zoveel te winnen. Devops staat dus voor het doorbreken van de dev- en ops-silo’s en het op een lijn brengen van de doelen van deze twee verschillende onderdelen van een organisatie: de klant tevreden stellen en hen op een snelle, veilige en kosteneffectieve manier producten en services leveren.
Ook heeft de cloud gezorgd voor een nieuwe manier van denken over devops waar cloudgebaseerde tools en pijplijnen worden gebruikt: devops-as-a-service. Door te focussen op devops-as-a-service worden veel uitdagingen die zich voordoen met het legacy-devops aangepakt en wordt een organisatie op weg geholpen om de ware potentie van devops te realiseren. De overstap naar de cloud en infrastructuur-as-code zijn belangrijke veranderingen. De meeste grote organisaties beginnen deze ontwikkelingen pas net te begrijpen.
Tijd om opnieuw naar de tekentafel te gaan en de keuzes te herzien.
Hoe nu verder?
Over het algemeen zijn er zeven stappen te maken bij het implementeren van devops, gebaseerd op de principes van Mary en Tom Poppendieck (2003):
- Afval elimineren
Het elimineren van alles wat geen waarde toevoegt voor de klant. Denk aan overproductie zoals een aantal dingen alvast in je project-scope opnemen zonder dat je weet of het wel echt nodig is, onnodig transport en te lange backlogs.
- Bouw kwaliteit in
In plaats van met een software te werken en problemen stap voor stap te elimineren, zorg ervoor dat er geen problemen in de software kunnen komen. Vermijd kwaliteitsproblemen door de vaardigheden en ervaring van twee ontwikkelaars te combineren en het aanhouden van stapsgewijze ontwikkeling en door bijvoorbeeld gebruik te maken van een test driven development-aanpak.
- Creëer kennis
Documentatie verouderd heel snel, waardoor het lastig te vinden is. Het is dus belangrijk om na te gaan hoe je dit beter vast kunt leggen zodat iedereen ervan kan profiteren en kennis vergaren. Daarnaast is het aan te raden om planning sessies te houden en na te gaan hoe je alle kennis boven tafel krijgt en dit vast kan leggen.
- Stel verplichting uit
Dit principe moedigt teams aan om verantwoordelijkheid te tonen door hun opties open te houden en voortdurend informatie te verzamelen, in plaats van beslissingen te nemen zonder de nodige gegevens. Stap voor stap werken naar een eindresultaat en commitment pas op een later stadium te geven.Probeer in dit stadium niet alles al van te voren uit te denken. Houd de mogelijkheden open om gedurende het project in te spelen op veranderingen.
- Lever snel
Vroeger werd gedacht dat software naar productie brengen eng is, omdat het een stabiele factor moet zijn. De truc is: hoe vaker je naar productie gaat, hoe beter en stabieler het wordt en hoe minder fouten er worden gemaakt.
- Respecteer de mensen
Dit principe wordt misschien wel het meest verwaarloosd, vooral in de snelle wereld van softwareontwikkeling. Je kan elkaar in staat stellen het beste werk te leveren door goede communicatie en werkgerelateerde problemen aanpakken in teamverband. Respecteer daarnaast iemands kennis en skills. Je hebt je personeel aangenomen omdat ze iets beter weten of beter kunnen dan jezelf.
- Optimaliseer het geheel
Het is belangrijk om in deze stap naar het gehele proces te kijken. Kijk dus niet naar een klein deel ervan, maar naar het effect van dat onderdeel op het hele proces. Is het beter of slechter geworden door de aanpassingen in dit onderdeel? Devops is niet een eenmalig proces, maar iets wat continu aangepast moet worden.
Auteur: Gert Jan van Halem, cto en director development & operations Devoteam NL