top of page

Het gebruik van het Viable System Model (VSM) als patroon voor het ontwerpen van Software Systemen:

Het Viable System Model (VSM) is een model voor het organiseren van autonome systemen die in staat zijn zichzelf voort te brengen.

Een viable system is een systeem dat zo is georganiseerd dat het kan voldoen aan de eisen om te overleven in een veranderende omgeving. Een van de belangrijkste kenmerken van systemen die overleven, is dat ze aanpasbaar zijn - of levensvatbaar.

Het Viable System Model (VSM) is als een soort blauwdruk voor het maken van software. Het idee is om software te bouwen die kan 'overleven' en goed blijven werken, zelfs als de omstandigheden veranderen. Denk aan software die niet stuk gaat als er nieuwe dingen worden toegevoegd of als er dingen worden veranderd.

Dit model is bedacht door Stafford Beer. Hij heeft dit model beschreven in zijn boek "Brain of the Firm". Hiermee wilde hij laten zien hoe bedrijven en organisaties beter kunnen worden bestuurd. Het belangrijkste idee in dit model is dat 'levensvatbare' systemen eigenlijk systemen binnen systemen zijn. Dit betekent dat een groot systeem bestaat uit kleinere systemen die er net zo uitzien als het grote systeem. Dit wordt 'cybernetische isomorfie' genoemd.

Dit model kan ook worden toegepast op software. Software moet namelijk ook 'levensvatbaar' zijn. Het moet goed blijven werken, zelfs als er dingen veranderen. Als software niet levensvatbaar is, wordt het steeds ingewikkelder en slechter in staat om te functioneren als er veranderingen worden aangebracht. Veel bedrijven met een on-prem ERP systeem zullen dit fenomeen herkennen. De conventionele softwareprincipes voor het maken van software zijn niet voldoende om echt goede, levensvatbare software te maken. Je hebt een model zoals het VSM nodig om ervoor te zorgen dat je software kan 'overleven' in een steeds veranderende wereld. De conventionele softwareontwerpprincipes blijven echter van toepassing en zijn de moeite waard om te onthouden bij het ontwerpen van elk soort softwaresysteem, of het nu levensvatbaar moet zijn of niet. Deze zijn als volgt:

  • Ontkoppeling

  • “separation of concerns”

  • Implementeer “circuit breakers”

  • Denk aan services - Niet aan Code

  • Vereenvoudigen. Vereenvoudigen. Vereenvoudigen

  • Ontwerp voor Hergebruik

  • Implementeer beveiligingsprincipes in het Ontwerp

Hoewel de basisprincipes nog steeds waardevol zijn, bieden ze geen volledige handleiding voor het ontwerpen van softwaresystemen die echt goed kunnen functioneren als een geheel (in plaats van alleen de afzonderlijke onderdelen). Hier komt het Viable System Model (VSM) om de hoek kijken met het idee van 5+1 subsystemen die nodig zijn om een echt goed werkend systeem te creëren.

Laten we eens kijken naar de manier waarop VSM een systeem beschrijft. Je kunt het vergelijken met moderne ontwerpideeën voor software, zoals het gebruik van kleine, onafhankelijke onderdelen in software (zoals microservices architectuur) en het idee van dienstgerichte architectuur (SOA). Deze ideeën draaien om het scheiden van de verschillende aspecten van software om het beter te laten werken.

Het Viable System Model is eigenlijk geïnspireerd door de structuur van onze hersenen en zenuwstelsel. Het deelt systemen op in verschillende niveaus: systeem 3-2-1 is vergelijkbaar met ons automatische zenuwstelsel, systeem 4 heeft te maken met denken en communicatie, en systeem 5 heeft te maken met hogere hersenfuncties, zoals introspectie en besluitvorming. Het idee is dat deze niveaus samenwerken om een systeem goed te laten functioneren.

Een levensvatbaar systeem bestaat uit vijf elkaar beïnvloedende subsystemen die kunnen worden gemapt op aspecten van de architectuur. In brede zin houden Systemen 1-3 zich bezig met het "hier en nu" van de werking van het systeem, Systeem 4 houdt zich bezig met het "daar en toen" - strategische reacties op de effecten van externe, milieu- en toekomstige eisen aan de systemen. Systeem 5 houdt zich bezig met het in evenwicht brengen van het "hier en nu" en het "daar en toen" om beleidsrichtlijnen te geven die de systemen als een levensvatbare entiteit in stand houden.

Systeem 1 in een levensvatbaar systeem bevat verschillende primaire activiteiten. Elke primaire activiteit van Systeem 1 is zelf een levensvatbaar systeem vanwege de recursieve aard van systemen zoals eerder beschreven. Deze zijn gericht op het uitvoeren van een functie die ten minste een deel van de kernmogelijkheden van het systeem implementeert. Denk aan het beheren van productinventaris binnen een e commerce platform.

Systeem 2 vertegenwoordigt de informatiekanelen en organen die de primaire activiteiten in Systeem 1 in staat stellen om met elkaar te communiceren en die Systeem 3 in staat stellen om de activiteiten binnen Systeem 1 te monitoren en te coördineren. Systeem 2 vertegenwoordigt de planningsfunctie van gedeelde middelen die door Systeem 1 worden gebruikt.

Systeem 3 vertegenwoordigt de structuren en controles die worden ingevoerd om de regels, middelen, rechten en verantwoordelijkheden van Systeem 1 vast te stellen en om een interface te bieden met Systemen 4 en 5. Systeem 3 vertegenwoordigt het grotere plaatje van de processen binnen Systeem 1.

Systeem 4 bestaat uit organen die verantwoordelijk zijn voor het naar buiten kijken naar de omgeving om te monitoren hoe het systeem moet aanpassen om levensvatbaar te blijven.

Systeem 5 is verantwoordelijk voor beleidsbeslissingen binnen het systeem als geheel om de eisen van verschillende delen van het systeem in evenwicht te brengen en het systeem als geheel te sturen.

Naast de subsystemen die het "binnenste gedeelte" van de VSM vormen, is de omgeving ook een expliciet element van het model - de omgeving en context van een levensvatbaar systeem, die het systeem van buitenaf beïnvloeden. De aanwezigheid van het omgevingselement in het model is noodzakelijk, omdat dit de ruimte is waarin het systeem functioneert en waarin het systeem output levert. Zonder dit is er in het model geen manier om de interne interacties van de organisatie te contextualiseren of te gronden.

Algedonische waarschuwingen zijn alarmen en beloningen die door de niveaus van recursie escaleren, wanneer de daadwerkelijke prestaties de capaciteit overschrijden of overtreffen, meestal na een time-out.

Als visuele weergave zou het VSM er zo uit kunnen zien:

Zoals u kunt zien, is het VSM een complexe, cybernetische constructie en moet waarschijnlijk worden vereenvoudigd om nuttig te worden als een meta model voor software systeemontwerp, met als doel levensvatbare systemen te realiseren.

In het volgende deel van deze serie zullen we proberen het VSM te vereenvoudigen en het te gebruiken als een meta model voor het ontwerp van levensvatbare software.

bottom of page