Document toolboxDocument toolbox

Change- en releasebeleid

Implementatie releases

Zodra het besluit over een release van het afsprakenstelsel is genomen, bepaalt Stichting MedMij in overleg met de deelnemers en eigenaren welke aanpak de minste impact en verstoringen veroorzaakt. Ook maakt de stichting de afweging of releases in productie naast elkaar kunnen bestaan en of deelnemers op enig moment meerdere releases moeten ondersteunen. Voor de implementatie van de release zijn de data in de implementatieplanning bij de release leidend. Afhankelijk van het soort release kan een implementatietermijn van toepassing zijn.

Zodra het besluit over de definitieve inhoud van een major release is genomen (welke RFC's worden toegepast in de release), wordt in overleg met de deelnemers het precieze publicatiemoment van de release vastgesteld. Daarbij wordt een  vast ritme van twee major releases per jaar gehanteerd. Minor releases worden alleen gepubliceerd en uitgerold wanneer hier een dringende noodzaak of wens voor is en zijn backwards compatible met de voorafgaande release.

Uitrol

Uitgangspunt is een 'dakpansgewijze' uitrol, waarbij koppelvlakken van deelnemers altijd minimaal één versie ondersteunen:

  • de geldende versie, die op dat moment door alle deelnemers moet worden ondersteund en geïmplementeerd. 
  • optioneel: de meest recent gepubliceerde versie, die toegepast MAG worden 

Dit garandeert dat op enig moment alle deelnemers op een versie van het stelsel en de koppelvlakken kunnen uitwisselen, namelijk de verplichte versie.

Dit geeft deelnemers de ruimte en verantwoordelijkheid om zelf de ontwikkelkalender dusdanig in te richten dat de deelnemer tijdig de verplichte versie uitrolt;

Dit geeft de mogelijkheid voor koplopers om nieuwe functionaliteiten en andere zaken uit de laatst gepubliceerde versie direct na publicatie uit te rollen om (bijvoorbeeld in een gecontroleerde livegang) met andere voorop lopende deelnemers deze te beproeven en/of toe te passen.



In de figuur wordt duidelijk gemaakt hoe deze dakpansgewijze uitrol werkt.Vanaf het publiceren van een nieuwe major release (1.3.0 en 2.0.0 in de figuur) krijgen deelnemers een vaste periode de tijd (tot de publicatie van een volgende major release) om de nieuw gepubliceerde release te implementeren. Na deze periode wordt het verplicht om die versie van het afsprakenstelsel te ondersteunen en wordt daarnaast weer een nieuwe release gepubliceerd. De oude(re) release mag vanaf dat moment niet langer gebruikt worden om uit te wisselen. 

Op het moment dat versie 2.0.0 wordt gepubliceerd;

  • mag versie 1.2.1 niet langer gebruikt worden voor uitwisselingen,
  • moet versie 1.3.0 moet door alle deelnemers ondersteunt worden
  • mag versie 2.0.0 gebruikt worden door deelnemers die nieuwe features willen toepassen.


Toevoegen onder kop "Verschillende typen releases":

Releases voor het afsprakenstelsel worden als volgt aangeduid:

  1. Major releases: releases met grotere (functionele) wijzigingen. Deze releases worden opgenomen in de releaseplanning;
  2. Minor releases: releases met twee soorten correctief onderhoud:
    1. Wijzigingen die nodig zijn om een onmiddellijke dreiging voor de continuïteit van of het vertrouwen in het MedMij Afsprakenstelsel/-netwerk af te wenden;
    2. Verbeteringen waarvan de baten van spoedig doorvoeren significant groter zijn dan de implementatie-inspanningen, en die op breed draagvlak onder de deelnemers kunnen rekenen.

De aanduiding van releases is opgebouwd uit drie nummers, namelijk x.y.z (bijvoorbeeld 1.3.2). Bij een major release wordt de combinatie x.y opgehoogd. Daarbij zijn twee opties, ofwel y wordt met een verhoogd waarna z op 0 wordt gezet (bijvoorbeeld van 1.3.2 naar 1.4.0), ofwel x wordt met een verhoogd waarna y en z op 0 worden gezet (bijvoorbeeld van 1.3.2 naar 2.0.0). De keuze hiertussen is afhankelijk van aard en omvang van de release. Bij een minor release wordt z met een verhoogd (bijvoorbeeld van 1.3.2 naar 1.3.3).

Major release vinden twee maal per jaar plaats. De inhoud van een major release wordt  samengesteld op basis van uitgewerkte wijzigingsvoorstellen (RFC's). 

Minor releases vinden reactief plaats en worden alleen indien nodig tussentijds toegepast.  In overleg tussen beheerpartij en deelnemers wordt de precieze publicatiedatum van een minor release bepaald.

Daarnaast kunnen correcties op het stelsel worden aangebracht zonder dat deze leiden tot een nieuwe release. Deze correcties omvatten zaken als acute reparaties, verwijderen van inconsistenties, het aanpassen van voorbeeldberichten, etc. Een wijziging via een correctie tast de juridische en technische strekking van het Afsprakenstelsel niet aan; als dit wel het geval is zal de wijziging in een release worden opgenomen. Correcties worden transparant uitgevoerd en op een eigen pagina in het afsprakenstelsel aangegeven. 

Toevoegen onder de kop "Implementatie releases"

De implementatie van een major release verloopt in drie fasen:

  • Gepubliceerd. De release is officieel gepubliceerd en beschikbaar voor alle deelnemers. Deelnemers hebben de tijd om aanpassingen en uitbreidingen aan de functionaliteit en koppelvlakken in te bouwen en uit te rollen. Uitwisselingen volgens de specificaties van de gepubliceerde versie zijn in productie  toegestaan (bijvoorbeeld in een gecontroleerde livegang).
  • Verplicht. De voorafgaande release wordt bij de publicatie van de meeste recente versie van het afsprakenstelsel de verplichte versie voor alle deelnemers. Dit betekent dat vanaf dat moment alle deelnemers een koppelvlak volgens de specificaties en eisen van die versie van het Afsprakenstelsel beschikbaar moet zijn binnen het MedMij netwerk.
  • Vervangen. Oudere versies krijgen de status vervangen en mogen niet meer worden toegepast binnen het MedMij netwerk. De koppelvlakken van deze versies worden niet langer gepubliceerd in de lijsten.