Corticon: business rules implementeren zonder programmeren

BRMS

Elke business heeft zijn regels. Werknemers die langer dan 5 jaar in dienst zijn krijgen 1 extra vakantiedag, gevaarlijke stoffen mogen alleen in bepaalde typen containers vervoerd worden, een kredietaanvrager met een BKR-registratie boven EUR 20.000 moet geweigerd worden. Dit soort regels kunnen erg complex worden om te programmeren, bovendien zijn ze vaak aan verandering onderhevig. Business Rules Management Systemen (BRMS) brengen hier eenvoud in aan. De regels worden in een aparte applicatie beheerd zonder dat hier een programmeur voor nodig is. De systemen die van deze regels gebruik maken hoeven alleen wat gegevens naar het BRMS te sturen en krijgen een pasklaar antwoord terug. Eind 2011 nam Progress het BRMS Corticon over, waar geen programmeerkennis voor nodig zou zijn. Als functioneel analist nam ik de proef op de som en meldde me aan voor een workshop.

De schrik sloeg me dan ook snel om het hart toen bleek dat de focus van de workshop op het implementeren van een koppeling tussen een Progress OpenEdge applicatie en Corticon bleek te liggen. Gelukkig begon de workshop met de functionaliteit van Corticon zelf en kon ik me eerst in de mogelijkheden en gebruiksvriendelijkheid van Corticon verdiepen.

 

Overzichtelijk
Corticon werkt met spreadsheets om business rules in op te nemen. Als voorbeeld kregen wij een case van een verzekeraar. In kolom 1: een aanvrager voor een verzekering die skydiven als hobby heeft valt onder ‘hoog risico’. Kolom 2: een aanvrager die jonger is dan 35 jaar valt onder laag risico. De benodigde tabellen kunnen in natuurlijke taal vertaald worden: applicant.isSkydiver noem je bijvoorbeeld ‘een aanvrager die skydiver is’. Ook kun je je business rules eenvoudig testen door inputgegevens te definiëren en Corticon de uitkomst te laten bepalen. Niet het verwachte antwoord? Dan heb je ergens iets verkeerd gedaan. Functionele analisten en beheerders die niet terugdeinzen voor zaken als ‘true’, ‘false’, ‘<=’ en ‘>’ zullen zich hier na enige training goed mee kunnen redden.

 

Validatiemogelijkheden
Wat mij betreft de absolute pre van een tool als Corticon: de validatiemogelijkheden. Dit maakt het als beginnende BRMS gebruiker een stuk gebruiksvriendelijker. In mijn eerder genoemde business rules is bijvoorbeeld sprake van mogelijke overlap: als iemand skydiver is èn jonger dan 35 jaar, is dat dan hoog of laag risico? Ook valideert Corticon of er gaten in je regels zijn: wat voor risico heeft iemand die ouder is dan 35 en niet skydivet? Tenslotte is er een validatie op ‘logische loops’: als de uitkomst van regel A afhankelijk is van regel B, maar de uitkomst van B ook van regel A. Zeker bij complexere regels helpen deze validaties om de business rules goed te beschrijven. De ‘gaten’ in de functionaliteit komen zo al in de ontwerpfase van een project boven water.

 

Up and Running
De business rules kunnen overzichtelijk in verschillende spreadsheets opgenomen worden zodat het goed beheersbaar blijft. Vervolgens kunnen deze spreadsheets aan elkaar gekoppeld worden in een service. Deze service zal later door andere applicaties aangeroepen worden. En ja, daar heb je een aantal regels programmeercode voor nodig. Gelukkig was dit al voorbereid en hoefde ik die alleen in mijn applicatie te plakken. Voor ik het wist had ik een ‘decision service’ draaiende.

 

Conclusie
De bewering dat voor Corticon geen programmeerkennis nodig zou zijn lijkt in eerste instantie waar te zijn. Toch heeft Corticon zich met de eenvoudige casus uit de workshop natuurlijk nog niet bewezen; een BRMS heeft pas toegevoegde waarde bij veel complexere regels. Ik sta sinds de workshop dan ook te popelen om met real-life complexe scenario’s aan de slag te gaan en te onderzoeken of het voor onze klanten toegevoegde waarde heeft. Wordt vervolgd…