Organiseer rond de case
Werk draait niet om applicaties, objecten of agents. Het draait om cases: een aanvraag die beoordeeld moet worden, een patiënt die zorg nodig heeft, een opdracht die bemand moet worden. CaseFlows maakt de case het uitgangspunt, en de rol die ieder daarin heeft.
Elke generatie software koos een eenheid
Objectoriëntatie bouwde rond het object en maakte grote systemen beheersbaar. Serviceoriëntatie bouwde rond de service en maakte systemen koppelbaar. Agentarchitecturen bouwen rond de agent en maken software proactief.
Die keuze is nooit neutraal: ze bepaalt wat makkelijk blijft en wat moeilijk. En bij alle drie blijft hetzelfde moeilijk: meerdere partijen die samen aan één werkelijkheid werken. Een object kent geen situatie, een service weet niet waarom hij wordt aangeroepen, en meer agents die zelfstandig handelen is nog geen samenwerking.
%%{init: {"theme":"base","themeVariables":{"primaryColor":"#FFFBF3","primaryBorderColor":"#211D18","primaryTextColor":"#211D18","lineColor":"#211D18","secondaryColor":"#FCE3D2","secondaryBorderColor":"#EC6A22","tertiaryColor":"#ffffff","tertiaryBorderColor":"#D9CFBE","clusterBkg":"#F5EFE4","clusterBorder":"#D9CFBE","fontFamily":"Instrument Sans, system-ui, sans-serif","fontSize":"15px"},"flowchart":{"padding":18,"nodeSpacing":40,"rankSpacing":45}}}%%
flowchart LR
O["Object<br/>beheersbaar"] --> S["Service<br/>koppelbaar"] --> A["Agent<br/>proactief"] --> C["Case<br/>samenwerken"]
classDef now fill:#FCE3D2,stroke:#EC6A22,stroke-width:2px
class C nowSchuif opzij om de hele plaat te zien.
De case is de gedeelde werkelijkheid
Een case is iets dat van een aanleiding naar een resultaat moet worden gebracht. Vier dingen maken hem anders dan een record:
- Hij heeft een verantwoordelijke eigenaar, en is gedeeld. Hij verbindt iedereen die eraan werkt, ieder via een eigen rol.
- Hij kent meerdere perspectieven. Ieder ziet dezelfde werkelijkheid vanuit de eigen rol.
- Hij loopt door de tijd. Een case beweegt door fasen en verzamelt besluiten en uitkomsten.
- Hij onthoudt. Wat er gebeurde, en vanuit welke verantwoordelijkheid, blijft bij de case.
De caseflow beschrijft die levensloop: de fasen, de rollen en hoe werk, informatie en verantwoordelijkheid tussen hen bewegen.
%%{init: {"theme":"base","themeVariables":{"primaryColor":"#FFFBF3","primaryBorderColor":"#211D18","primaryTextColor":"#211D18","lineColor":"#211D18","secondaryColor":"#FCE3D2","secondaryBorderColor":"#EC6A22","tertiaryColor":"#ffffff","tertiaryBorderColor":"#D9CFBE","clusterBkg":"#F5EFE4","clusterBorder":"#D9CFBE","fontFamily":"Instrument Sans, system-ui, sans-serif","fontSize":"15px"},"flowchart":{"padding":18,"nodeSpacing":40,"rankSpacing":45}}}%%
flowchart LR
T(["Aanleiding"]) --> P1
subgraph P1["<b>1 · Aanvraag</b>"]
direction TB
a1["<b>Aanvrager</b> dient de aanvraag in"]
end
subgraph P2["<b>2 · Beoordeling</b>"]
direction TB
a2["<b>Gemeente</b> leidt de beoordeling<br/><b>Ingenieursbureau</b> toetst de constructie"]
end
subgraph P3["<b>3 · Besluit</b>"]
direction TB
a4["<b>Gemeente</b> besluit<br/><b>Aanvrager</b> ziet het besluit"]
end
P1 ==> P2 ==> P3 ==> R(["Resultaat"])
classDef role fill:#ffffff,stroke:#D9CFBE,color:#211D18,font-size:13px
class a1,a2,a4 role
style P1 fill:#FFFBF3,stroke:#211D18,stroke-width:2px
style P2 fill:#FFFBF3,stroke:#211D18,stroke-width:2px
style P3 fill:#FFFBF3,stroke:#211D18,stroke-width:2px
classDef endpoint fill:#FCE3D2,stroke:#EC6A22,stroke-width:2px,color:#211D18
class T,R endpointSchuif opzij om de hele plaat te zien.
De caserol: een verantwoordelijkheid, geen login
De case zegt waar wordt samengewerkt. De caserol zegt hoe iemand meedoet. Een caserol bepaalt wat een deelnemer gedurende de levensloop van de case mag zien en doen. Rechten hangen daarmee niet aan een functieprofiel, maar aan de verantwoordelijkheid die iemand op dit moment in deze case draagt. Gaat de case naar een volgende fase, dan verandert mee wat de rol ziet en kan.
Wie de rol vervult, is een keuze: een medewerker, een agent, een bestaand systeem of een andere organisatie. De verantwoordelijkheid blijft staan, de invulling is te wisselen. Daarom krijgt AI in CaseFlows geen brede toegang tot de organisatie, maar een plek in een case, met de grenzen van de rol.
%%{init: {"theme":"base","themeVariables":{"primaryColor":"#FFFBF3","primaryBorderColor":"#211D18","primaryTextColor":"#211D18","lineColor":"#211D18","secondaryColor":"#FCE3D2","secondaryBorderColor":"#EC6A22","tertiaryColor":"#ffffff","tertiaryBorderColor":"#D9CFBE","clusterBkg":"#F5EFE4","clusterBorder":"#D9CFBE","fontFamily":"Instrument Sans, system-ui, sans-serif","fontSize":"15px"},"flowchart":{"padding":18,"nodeSpacing":40,"rankSpacing":45}}}%%
flowchart TB
E1["Medewerker"] ~~~ E2["AI-agent"] ~~~ E3["Andere organisatie"]
subgraph role["Caserol: leverancier"]
direction LR
F1["Aanvraag<br/>ziet de aanvraag, accepteert"] --> F2["Levering<br/>werkt leveringsgegevens bij"] --> F3["Afgerond<br/>ziet alleen de historie"]
end
E1 & E2 & E3 -.-> roleSchuif opzij om de hele plaat te zien.
Samenwerken zonder je organisatie weg te geven
Cases houden zelden op bij de grens van één organisatie. Een gemeente werkt met een ingenieursbureau, een ziekenhuis met een laboratorium.
CaseFlows klinkt daarbij niet de processen van organisaties aan elkaar. Een organisatie belegt een caserol bij een andere organisatie, en die rol is de grens. Wat de rol ziet en mag, leggen beide kanten samen vast. Hoe de andere organisatie haar rol uitvoert, met welke mensen, systemen of agents, bepaalt ze zelf.
Zo zijn er twee soorten vrijheid. Hoe je je rol uitvoert is aan jou. De afspraken waar anderen op rekenen, zoals een verplichte controle, verander je alleen samen.
%%{init: {"theme":"base","themeVariables":{"primaryColor":"#FFFBF3","primaryBorderColor":"#211D18","primaryTextColor":"#211D18","lineColor":"#211D18","secondaryColor":"#FCE3D2","secondaryBorderColor":"#EC6A22","tertiaryColor":"#ffffff","tertiaryBorderColor":"#D9CFBE","clusterBkg":"#F5EFE4","clusterBorder":"#D9CFBE","fontFamily":"Instrument Sans, system-ui, sans-serif","fontSize":"15px"},"flowchart":{"padding":18,"nodeSpacing":40,"rankSpacing":45}}}%%
flowchart TB
subgraph A["Gemeente"]
C["Gedeelde case<br/>en caseflow"]
end
R{{"Caserol: constructieve toets<br/>afgesproken door beide kanten"}}
subgraph B["Ingenieursbureau"]
direction LR
B1["Eigen mensen"]
B2["Eigen systemen en agents"]
B3["Eigen werkwijze"]
end
C <--> R
R <--> BSchuif opzij om de hele plaat te zien.
Een caserol is geen service
Kan iets los van een case draaien, dan is het een service: je vraagt iets en krijgt een resultaat. Een caserol bestaat alleen binnen een case. Wie hem vervult, doet mee aan een gedeelde werkelijkheid: ziet wat er verandert, handelt op het goede moment en laat een spoor achter.
Services blijven nodig. Een CRM, een planningssysteem of een AI-model wordt een service die een rol gebruikt. De caseflow organiseert het werk. De backoffice en AI ondersteunen het. Niet andersom.
%%{init: {"theme":"base","themeVariables":{"primaryColor":"#FFFBF3","primaryBorderColor":"#211D18","primaryTextColor":"#211D18","lineColor":"#211D18","secondaryColor":"#FCE3D2","secondaryBorderColor":"#EC6A22","tertiaryColor":"#ffffff","tertiaryBorderColor":"#D9CFBE","clusterBkg":"#F5EFE4","clusterBorder":"#D9CFBE","fontFamily":"Instrument Sans, system-ui, sans-serif","fontSize":"15px"},"flowchart":{"padding":18,"nodeSpacing":40,"rankSpacing":45}}}%%
flowchart LR
subgraph case["Case"]
direction LR
R1["Caserol"] --- R2["Caserol"]
end
R1 -- gebruikt --> S1["CRM"]
R2 -- gebruikt --> S2["Planning"]
R2 -- gebruikt --> S3["AI-model"]Schuif opzij om de hele plaat te zien.
Wat vandaag draait, en waar we naartoe gaan
Draait vandaag: cases, caserollen en caseflows in productie, waarbij de server afdwingt wat elke rol per fase mag zien en doen; een rol die een andere organisatie vervult, onder een afspraak die beide platforms bevestigen.
Waar we naartoe gaan: de partner die zijn deel als eigen caseflow achter de rol uitvoert. Wat over de grens gemeten is, en wat nog niet, staat in Samenwerken over organisaties heen.
Hierna: van intentie naar een draaiend systeem
Hoe je werkwijze wordt vastgelegd in een open specificatie, en waarom CaseFlows die specificatie uitvoert in plaats van haar te vertalen naar code.
Lees verder →