LaunchDarkly: ‘Zorg voor honderd procent functionele software’
Software is cruciaal voor de meeste bedrijven. Tegelijkertijd gaat het tempo van veranderingen aan die software omhoog. Om het risico van bugs in die releases tegen te gaan is het zaak het productieproces van die software anders in te richten, gericht op snel ontwikkelen en veilig testen. Dat kan door Code Deployment en Feature Releases gescheiden te houden.
“Software wordt steeds belangrijker voor veel bedrijven”, zegt Daan Stuifbergen, Country Manager Benelux bij LaunchDarkly, “Dat geldt eigenlijk voor alle sectoren. Wij hebben regelmatig te maken met organisaties waarvan je op het eerste gezicht niet zou verwachten dat software zo belangrijk voor hen is. Maar dat is het dus wel.”
De vragen waar klanten mee bij hem komen hebben volgens Stuifbergen over het algemeen te maken met de wens om steeds sneller die cruciale software te ontwikkelen. “Die softwareontwikkeling laat echt een versnelling zien. We hebben veel klanten die eerst bijvoorbeeld één keer per kwartaal een software release deden. Die willen nu dagelijks software releasen.”
Concurrentiepositie
“Ze voelen die noodzaak omdat ze anders hun concurrentiepositie dreigen te verliezen. Voor hen is het zaak om continu nieuwe features te implementeren. Maar als je besluit om dat te gaan doen brengt dat natuurlijk risico's met zich mee. Want de reden dat zij eerst één keer per kwartaal een release deden is dat er eerst allerlei testen werden gedaan voordat die release uiteindelijk veilig kan plaatsvinden.”
Dat heeft alles te maken met de werkwijze bij het ontwikkelen van software. “Wanneer je als developer werkt aan een nieuwe feature, dan pas je natuurlijk de code aan. Bij heel veel bedrijven is het nog zo dat je, op het moment dat je die feature implementeert in productie, die dan ook gelijk gereleased wordt.”
Feature Flags
“Dit betekent weer dat de software direct blootgesteld is aan je klant, wat een interne of een externe klant kan zijn. Dus op het moment van implementatie, wanneer de software zichtbaar en bruikbaar is voor je klant, dan moet het honderd procent goed zijn. " Als er bugs in zitten, heb je een probleem.”
De oplossing die LaunchDarkly daarvoor heeft ontwikkeld is een zogenoemd feature management-platform. “In feite zorgen wij ervoor dat je de deployment kunt scheiden van releases door het gebruik van Feature Flags. Een softwareontwikkelaar die aan zijn code werkt, wil het liefst zo snel mogelijk die code in productie brengen. Dat kan met LaunchDarkly, omdat je die features achter Feature Flags kunt hangen, waardoor ze nog niet zichtbaar zijn voor de eindgebruiker.”
Testen
Dit geeft organisaties in de aanpassing van hun software veel voordelen. “Het betekent dat de ontwikkelaar die code in productie kan brengen zonder te releasen, waardoor je de mogelijkheid hebt om in productie te testen." En dat is ideaal, want dat is de werkelijke situatie. Dus eigenlijk kun je een aantal stappen overslaan doordat je je code beter beschermt. Dat is heel belangrijk omdat veel klanten de technische en commerciële releases gescheiden houden. "Wij noemen dat het scheiden van Code Deployment van Feature Releases.”
“En als je in staat bent om dat te realiseren verlaagt dat je risico, terwijl het tegelijkertijd je snelheid van softwareontwikkeling verhoogt door het overslaan van diverse stappen. "Daarmee pakken we een belangrijke uitdaging van onze klanten aan."
Goede basis
Feature Flags, of Feature Toggles, zijn niet nieuw. “De meeste bedrijven waar wij mee praten hebben al wel een vorm van Feature Flags of Feature Toggles." Maar in veel gevallen hebben ze die zelf gebouwd, en werken ze heel basaal. Meestal gaat het dan niet verder dan alleen een feature aan- en uitzetten, en dan vaak ook nog voor één specifieke applicatie, niet schaalbaar naar de rest van je organisatie. "Het is dan lastig om het als standaard in je software development practices neer te zetten.”
“De meeste klanten die naar ons toekomen met de uitdaging van sneller releasen met minder risico hebben behoefte aan een goede basis voor hun release proces. Het gaat eigenlijk om een bredere release strategie, waar LaunchDarkly een zeer geavanceerde 'rules engine' voor heeft ingebouwd.”
Releasen
Hiermee kun je features releasen op de manier die je zelf kiest. Bijvoorbeeld als je een bepaalde feature eerst wilt releasen naar vijf procent van je klanten. Dat kan eenvoudig met wat we een percentage roll-out noemen. "Met onze oplossing kun je, zonder dat je de code hoeft te veranderen, met twee muisklikken die feature zichtbaar maken voor die vijf procent van je klanten, om dan vanuit daar geleidelijk verder uit te rollen naar de rest van je klanten.”
Andere bedrijven willen bijvoorbeeld nieuwe features eerst alleen in een bepaald land uitrollen, daarna pas in een ander land. "Dan willen ze niet voortdurend dat soort regels in de code van hun software plaatsen." Met Feature Flags hoeft dat ook niet. Je houdt één codebase aan, het concept is hetzelfde. "Als je alleen in Duitsland wilt uitrollen dan zorg je gewoon dat je alleen Duitsland aanzet, de rest nog niet.”
Auteur: Marco van der Hoeven