Beren op de weg naar daily deployments

Door Jeroen Bezemer
Chief Technology Officer, Principal consultant

7 Redenen waarom je bang bent voor daily deployment (maar je het toch zou moeten doen)

We komen het regelmatig tegen. Een bedrijf stapt over op OutSystems, want met low-code kun je sneller, beter en flexibeler software ontwikkelen. Waterval wordt Agile en the sky is the limit. Tot op een gegeven moment toch een grens wordt bereikt.

Wat eerst heel snel en wendbaar leek – iteraties van twee à drie weken – blijkt toch niet snel genoeg. Bug fixing neemt veel tijd in beslag en verzoeken uit de business stapelen zich op. Ogenschijnlijk kleine aanpassingen duren lang, omdat grote features hun livegang tegenhouden. Urgente zaken worden aangepakt met hot fixes, maar dit is geen structurele oplossing. Het IT team loopt opnieuw vast en je realiseert je dat je terug bent gevallen in je oude werkwijze. Agile is in de praktijk een reeks kleine watervallen geworden.

Voor echte flexibiliteit is het tijd voor de volgende stap: daily deployment. Hierbij heb je je software pipeline volledig geoptimaliseerd. Er zijn geen blokkades meer. Op ieder moment kun je iets door de straat naar productie brengen. Je bent een voorspelbare partner voor de business en de klant, je levert kwaliteit en houdt je zonder moeite aan gemaakte beloftes. Je Software Development Life Cycle (SDLC) loopt als een zonnetje.

Waarschijnlijk schieten er nu allemaal redenen te binnen waarom daily deployment niet werkt voor jouw organisatie. We lopen ze even langs.

1. Door daily deployment komen onze grote features in gevaar

Het eerste wat je moet doen als je voor daily deployment gaat, is afhankelijkheden wegnemen, zowel op het gebied van business acceptance als technische afhankelijkheden in de vorm van grote features. Op technisch vlak biedt feature toggling een uitkomst. Met feature toggling kan een stukje code ‘aan’ en ‘uit’ worden gezet waardoor verschillende functionaliteiten veilig naast elkaar kunnen bestaan, zonder dat ze elkaar blokkeren of ondermijnen.

2. We hebben nu al te weinig tijd

Testen, bugfixing, kwaliteitscontrole, compliance, release documenting. Het is vaak al moeilijk genoeg om in een iteratie van twee weken alles gedaan te krijgen, hoe ga je dit in een dagelijkse cyclus passen? Het antwoord is: maak je releases klein en ga zoveel mogelijk automatiseren. Daily deployment vereist dat je alle handmatige acties elimineert.

Door release klein te maken, is het veel makkelijker om te achterhalen – mocht er toch een bug op productie zijn – waar het euvel zit. Deze oplossing is niet perfect, maar je leadtime om een bug te achterhalen en te fixen is vele malen kleiner.

3. We hebben niet elke dag iets voor productie, waarom zouden we die moeite doen?

Omdat het kan! Flauw antwoord natuurlijk, maar zo is het wel. Tenzij je Google of Amazon bent, heb je waarschijnlijk niet iedere dag iets om naar productie te brengen. Maar als het eens nodig is om morgen iets te releasen, ben je blij dat het kan. En je zult zien dat als de mogelijkheid er is, er ook vaker gebruik van wordt gemaakt. Bovendien maakt het je leven makkelijker, omdat je nu nog maar één proces hebt, of je nu iets wilt releasen, kwaliteit wilt controleren, een hotfix moet doorvoeren of iets live wil zetten voor je klant.

4. Maar dan gaan we naar productie met code die niet af is!

Hier beschermt OutSystems ons, want code die niet af is, kun je niet publiceren. Als er geen scherm is die de code aanroept, kan hij niet gebruikt worden. En om te voorkomen dat bestaande functionaliteiten omvallen door iets waar je die dag mee bezig bent geweest, bouw je een aantal controles in. Feature toggles helpen ons om features af te schermen zolang deze nog niet door de business zijn geaccepteerd. Met dagelijks deployen zien we de volgende ochtend of er fouten zijn en die kunnen we dan direct herstellen.

Daily deployment elimineert de situatie dat je na twee weken bouwen erachter komt dat je in het proces technical debt hebt opgebouwd, maar waar? Je vergrendelt kwaliteitschecks in je dagelijkse processen en ‘shift left’ wordt eindelijk realiteit.

5. Ik wil niet opnieuw onze werkwijze omgooien

Een dagelijkse iteratie vergt inderdaad een andere werkwijze dan een tweewekelijkse iteratie. Als je de transitie van waterval naar scrum Agile nog vers in het geheugen hebt, zul je van dit bericht misschien buikpijn krijgen. Wees gerust, daily deployment is niet moeilijk, het vergt alleen discipline om iedere dag het actielijstje af te vinken. Je team moet nieuwe gewoontes aanleren. Wanneer dat is gelukt heb je meer ruimte voor de leuke dingen: bouwen.

Als je een developer vraagt hoeveel tijd hij of zij aan code besteedt, is het antwoord vaak 40 tot 50%. De rest gaat op aan bugs en issues oplossen en saai handwerk. Wanneer je overstapt op daily deployment en de randprocessen zoveel mogelijk automatiseert (het streven is 100%), werk je efficiënter, heb je geen routinewerk meer en besteed je al snel 60 tot 70% van de tijd aan coderen. De kwaliteit van het geleverde product gaat omhoog en je team heeft meer werkplezier.

6. Hoe houden we in de waan van de dag langetermijndoelen in de gaten?

Als je iedere dag naar productie gaat en de business iedere dag aanvragen kan indienen, wie houdt dan de stip aan de horizon in de gaten? Dat doe je gezamenlijk als team. Jullie moeten hierover in gesprek blijven met elkaar, met de product owner en het management. Samen bepalen jullie waar de prioriteiten liggen.

Het is ook belangrijk om te overleggen met stakeholders over de transitie naar daily deployment en de business hierin mee te nemen. Dit betekent afspraken maken en verwachtingen managen.

7. Ja maar compliance?!

Compliance speelt een rol in iedere organisatie, bij sommige meer dan andere. Enterprises hebben strikte compliance-regels waar iedere nieuwe release voor livegang op moet worden getoetst. Dit hoeft daily deployment niet in de weg te staan als er een duidelijke scheiding is tussen productie en livegang, bijvoorbeeld door feature toggles.

Overigens kan compliance ook geautomatiseerd worden. Je kunt bijvoorbeeld limiteren welke handelingen in welke omgevingen zijn toegestaan of welke data gebruikt mogen worden. Als een feature niet aan deze check voldoet, komt hij niet door de pijplijn.

Het kan en mag leuker. Vergeet die beren!

Ben je al overtuigd of klinkt het je nog te mooi om waar te zijn? Verschillende bedrijven zijn al succesvol overgestapt op daily deployment en wij begeleiden een aantal van onze klanten die onderweg zijn naar dit proces. Voor het verbeteren van je Software Development Life Cycle werkt daily deployment als een versneller en het maakt software development ook gewoon leuker.

Meer weten? Ik vertel je graag hoe CoolProfs kan helpen jouw SDLC te verbeteren.

Jeroen Bezemer, CTO CoolProfs

CoolUp '24

Lean leadership gecombineerd met het ESG framework

Madhu Iyer, consultant bij Lean Digitale Transformatie

Duurzame bedrijfsvoering is een breed begrip. Zorg voor je
medewerkers, aandeelhouders, klanten en het klimaat.

Lean thinking en ‘Servant Leadership’ past hierbij. Maar hier stopt het niet.

In de media leest je nu veel over ESG: Environmental, Social en Governance: Hoe kunnen organisaties risico’s en mogelijkheden managen die te maken hebben met het milieu, klimaatverandering, SROI en governance naast de focus op winstmaximalisatie en blije
aandeelhouders.

CoolUp '24

Shift Left, wat zijn de nadelen?

Ruud Rademaker, Software Architect bij PGGM
Huh, nadelen? Bedoel je niet voordelen? Nou ja, dit is het eerlijke verhaal. Ruud Rademaker vertelt over hun reis naar ‘een voorspelbaar softwareontwikkelingsproces’. Dagelijks deployen is bij het eerste team een feit en meer teams gaan volgen! Maar is alles nou beter, of zijn er ook nadelen?

CoolUp '24

Toekomstbestendige architectuur en het belang hiervan

CoolProfs
Hoe houd je grip op het applicatielandschap? Veelal worden architectuurplaten gemaakt om inzicht te krijgen. Door tijdsdruk worden deze platen vaak maar mondjesmaat bijgewerkt. Zijn er manieren om de architectuurplaten wel up-to-date te houden? Hoe belangrijk is een goede architectuur? Wat is een toekomstbestendige architectuur en hoe zorg je hiervoor?

CoolUp '24

Tekenen met AI

Jan Loos

Heb je zin om eens met jouw creatieve kant aan de slag te gaan? Grijp nu hier de kans om samen met Jan Loos tekeningen tot leven te laten komen door middel van AI.
Let op: voor deze workshop zijn beperkt plaatsen beschikbaar.

CoolUp '24

Op eigen benen staan

Sogyo

We horen het vaak: “Wij zijn erg blij met jullie als partner, maar we moeten toch op eigen benen verder kunnen.” Dat begrijpen we heel goed. Onze aanpak is hierop gericht: Voordoen; Meedoen en Zelf Doen. Samen met Sogyo hebben wij een kant en klaar opleidingsprogramma voor nieuw OutSystems talent. Via een detavaste constructie en met hulp van de Cool Academy heb je binnen de kortste keren ervaren OutSystems specialisten in dienst.

CoolUp '24

AI en UX voor OutSystems

Menno Cramer, Head of Solution Delivery & Experience bij OutSystems

UX/UI tovert apps om tot iets leuks en gebruiksvriendelijks, en met AI wordt het alleen maar beter – denk aan slimme personalisatie en bliksemsnel reageren. Met platforms zoals OutSystems kunnen we die dromen waarmaken en supercoole, slimme apps bouwen die precies doen wat gebruikers willen.

Dus, ontwerpers, omarm AI in jullie werk en wees niet bang – jullie creatieve magie en banen zijn veiliger dan ooit. En hey, vergeet niet: houd het simpel, test vaak, en luister altijd naar wat de gebruiker echt wil!

CoolUp '24

Road to ODC

Jeroen Bezemer, CTO bij CoolProfs

Als OutSystems enthousiast zit je met een berg vragen. Je wilt zo snel mogelijk starten met ODC maar waar begin je en hoe zorg je voor een zo frictieloos mogelijke transitie van je huidige applicaties. CoolProfs heeft een ijzersterk pad voor je uitgestippeld. Onze boodschap: Start er morgen mee!