Beheer

Software-ontwikkeling
Zorg

Zorg veel baat bij continuous delivery

Vooral de cultuur van een organisatie staat vaak haaks op de werkwijze van continuous delivery

© CC BY 2.0 - Flickr.com zorgenwelzijnplein.nl
27 februari 2017

Vooral de cultuur van een organisatie staat vaak haaks op de werkwijze van continuous delivery

IT-systemen in de zorg zijn steeds meer een onderdeel van het primaire zorgproces. De eis van continue beschikbaarheid verhoogt de druk op IT-afdelingen. Veel tijd gaat echter op aan onderhoudswerkzaamheden. Er blijft weinig tijd over voor het implementeren van nieuwe modules of applicaties. Continuous delivery kan daar verandering in brengen.

De groei van softwaresystemen in de zorg vraagt meer en meer expertise van IT-afdelingen. Steeds meer specifieke kennis zit bij individuen, wat de afhankelijkheid vergroot.

De behoefte aan standaardisatie en automatisering van softwarebeheer neemt toe bij de IT-afdeling, terwijl de zorginstellingen automatisering nog niet direct als noodzaak zien. Hierin valt veel winst te behalen.

Tegelijkertijd staan zorgorganisaties financieel onder druk, zijn bezuinigingen noodzakelijk, en nemen kwaliteitseisen toe; bijvoorbeeld doordat patiënten steeds betere zorg eisen. Deze zaken staan haaks op elkaar en vragen veel van zorginstellingen en daarmee ook van de IT-afdelingen. Efficiëntie en slimme procesoptimalisatie zijn noodzakelijk om sneller aan zowel de behoefte van de patiënt als de organisatie te kunnen voldoen.

Continuous delivery is het geautomatiseerd installeren van nieuwe softwareversies en speelt in op dergelijke uitdagingen. Nog meer efficiëntie is te bereiken met een cloudstrategie en het uitbesteden van het softwarebeheer.

De kans op fouten is klein, maar monitoring blijft essentieel.

Met continuous delivery kunnen organisaties een kwaliteitsverbetering doorvoeren met een minimale time to market. Met één druk op de knop wordt software in een productieomgeving bijgewerkt door de IT-afdeling, waarbij er een minimale productieverstoring is. Continuous delivery gaat niet zozeer om techniek, maar om het streven van het dagelijks doorvoeren van verbeteringen en het nastreven van hogere prestaties.

Risico’s

Wanneer continuous delivery wordt ingevoerd, moet wel gelet worden op de risico’s die het met zich meebrengt. Zeker wanneer het een geheel geautomatiseerd proces is, is bijvoorbeeld diepgaande monitoring essentieel om te controleren of alle systemen operationeel zijn. Wanneer in de keten een fout optreedt, zal de applicatiebeheerder gewaarschuwd moeten worden en zijn veelal handmatige herstelacties nodig. Het gevaar is dat wanneer monitoring onvoldoende is ingericht, te laat wordt geacteerd op fouten, dit in tegenstelling tot handmatige installaties, waarbij een beheerder zelf fouten signaleert.

Voordelen

Als zorginstellingen continuous delivery doorvoeren, zijn dit de voordelen:

• Snellere reactietijd

Het snel kunnen aanpassen door frequente softwarereleases

• Verminderd risico

Door frequent software-updates uit te voeren is het risico op fouten kleiner

• Lagere kosten

Door het releaseproces te automatiseren blijven de kosten onafhankelijk van het aantal

releases gelijk

• Flexibiliteit

Het biedt vrijheid in de manier waarop en wanneer, bijvoorbeeld ’s nachts, releases worden vrijgegeven

Ook in complexe infrastructuren is continuous delivery een risico, zeker op het gebied van databases. Indien er meerdere webservers actief zijn op dezelfde database, zal in het continuous-deliveryproces zowel het oude als het nieuwe databaseschema ondersteund moeten worden.

Dit maakt het proces complex. Continuous delivery zal dan ook niet voor elke infrastructuur toepasbaar zijn. Ten slotte is het lastig of vaak onmogelijk om een update terug te draaien. Eenmaal een versie in productie, kunnen fouten vaak alleen worden opgelost door middel van nieuwe updates.

Voor organisaties die softwarereleases volgens het ‘watervalmodel’ installeren, is het overgaan naar continuous delivery een grote uitdaging. Het zijn vooral culturele aspecten van een organisatie die haaks staan op de werkwijze van continuous delivery. En veranderingen kosten tijd. Daarbij hebben applicatiebeheerders vooral baat bij een stabiele productieomgeving. Voor organisaties die gewend zijn aan een handmatige manier van werken, zal het doorvoeren van automatisering alleen maar wantrouwen wekken. De sleutel is het realiseren van kleine successen. Door het boeken van succes op succes zal het vertrouwen in het geautomatiseerde proces groeien en de scepsis bij critici verminderen.

Continuous delivery gaat niet om techniek, maar om het dagelijks doorvoeren van verbeteringen.

Wanneer organisaties continuous delivery willen doorvoeren is het belangrijk een goede visie op dit onderwerp uit te werken. Wanneer aan dit voortraject te weinig tijd wordt besteed, bestaat het risico dat er onvoldoende fundament is gecreëerd voor de oplossing. Dit zal de stabiliteit niet ten goede komen en daarbij zal er veel tijd opgaan aan het repareren van verkeerde keuzes uit het verleden.

Vijf fases

Tegenwoordig werken software-ontwikkelteams agile (flexibel) en volgens het Scrum-principe. Met Scrum leveren multidisciplinaire teams in twee tot vier weken productiewaardige software op. Continuous delivery biedt vervolgens een antwoord op het snel in productie nemen van deze nieuwe software. Het is het antwoord om op elk gewenst moment te kunnen beschikken over de nieuwste softwareversies. Door het volgen van vijf fases (zie kader) is een organisatie meer toekomstbestendig.

Met continuous delivery is de kans op fouten klein, maar monitoring blijft essentieel. De productieverstoring is minimaal bij het uitvoeren van updates. Softwarewijzigingen zijn snel, veiliger en laagdrempelig te realiseren. Nieuwe functionaliteiten, bugfixes en configuraties zijn snel geïnstalleerd.

Omdat veranderingen in de software kleiner zijn door regelmatige updates, is de druk op de organisatie minder groot. Ten slotte is de feedback richting softwareleveranciers sneller zodat eventuele verbeteringen sneller opgepakt kunnen worden. Voor zorgorganisaties die het geautomatiseerde proces kunnen omarmen, is continuous delivery een grote stap vooruit, zij kunnen sneller inspelen op veranderingen.

Stappenplan

Continuous delivery biedt een antwoord op het snel in productie nemen van nieuwe software. Door het volgen van de volgende vijf fases is een organisatie sneller toekomstbestendig.

1. Zorg voor een goed versiebeheersysteem

Zorg als ontwikkelteam voor software om de versies te beheren. Versiebeheersoftware ondersteunt ontwikkelteams tijdens de samenwerking. Versiebeheer is een systeem waarin alle codeaanpassingen van een softwareproduct worden bijgehouden. Een goed versiebeheersysteem is essentieel voor een software-ontwikkelteam. Het wordt gebruikt om broncode te delen tussen ontwikkelaars en deze te kunnen bundelen tot softwarereleases. Testomgevingen dienen echter handmatig te worden bijgewerkt met de laatste versie.

2. Continuous integration

Zonder continuous delivery wordt een groot aantal stappen handmatig doorlopen. Continuous integration richt zich op het automatiseren van deze stappen: de meest recente versie uit het versiebeheersysteem wordt automatisch gecompileerd en vervolgens geïnstalleerd op een testomgeving. Dit proces vindt meestal ’s nachts plaats, zodat niemand er hinder van ondervindt. Het grote voordeel: ontwikkelteams beschikken binnen één dag over de meest recente versie binnen de testomgeving. Daardoor vindt er snellere feedback plaats naar het ontwikkelteam en hoeven er geen handmatige stappen ondernomen te worden die capaciteit vragen.

3. Regressietesten

Regressietesten controleren of de software na aanpassingen nog steeds werkt zoals bedoeld. Hiervoor wordt gebruik gemaakt van vooraf opgestelde testscenario’s. Testers doorlopen deze scenario’s handmatig en raken hiermee de meest kritieke paden. Eventuele bevindingen worden voor een release opgelost. Een regressietest is belangrijk om de kwaliteit van de software te waarborgen.

4. Geautomatiseerde regressietesten

Als het handmatige regressieproces volwassen genoeg is en het regelmatig wordt doorlopen, is de volgende fase het automatiseren van de testen. Met behulp van een specifiek tool worden handmatige testen geautomatiseerd. Dit levert een aanzienlijke tijdsbesparing op en daarnaast is het mogelijk ze op elk moment uit te voeren (bijvoorbeeld elke nacht) zonder dat dit menselijke capaciteit kost. Door in een vroeg stadium in het ontwikkelproces de belangrijkste fouten te vinden, worden de herstelkosten beperkt (curve van Boehm) en de kwaliteit gewaarborgd.

5. Optimaliseer het uitleverproces

Om in de productieomgeving snel een nieuwe versie te kunnen installeren, moeten de stappen van het uitleverproces geautomatiseerd worden. Waar handmatige stappen foutgevoelig zijn en een hoge productieverstoringstijd hebben, biedt het automatiseren hiervan een oplossing.

Zie ook Beheer op AG Connect Intelligence
1
Reacties
Anoniem 28 februari 2017 07:49

Interessant!

Reactie toevoegen