Continuous delivery Vacatures

Banen van May 2020 voor Continuous delivery recent geupdate!

Continuous delivery
Naar navigatie springenNaar zoeken springen
Continuous delivery is een softwareontwikkelmethode die gericht is op ideeën zo snel en efficiënt mogelijk in productie te krijgen. Hierdoor kunnen businessaannames snel bij de klant worden gevalideerd om zo op een kortcyclische wijze een product vorm te geven. Functionaliteit en ideeën kunnen op deze manier de consument vele malen sneller bereiken dan gebruikelijk is bij de oude watervalmethode. Het continuousdeliveryproces richt zich op het sturen van een continue stroom van nieuwe features naar productie en stapt daarmee in feite af van de oude ‘releasegedachte’.

Principes
Om continuous delivery in te voeren dient er niet alleen op technisch vlak te worden geoptimaliseerd, maar ook op organisatorisch vlak. De organisatie moet de continue manier van werken namelijk wel kunnen bijhouden. Invoering van continuous delivery gaat dan vaak ook gepaard met invoering van agileteams en een DevOps-structuur die de kloof tussen ontwikkeling en uitwerking dient te dichten.

Om op een continue basis nieuwe software in productie te kunnen plaatsen dient het softwaredeliveryproces compleet herhaalbaar en betrouwbaar te zijn uitgevoerd. Alle betrokkenen bij het proces dienen namelijk het volledige vertrouwen te hebben dat de software, na toevoeging van een nieuwe feature, in productie foutloos zal blijven draaien.

Dit gebeurt onder ander door het hanteren van de volgende principes:

Automatiseer alles.
Om in een continue stroom features en/of veranderingen van hoge kwaliteit te kunnen leveren, dienen alle stappen in het opleverproces te worden geautomatiseerd. Er is geen tijd en ruimte voor handmatige stappen en fouten van handmatige aard mogen in het proces niet meer voorkomen. Handmatige aanpassingen zijn in een continuous delivery omgeving taboe.

Als het pijn doet, doe het vaker.
Lastige, tijdrovende of foutgevoelige taken in het deliveryproces dienen vaker te worden uitgevoerd. Door deze taken vaker uit te voeren krijgt men eerder feedback over de ware aard van het probleem en wordt het probleem ook daadwerkelijk aangepakt.

Done is live.
Een stukje code/feature op de machine van de ontwikkelaar, op de buildserver of in de testomgeving is totaal niet waardevol. De feature levert pas waarde op op het moment dat het daadwerkelijk in productie staat. Het team is dus pas klaar als alle code ook echt in productie staat. Tot die tijd wordt er geen nieuw werk opgepakt. Aanmaak van achterstallig onderhoud wordt hiermee vermeden.

Bouw kwaliteit in
Wanneer nieuwe features op een continue basis productie kunnen bereiken, dienen alle betrokkenen het vertrouwen te hebben dat deze verbeteringen ook echt zullen werken. Dit betekent dat in het deliveryproces voldoende effectieve kwaliteitscontroles dienen te worden ingebouwd. Zo dienen geautomatiseerde testen vanaf het begin af aan te worden toegepast.

Voer continu verbeteringen door
Een continue stroom van features en aanpassingen genereert een continue stroom van terugkoppeling. Deze terugkoppeling laat zien wat vaker moet gebeuren (omdat het het proces positief beïnvloedt) of wat vermeden zou moeten worden. Het team dient zich hiermee integraal te richten op verbetering van het geautomatiseerde proces en de software.

Het hele team draagt verantwoordelijkheid voor het product
Iedereen in het team is volledig verantwoordelijk voor het product in productie. Dat zijn dus ontwikkelaars, operators, testers, managers, etc. Iedereen, dus ook de ontwikkelaar, is pas klaar als het product in productie draait. Dit dwingt het team zich te richten op het verbeteren van het totale leveringsproces en daarmee het eindproduct.

Organisatie
Door op zoveel mogelijk niveaus op een behendige manier te werken kunnen teams zelf op een continue basis vernieuwing leveren. Dit geldt niet alleen voor het ontwikkelteam, ook de business en operations hebben baat bij een dergelijke organisatie van teams. Devops wordt verder vaak gebruikt om de ouderwetse ‘kloof’ tussen ontwikkeling en verrichtingen te overbruggen.