Get in touchEvents |  Find usKieneticCareersImpressumPrivacy Policy

Belgium HQ Van Hemelrijcklei 119, 2930 Brasschaat (Antwerp), +32 (0) 3 292 59 44

Member of the Digital Innovation Group

© 2014-2019 KIEN BVBA

  • Instagram
  • LinkedIn
  • Facebook
DI_Logo_CMYK_m_SChriftzug.png

Het Viable Systems Model gebruiken als patroon voor het ontwerpen van Viable Software Systems deel I


Het Viable System Model (VSM) is een model van de organisatiestructuur van elk autonoom systeem dat zichzelf kan produceren.

Een Viable System is elk systeem dat zo is georganiseerd dat het kan overleven in een veranderende omgeving. Een van de belangrijkste kenmerken van overlevende systemen, is dat ze flexibel ofwel viable zijn. Het VSM drukt een model uit voor een viable systeem, dat een abstracte, cybernetische (regulatietheorie) beschrijving is dat van toepassing zou moeten zijn op elke organisatie of systeem dat een viable systeem is of zou moeten zijn en in staat is tot autonomie.


Het model is ontwikkeld door operations research theoreticus en cyberneticus Stafford Beer en beschreven in zijn boek Brain of the Firm. Samen met Beers eerdere werk in de cybernetica toegepast op management, heeft dit boek effectief management cybernetica in het leven geroepen.


Het eerste dat opvalt aan de cybernetische theorie van organisaties die zijn ingekapseld in het VSM, is dat viable systemen recursief zijn; viable systemen bevatten viable systemen die kunnen worden gemodelleerd met behulp van een identieke cybernetische beschrijving als de hogere (en lagere) niveausystemen in de insluitinghiërarchie (Beer noemt deze eigenschap van viable systemen cybernetisch isomorfisme). Een ontwikkeling van dit model heeft het theoretische voorstel naar voren gebracht dat de viable systemen aanpak wordt genoemd.


Softwaresystemen zijn systemen die uiteindelijk in staat zouden moeten zijn zichzelf te produceren. Daar moeten zij wel viable voor zijn kunnen overleven in veranderende omstandigheden (en zoals elke softwareprofessional zal toegeven, is softwarecorrosie als gevolg van 'veranderende omstandigheden' een veel voorkomend fenomeen).

Als softwaresystemen niet viable zijn, wordt hun levenscyclus beperkt door de toenemende complexiteit van het systeem, als gevolg van ongecoördineerde uitbreidingen en manipulaties van het systeem zelf.


Klassieke softwareontwerpprincipes zijn niet voldoende voor het ontwerpen van hoogwaardige, viable softwaresystemen.

De conventionele ontwerpprincipes voor software zijn echter nog steeds van toepassing en moeten in het achterhoofd gehouden worden bij het ontwerpen van elk soort softwaresysteem, of het nu viable moet zijn of niet:


  • Loosely-Coupled

  • Separate Concerns

  • Implementeer Circuit Breakers

  • Denk aan Service – Niet aan Code

  • Simpeler. Simpeler. Simpeler

  • Ontwerp voor hergebruik

  • Bouw beveiliging in het ontwerp


Hoewel deze principes nog steeds waardevol en van toepassing zijn, bieden ze geen echte holistische richtlijnen op systeemniveau om ervoor te zorgen dat softwaresystemen op een viable manier worden ontworpen op het niveau van het 'master systeem' (het systeem zelf in plaats van de structuur van zijn componenten) en zijn subsystemen. Hier biedt het VSM de constructie van 5+1 subsystemen die er moeten zijn om een echt levensvatbaar systeem te realiseren.


Laten we eens kijken naar de cybernetische beschrijving van een systeem ingekapseld als een VSM. Let op de bekende analogieën met hedendaagse modellen voor softwareontwerp, zoals microservices architectuur en Service Oriented Architecture (SOA), waarbij principes die betrekking hebben op het scheiden van implementatie van het model en andere principes die met scheiding van belangen te maken hebben, een substantieel deel vormen van de basis van dit soort architectuur.


Het model is afgeleid van de architectuur van de hersenen en het zenuwstelsel. Systemen 3-2-1 worden geïdentificeerd met de oude hersenen of het autonome zenuwstelsel. Systeem 4 belichaamt cognitie en conversatie. Systeem 5, de hogere hersenfuncties, omvatten introspectie en besluitvorming.

Een viable systeem bestaat uit vijf interactieve subsystemen die kunnen worden toegewezen aan aspecten van de structuur van een systeem (of, in softwareterminologie, de 'architectuur' van een systeem).


In het algemeen houden de Systemen 1-3 zich bezig met het 'hier en nu' van de operaties van het systeem. Systeem 4 houdt zich bezig met het 'nu en de toekomst’: strategische reacties op de effecten van externe, omgevings- en toekomstige eisen voor de systemen. Systeem 5 houdt zich bezig met het balanceren van het ‘hier en nu’ en het ‘nu en de toekomst' om beleidsrichtlijnen te geven die de systemen als een viable entiteit handhaven.


Systeem 1 in een viable systeem bevat verschillende primaire activiteiten. Elke primaire Systeem 1-activiteit is een viable systeem op zichzelf vanwege het recursieve karakter van systemen, zoals eerder beschreven. Deze houden zich bezig met het uitvoeren van een functie die ten minste een deel van de belangrijkste functies van het systeem implementeert.


Systeem 2 vertegenwoordigt de informatiekanalen en -organen waarmee de primaire activiteiten in Systeem 1 met elkaar kunnen communiceren en waarmee Systeem 3 de activiteiten binnen Systeem 1 kan monitoren en coördineren. Systeem 2 geeft de planningsfunctie weer van gedeelde bronnen gebruikt door System 1.


Systeem 3 vertegenwoordigt de structuren en bedieningselementen die zijn ingesteld 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 algemene beeld van de processen binnen Systeem 1.


Systeem 4 bestaat uit elementen die verantwoordelijk zijn voor het monitoren van de omgeving ter controle van hoe het systeem moet worden aangepast om viable te blijven.


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


Naast de subsystemen die het 'binnenste' van het VSM vormen, is de omgeving ook een expliciet element van het model. De omgeving en context van een viable systeem, dat het systeem van buitenaf beïnvloedt. De aanwezigheid van het omgevingselement in het model is nodig als de ruimte waarin het systeem functioneert en waaraan het systeem de output levert. Zonder is er geen manier om het model in de context van de interne interacties van de organisatie te plaatsen.


Algedonische waarschuwingen (van het Griekse αλγος, pijn en ηδος, plezier) zijn waarschuwingen en beloningen die escaleren door de niveaus van recursie, wanneer de werkelijke prestaties falen of de capaciteit overschrijden, meestal na een time-out.


Visueel zou een VSM er zo uit kunnen zien:

Zoals u kunt zien, is het VSM een complexe, cybernetische constructie en moet deze waarschijnlijk worden vereenvoudigd om bruikbaar te worden als een metamodel voor het ontwerpen van softwaresystemen, met het doel om viable systemen te realiseren.


In het volgende deel van deze serie zullen we proberen het VSM te vereenvoudigen en te gebruiken als een metamodel voor uitvoerbaar softwareontwerp.