Laat het los!
27/02/17 00:42
Allemaal anders!
In een proof of concept zijn we op zoek naar tools die ons kunnen helpen bij release management. Door al het agile en CI/CD geweld creëren we namelijk heel veel teams die nieuwe programmatuur gaan ontwikkelen. Ik zie dit als heel veel lopende banden waar continu nieuwe stukjes software afvallen… klaar om vrij gelaten te worden in productie. Dat moét je eigenlijk automatiseren.
Maar wat wordt er dan anders?
Nu is release management dus een heel complex proces. Het bestaat onder andere uit het najagen van ontwikkelaars, het plannen van resources, het beheersen van afhankelijkheden, herplannen als er iets te laat komt, goed testen, en nog es testen; het is het continu checken of een release nog wel consistent is. Vandaar de slimme mannen en vrouwen. Ik doe ze vast te kort.
Ik denk dat de verandering zal zitten in de overgang van handmatig, proces-matig naar continu, automatisch, getriggerd door pre-condities. P’don!? Ik zal mijn hersenkronkels proberen uit te leggen.
De focus in release management ligt nu vooral op het definiëren van een proces in termen van stappen die moeten worden uitgevoerd en hun onderlinge volgorde. In elke proces-stap wordt er dan ook vanuit gegaan dat de benodigde voorgaande stappen zijn uitgevoerd, met de bijbehorende aanname dat daarmee aan de pre-condities is voldaan voor deze specifieke stap. Indien de stap faalt, dan moet veelal het hele proces dus opnieuw.
Releasemanagement is geen proces
Je zou releasemanagement kunnen zien als het managen van afhankelijkheden, ofwel: als dit-en-dit-en-dat waar is, dan mag een bepaald stukje software naar productie. Je zou dit kunnen zien als een regel die –voor dit stukje software- áltijd geldt. Hoewel voor vele stukjes software vele verschillende regels gelden, al deze regels zouden zo gedefinieerd kunnen worden dat ze altijd waar zijn. Die regels zijn de zogenoemde pre-condities.
Een simpel voorbeeld zou kunnen zijn: een stukje software waarin gebruik wordt gemaakt van versie ‘x’ van een SOA service, mag alleen naar productie wanneer die versie ‘x’ van de SOA service al in productie staat. Of: software mag alleen naar productie wanneer de testfasen succesvol zijn doorlopen. Tja, het zijn maar een simpel voorbeelden.
Pre-condities, de regels die altijd gelden, kun je automatiseren.
Ja, en nu?
Release management zou dus geautomatiseerd kunnen worden. Ik zie een aantal automatische releasemanagement tools draaien die continu checken of de pre-condities gelden. Elke instantie van deze tool kan ‘zijn’ bewuste stukje software automatisch naar productie zetten zodra aan de pre-condities is voldaan.
Het in productie zetten is daarmee niet meer een proces-stap die aangeschopt wordt door andere stappen in het gehele proces, maar een automatische stap die zal worden uitgevoerd zodra aan de pre-condities is voldaan.
Da’s natuurlijk maar theorie
Yep, het is maar een idee. Maar dit idee heeft in mijn beleving een aantal voordelen. Ten eerste leidt het fout lopen van een stap niet meer tot het afbreken van een geheel proces. Elke losse stap blijft netjes wachten totdat aan de pre-condities is voldaan. Zodra dat het geval is, dan: “hoppa”. Ten tweede, en dat is eigenlijk een vervolg op het eerste, we kunnen daarmee een mate van ontkoppeling creëren. Elke instantie van een release tool is een zelfstandig draaiend geheel… een soort microservice dus (bingo!). Zodra een stap faalt, om welke reden dan ook, dan hoeven we niet helemaal opnieuw te beginnen. De volgende stap wacht namelijk niet op het voltooien van de voorgaande stap, maar op de status van de pre-condities.
Zo, dus geen release managers meer nodig!
Echt wél! Releasemanagement blijft nodig. Sterker nog, door agile, CI/CD en al dat andere moois zou release management nog wel es veel belangrijker kunnen worden! Stukjes nieuwe software komen namelijk van veel meer kanten, en continu komen er nieuwe stukjes. We hebben straks geen verschillende releases… we hebben er straks eentje: de gehele productie-omgeving. Afhankelijkheden, en daar gaat het om in release management, worden namelijk veel meer domein-overstijgend (GRID-overstijgend) en het worden er veel méér. Dit vergt zeer zorgvuldig en nauwkeurig definiëren van alle regels ofwel pre-condities. En om dát in goede banen te leiden zijn er zeer slimme mannen en vrouwen nodig!
Richard Bliek
In een proof of concept zijn we op zoek naar tools die ons kunnen helpen bij release management. Door al het agile en CI/CD geweld creëren we namelijk heel veel teams die nieuwe programmatuur gaan ontwikkelen. Ik zie dit als heel veel lopende banden waar continu nieuwe stukjes software afvallen… klaar om vrij gelaten te worden in productie. Dat moét je eigenlijk automatiseren.
Maar wat wordt er dan anders?
Nu is release management dus een heel complex proces. Het bestaat onder andere uit het najagen van ontwikkelaars, het plannen van resources, het beheersen van afhankelijkheden, herplannen als er iets te laat komt, goed testen, en nog es testen; het is het continu checken of een release nog wel consistent is. Vandaar de slimme mannen en vrouwen. Ik doe ze vast te kort.
Ik denk dat de verandering zal zitten in de overgang van handmatig, proces-matig naar continu, automatisch, getriggerd door pre-condities. P’don!? Ik zal mijn hersenkronkels proberen uit te leggen.
De focus in release management ligt nu vooral op het definiëren van een proces in termen van stappen die moeten worden uitgevoerd en hun onderlinge volgorde. In elke proces-stap wordt er dan ook vanuit gegaan dat de benodigde voorgaande stappen zijn uitgevoerd, met de bijbehorende aanname dat daarmee aan de pre-condities is voldaan voor deze specifieke stap. Indien de stap faalt, dan moet veelal het hele proces dus opnieuw.
Releasemanagement is geen proces
Je zou releasemanagement kunnen zien als het managen van afhankelijkheden, ofwel: als dit-en-dit-en-dat waar is, dan mag een bepaald stukje software naar productie. Je zou dit kunnen zien als een regel die –voor dit stukje software- áltijd geldt. Hoewel voor vele stukjes software vele verschillende regels gelden, al deze regels zouden zo gedefinieerd kunnen worden dat ze altijd waar zijn. Die regels zijn de zogenoemde pre-condities.
Een simpel voorbeeld zou kunnen zijn: een stukje software waarin gebruik wordt gemaakt van versie ‘x’ van een SOA service, mag alleen naar productie wanneer die versie ‘x’ van de SOA service al in productie staat. Of: software mag alleen naar productie wanneer de testfasen succesvol zijn doorlopen. Tja, het zijn maar een simpel voorbeelden.
Pre-condities, de regels die altijd gelden, kun je automatiseren.
Ja, en nu?
Release management zou dus geautomatiseerd kunnen worden. Ik zie een aantal automatische releasemanagement tools draaien die continu checken of de pre-condities gelden. Elke instantie van deze tool kan ‘zijn’ bewuste stukje software automatisch naar productie zetten zodra aan de pre-condities is voldaan.
Het in productie zetten is daarmee niet meer een proces-stap die aangeschopt wordt door andere stappen in het gehele proces, maar een automatische stap die zal worden uitgevoerd zodra aan de pre-condities is voldaan.
Da’s natuurlijk maar theorie
Yep, het is maar een idee. Maar dit idee heeft in mijn beleving een aantal voordelen. Ten eerste leidt het fout lopen van een stap niet meer tot het afbreken van een geheel proces. Elke losse stap blijft netjes wachten totdat aan de pre-condities is voldaan. Zodra dat het geval is, dan: “hoppa”. Ten tweede, en dat is eigenlijk een vervolg op het eerste, we kunnen daarmee een mate van ontkoppeling creëren. Elke instantie van een release tool is een zelfstandig draaiend geheel… een soort microservice dus (bingo!). Zodra een stap faalt, om welke reden dan ook, dan hoeven we niet helemaal opnieuw te beginnen. De volgende stap wacht namelijk niet op het voltooien van de voorgaande stap, maar op de status van de pre-condities.
Zo, dus geen release managers meer nodig!
Echt wél! Releasemanagement blijft nodig. Sterker nog, door agile, CI/CD en al dat andere moois zou release management nog wel es veel belangrijker kunnen worden! Stukjes nieuwe software komen namelijk van veel meer kanten, en continu komen er nieuwe stukjes. We hebben straks geen verschillende releases… we hebben er straks eentje: de gehele productie-omgeving. Afhankelijkheden, en daar gaat het om in release management, worden namelijk veel meer domein-overstijgend (GRID-overstijgend) en het worden er veel méér. Dit vergt zeer zorgvuldig en nauwkeurig definiëren van alle regels ofwel pre-condities. En om dát in goede banen te leiden zijn er zeer slimme mannen en vrouwen nodig!
Richard Bliek