Continuous delivery

Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time.
- Martin Fowler

In dit artikel geven we een antwoord op de vraag, wat is Continuous Delivery? We zullen zien hoe Continuous Delivery - afgekort als CD - je organisatie in staat stelt om op een betere manier Agile te werken.  

Continuous Delivery past perfect in een Agile manier van werken. Bij een Agile Methodiek wordt de ontwikkeling van software opgedeelt in sprints. Hierbij levert iedere sprint een werkbaar product af met bepaalde functionaliteiten. Continuous Delivery is de volgende logische fase hierin. Na de development komt het beschikbaar maken van de software: CD is een werkwijze en proces waarbij het resultaat van een Agile sprint meteen beschikbaar wordt gemaakt voor de gebruikers. 

De manier waarop een organisatie CD implementeert en beoefent verschilt naargelang de noden, eisen en technologie van de organisatie. Maar alle implementaties van CD hebben als basisvereiste dat ze geautomatiseerd zijn. De essentie van Continuous delivery is immers dat er veelvuldig, op dezelfde manier een product wordt afgeleverd. Dit impliceert dat er weinig tot geen menselijke tussenkomst is. 

Een praktisch voorbeeld

Laten we een concreet voorbeeld geven hoe een organisatie voordeel kan halen een uit Continuous Delivery aanpak. 

Ons fictief bedrijf ontwikkelt een webapplicatie voor hun klant op een Agile manier. Hierbij heeft het team in samenspraak met de klant een aantal sprints ingepland waarbij telkens bepaalde functionaliteiten van de software worden ontwikkelt. De klant wordt zoals het hoort sterk betrokken in het traject en heeft toegang tot de staging omgeving van het project. Dit is een test omgeving waar de toepassing kan gebruikt worden zonder dat impact heeft op echte gegevens of processen. 

Het team van ontwikkelaars heeft een Continuous Delivery Pipeline opgezet die automatisch een aantal taken uitvoert. Bij iedere toevoeging van nieuwe code aan het project worden automatische testen uitgevoerd die de kwaliteit van het werk controleren. Vervolgens wordt de versie van de software in de staging omgeving automatisch ge-update met de nieuwe aanpassingen. De testers van het team en de klant hebben in de staging omgeving dus meteen toegang tot de nieuwste versie van de software zonder menselijke tussenkomst.

Nadat het QA Team en de klant de aanpassingen hebben goedgekeurd zijn de functionaliteiten die zijn gewijzigd in de sprint klaar voor gebruik. Vanuit het version control system wordt de staging versie van de software gemerkt als afgewerkt. De CD Pipeline start automatisch een nieuwe fase die de nieuwste versie van de software in de productie omgeving van de klant plaatst. Alle gebruikers van de klant hebben meteen toegang tot de nieuwe functionaliteiten en aanpassingen.

Continuous Delivery Pipeline

Continuous Delivery is zowel een proces, manier van werken (methodiek) als een verzameling van tools. Vaak spreekt men over een CD Pipeline, een reeks van stappen dat een product doorloopt. 

De stappen in een CD Pipeline kunnen verschillend zijn van project tot project. Ook heeft de technology stack van het project een invloed op de noodzakelijke stappen. Zo is er voor een geïnterpreteerde programmeertaal geen nood aan een compilatie fase. 

Een belangrijk kenmerk van Continuous Delivery is de automatisatie. Zowel de opstart van de CD Pipeline als de verschillende fases worden allemaal automatisch afgehandeld. De enige interactie tussen programmeur en het CD proces is de notificatie van succes of falen.

continuous delivery pipeline

Bij complexere projecten zijn er vaak meerdere pipelines noodzakelijk. In een staging omgeving zijn de stappen in de pipeline vaak eenvoudiger dan voor de productie omgeving. Ook kunnen er meerdere pipelines worden opgezet als er verschillende sub-componenten worden gebruikt. 

Voordelen van Continuous Delivery

Deze aanpak heeft een aantal  voordelen. Het werk van de software ontwikkelaars zorgt immers meteen voor feedback van zowel interne testers als de klant zelf. Deze aanpak bouwt dus rechtstreeks verder op de Agile Methodiek waarbij ontwikkeling meteen zorgt voor feedback die terug ontwikkeling aanspoort. Deze korte cyclus zorgt voor zeer nauwe samenwerking tussen ontwikkelaars en klant, met uitstekende resultaten tot gevolg.

Uit bovenstaande blijkt ook meteen het belang van een nauwe samenwerking tussen ontwikkelaars en de eindgebruikers. Het volle potentieel van Agile en Continuous Delivery kan pas worden gehaald als zowel het software team als de klant hierin de volle 100% meegaan. 

Continuous delivery in een agile omgeving

Sinax Agile Academy

ALLES WAT JE OOIT WILDE WETEN OVER AGILE

Geef een reactie

Je e-mailadres zal niet getoond worden. Verplichte velden zijn gemarkeerd met *