Wat is Continuous Delivery?
Continuous Delivery (CD) wordt steeds belangrijker in de ontwikkeling van software. CD helpt niet alleen bij het voorspelbaarder en betrouwbaarder maken van “deployments”, het vermindert ook de time-to-market. Maar wat is Continuous Delivery precies?
Wat is Continuous Delivery?
Continuous Delivery is een benadering in softwareontwikkeling waarbij teams in korte cycli software produceren en die ervoor zorgt dat je software op elk moment betrouwbaar kan releasen. Het richt zich op het snel en frequent bouwen, testen en releasen van software. Het belangrijkste doel van Continuous Delivery is om deployments (ongeacht of deze op grote of kleine schaal zijn) zo saai en voorspelbaar mogelijk te maken. Op deze manier worden deployments een onderdeel van jouw routine en kunnen ze op ieder moment worden uitgevoerd.
Om dit te bereiken, moeten we ervoor zorgen dat onze code altijd in een inzetbare staat is, ongeacht hoeveel developers dagelijks wijzigingen aanbrengen. Daarom elimineren we de integratie-, test- en “hardening-” fases die normaal na “development complete” komen.
De voordelen van Continuous Delivery
#1 Frequente low-risk releases
Het belangrijkste doel van Continuous Delivery is om software releases “low-risk” en pijnloze gebeurtenissen te maken die op ieder moment uitgevoerd kunnen worden. Met technieken zoals blue-green deployments is het mogelijk om zero-downtime-deployments te realiseren die niet opgemerkt worden door gebruikers.
#2 Kortere time to market
Wanneer teams samenwerken om de testprocessen, build- en deployment omgeving te automatiseren, kunnen developers integratie- en regressietesten in hun dagelijkse werk opnemen. Er zijn dus geen aparte fasen meer nodig voor test en integratie. Hierdoor bespaar je veel tijd en wordt de time-to-market verkort.
#3 Hogere kwaliteit software
Als developers geautomatiseerde tools hebben die binnen enkele minuten de regressie testen (testautomatisering), kunnen teams zich meer focussen op testen op een hoger niveau, zoals exploratory-, usability-, performance- en security testing. Met een deployment pipeline kunnen deze activiteiten continu, gedurende het gehele delivery proces worden uitgevoerd. Dit zorgt ervoor dat de kwaliteit vanaf het begin in de software is ingebouwd.
#4 Continu experimenteren
Continuous Delivery stelt teams in staat om in kleine batches te werken. Dit betekent dat je, gedurende het gehele development proces, feedback van de gebruikers kunt krijgen. Met technieken als A/B testen kun je ideeën al vroeg toetsen bij de gebruikers. Dit stelt jou dus in staat om softwareontwikkeling met een hypothesegedreven aanpak te benaderen. Vanwege deze data-gedreven beslissingen kun je de features die geen “business value” opleveren, vermijden.
#5 Enabling Business Agility
Continuous Delivery verhoogt de Agility omdat je op ieder moment, op basis van business vereisten, kunt deployen. Bovendien kunnen bugs en andere problemen gemakkelijk gevonden en opgelost worden omdat feedback direct na de release ontvangen kan worden.
#6 Blijere teams
Onderzoek heeft aangetoond dat Continuous Delivery nieuwe releases minder stressvol maakt. Ook kunnen softwareteams meer communiceren met de gebruikers als ze vaker releasen waardoor ze leren welke ideeën wel en niet werken. Door de pijnlijke, risicovolle activiteiten (zoals releases) van softwareontwikkeling te elimineren kunnen teams zich richten op hetgeen wat echt belangrijk is: klanten continu tevredenstellen.
Hoe start je met Continuous Delivery?
Nu we het antwoord hebben op “Wat is Continuous Delivery?” en “Wat zijn de voordelen?” kunnen we door met de volgende stap: Hoe begin je?
1. Waar sta je nu?
De eerste stap naar verbetering is weten waar je staat. Begin met het beoordelen van je huidige teams, het ontwikkelproces en het releaseproces. Een goed hulpmiddel om te gebruiken is Value Stream Mapping of je zou dit kunnen doen door het huidige releaseproces te visualiseren.
Hierin moet je ook je organisatiestructuur beoordelen (heb je silo’s?), applicatiearchitectuur, test practices en technologie landschap.
2. Wat wil je bereiken?
Met de inzichten van de assessment, samen met de doelstellingen van jouw organisatie, definieer je de doelen die je wilt bereiken met Continuous Delivery. Normaliter bestaat dit uit:
- KPI’s
- Volwassenheidsmodellen
- Het gewenste landschap (hoe ziet jouw ideale technologie landschap eruit?)
- Gewenste persoonlijke- en team skills (bijvoorbeeld kennis over testautomatisering of op zaken als TDD, IaC, de Agile manier van werken)
3. Pave the way before you can walk
Maak het zo laagdrempelig mogelijk voor de development teams om aan de slag te gaan met de nieuwe tool stack. Toegang krijgen tot de tools mag geen bottleneck worden voor de developers om verder te gaan met de implementatie van Continuous Delivery.
4. Implementeer
Begin klein (bijvoorbeeld met één team) en begin pas met opschalen als je echt vooruitgang hebt geboekt. De eerste stap bij het implementeren van Continuous Delivery is Continuous Integration. Hierin staat automatisering centraal (testautomatisering).
Onze Continuous Delivery diensten
DevOn helpt organisaties om hun softwareontwikkeling radicaal te verbeteren. We helpen hen de voordelen van Continuous Delivery te plukken door middel van consultancy (Continuous Delivery in 90 Days) en training zodat zij de competitie een stap voor blijven.
Heb je problemen bij het vinden van genoeg ervaren developers die jou kunnen helpen met jou softwareontwikkeling? DevOn kan jouw organisatie hier ook bij helpen door AI Powered High-Performance Teams te bieden. Neem gerust contact op voor meer informatie!