Verhoog de business value met Continuous Delivery

Feedback loop27 januari 2017 - Als Product Owner wil je zoveel mogelijk waarde creëren voor de gebruikers van je software product, of dat nou interne of externe klanten zijn. Om dat te realiseren wordt een agile werkwijze gehanteerd. Er is echter vaak nog flinke winst te behalen door werkende functionaliteit sneller in productie te zetten. Hierdoor krijg je namelijk sneller feedback van klanten waardoor je sneller kunt inspelen op de wensen van de markt. En dus precies maken waar jouw klanten het meest op zitten te wachten.

Maximale waarde creatie

Als Product Owner of productmanager wil je graag, dat je development team zo veel mogelijk waarde creëert.
Er wordt agile gewerkt, maar vaak gebeurt dit in de context van hoe het bedrijf al werkte voordat de ontwikkelafdeling de transitie maakte naar een agile organisatie. Denk in dit geval aan de lange testtrajecten die er zijn nadat het development team klaar is met ontwikkelen. Maar ook de tijd die andere afdelingen nodig hebben voordat jouw nieuwe functionaliteit op een volgende omgeving of op productie staat. Het development team is meerdere sprints bezig om software te maken, voordat de nieuwe functionaliteit naar productie gaat.

Dit lijkt op het moment dan goed te gaan: jouw team bouwt functionaliteit en na een tijdje staat de nieuwe versie op productie. In de praktijk kan dit tijdje wel eens maanden duren. Toch is dit nog steeds sneller dan de waterval methode die je eerst gebruikte; de releases zijn kleiner geworden en ze gaan sneller naar productie toe. Een winstpunt dus.

Maar is het winst of ben je hier agile bezig om agile bezig te zijn?
Continuous DeliveryGoed, waarschijnlijk wordt Scrum gebruikt en worden alle Scrum events bezocht, het team is continue aan het verbeteren en het is zelf organiserend. De Scrum master neemt de impediments zo snel mogelijk weg en jouw product backlog is op orde.
Maar hoe lang duurt het gemiddeld vanaf het moment, dat een ontwikkelaar zijn code incheckt tot je feedback kunt krijgen van de klant of een gebruiker op productie? Hoeveel nieuwe functionaliteit is er in die tussentijd gebouwd? Hoeveel weet die ontwikkelaar nog van de ontwikkeling van die functionaliteit? En nog belangrijker: hoeveel extra code is er ingecheckt op basis van deze functionaliteit en wat was daar nu echt van nodig?

Feedback

De beste feedback over je product krijg je van klanten als ze er gebruik van maken. En hoe sneller de aanpassing is op basis van deze feedback, hoe hoger deze klanten het product zullen waarderen.
Met andere woorden: Als er twee maanden zit tussen het ontwikkelen van een functionaliteit en het gebruik ervan, is er ook mogelijk twee maanden gebouwd aan iets wat niet nodig was.
Als je aan het einde van een sprint de nieuwe functionaliteit op productie kunt zetten, heb je nog 4 weken nodig om de eerste aanpassing te kunnen verwerken, namelijk de sprint waarin het in productie gezet is en de volgende sprint, waarin de aanpassingen verwerkt kunnen worden.
Als je de nieuwe functionaliteit binnen de sprint waarin je werkt al naar productie kunt zetten, is het mogelijk, dat je direct feedback krijgt en voor de volgende sprint de opmerkingen van je klanten al weer geprioriteerd hebt voor de eerstvolgende sprintplanning.

In mijn ervaring hebben de meeste product owners een planning in de vorm van bijvoorbeeld een roadmap. Dit betekent, dat zij een belofte hebben gedaan om iets te leveren, dus er moet wel geleverd worden. Dit is met de aanname dat zij zelf controle hebben over de roadmap, want in de praktijk gebeurt het nog vaak dat een product owner een opdracht meekrijgt die verdacht veel op een project lijkt. Er is dus geen tijd om te beginnen met continuous delivery. Developers moeten namelijk zorgen voor nieuwe functionaliteit en het inrichten van een omgeving en het automatiseren van processen kost in het begin veel tijd.
Er is in het begin meestal nog niets, dus de initiële kosten van het inrichten van de nieuwe build straat is hoog. Daarnaast hebben de ontwikkelaars tijd nodig om te leren hoe ze met de nieuwe tools om moeten gaan en hoe ze bijvoorbeeld goede automatische testen kunnen schrijven. Buiten de veranderingen voor het development team zit er ook een uitdaging in voor jou, Product owner: jij zult de user stories zo moeten schrijven, dat ze direct op productie gebruikt kunnen worden. Dus ze moeten klein genoeg zijn om in een sprint opgepakt te kunnen worden én ze moeten nog steeds waarde voor je klant opleveren.
Een goede consultant zal een aantal van deze kosten in tijd weg kunnen nemen, maar het team zal er nog steeds tijd en energie in moeten steken, om een goede continuous delivery straat te kunnen opzetten en daarna gebruiken.

Wat levert Continuous Delivery op?

De kwaliteit van het product gaat omhoog, niet alleen omdat je voor de nieuwe functionaliteit sneller feedback krijgt, maar ook omdat veel testen op de verschillende omgevingen automatisch (en dus iedere keer als de testen gerund worden) uitgevoerd worden.
Doordat feedback op de kwaliteit veel sneller gegenereerd wordt, kan men sneller de defects uit het systeem halen. Hierdoor wordt de volgende functionaliteit gebouwd op nette software, waar minder of geen fouten inzitten. Die nieuwe functionaliteit wordt dus op een goede basis gebouwd. Dit voorkomt ook dat het team work-arounds moet verzinnen, en dus kan het zich veel beter focussen op de gevraagde functionaliteit.
Op de langere termijn zal het team sneller functionaliteit opleveren, dan dat ze nu doen.
De klant krijgt de functionaliteit snel na het opleveren van de ontwikkelaar en kan snel feedback geven. Dit betekent, dat jij veel sneller kunt inspelen op de wensen van je klanten door de korte feedback loops die je gecreëerd hebt.
Tijdens de sprint review met jouw stakeholders kun je bespreken wat er echt met de functionaliteit gebeurt, in plaats van hypothetisch discussiëren wat de klant graag wil.
Je besteedt geen (oké, minder) tijd aan functionaliteit, die inmiddels overbodig is in de vorm van 'gold plating' of aan functionaliteit, waar niet eens om gevraagd wordt.

Waarom wil je als product owner naar continuous delivery?

Door sneller goed werkende functionaliteit in productie te zetten krijg je sneller feedback van je klanten, waardoor je sneller kunt inspelen op de wensen van de markt op basis van echte feiten in plaats van aannames. Op deze manier kun je veel beter precies dat maken, wat ook gewenst is door jouw klanten.

Wilt u meer weten over Continuous Delivery of hebt u ondersteuning nodig bij de invoering van DevOps? Neem dan vrijblijvend contact op met Roy Driessen via 085 - 487 52 11.