Basis richtlijnen RuleSpeak
R
Do's-and-don'ts voor het opstellen van bedrijfsregels in begrijpelijk Nederlands (als natuurlijke taal). De originele Engelse versie is opgesteld door … Ronald G. Ross Oprichter & Directeur, Business Rule Solutions, LLC, www.BRSolutions.com Uitgever, Business Rules Journal, www.BRCommunity.com
Deze Nederlandse versie is opgesteld door … S. Spreeuwenberg Oprichter & Directeur, LibRT B.V., www.librt.com Met dank aan dr. S. Hoppenbrouwers, Radboud Universiteit Nijmegen Versie 2.3
RuleSpeak is één van de drie referentie notaties die gebruikt zijn tijdens de ontwikkeling van de standard Semantics of Business Vocabulary and Business Rules (SBVR) en sluit aan bij deze standaard. RuleSpeakR is een techniek behorende bij ProteusR – de BRS methode voor bedrijfsanalyse en bedrijfsregels. Commentaar en suggesties kunt u sturen aan
[email protected] Dit materiaal mag vrijuit gebruikt worden binnen een bedrijf en zonder winstoogmerk. Commercieel gebruik of reproductie van enig onderdeel van dit materiaal is verboden zonder schriftelijke toestemming van Business Rule Solutions, LLC (BRS) en LibRT B.V. Gelieve contact op te nemen met BRS of LibRT voor voorwaarden omtrent licenties en gebruik. Deze notitie moet in alle reproducties worden overgenomen. Dit materiaal is beschikbaar gesteld door LibRT B.V., specialist in bedrijfsregels opstellen en toepassen en samenspraak met Business Rule Solutions, LLC, the Business Rule Technique Company.
Copyright, 2009. LibRT B.V.
pagina -1-
Basis richtlijnen RuleSpeak
R
Do's-and-don'ts voor het opstellen van bedrijfsregels in begrijpelijk Nederlands (als natuurlijke taal). Over wat RuleSpeak is
RuleSpeak is een verzameling praktische richtlijnen voor … het verwoorden van bedrijfsregels op een heldere, eenduidige en gestructureerde manier. het verbeteren van communicatie over regels tussen mensen uit de bedrijfspraktijk, bedrijfsanalisten en IT-ers. het overbruggen van de afstand tussen de taal van beleid en wetgeving, en ICT specificaties die gericht zijn op het ontwerpen en implementeren van informatiesystemen. het vermijden van valkuilen in het verwoorden van aanwijzingen. het behouden van product- en bedrijfskennis in een beheersbaar en herbruikbaar formaat.
Een ervaren RuleSpeak gebruiker aan het woord: “Een ander chronisch probleem is de moeite die het kost om een gemeenschappelijke taal te vinden zodat .... de business, analisten en ontwikkelaars elkaar werkelijk begrijpen. De business vragen om te tekenen voor een project is zinloos als het voorstel gepresenteerd wordt in een formaat of structuur die zij niet begrijpen (of waarin zij niet zijn opgeleid). Voor ontwikkelaars is het van belang dat het communicatie formaat precies genoeg is om een systeem ontwerp te maken en programmacode te schrijven.” RuleSpeak geeft het antwoord. RuleSpeak kan begrepen en geschreven worden door het merendeel van de business. De praktische richtlijnen helpen tevens analisten met het verhelderen en verwoorden van de bedrijfsbetekenis van zeer complexe kennisstructuren die ten grondslag liggen aan beslissingen.
Het specificatieniveau specificatieniveau waarvoor RuleSpeak bedoeld is Aanwijzingen kunnen verwoord worden op drie niveaus van beschrijving, zoals in de komende paragrafen wordt toegelicht. RuleSpeak is bedoeld voor het tweede niveau, werkbare aanwijzingen, waarmee het een kritisch tussenniveau is bij het
Copyright, 2009. LibRT B.V.
pagina -2-
verkrijgen van de juiste interpretatie voor de vertaling tussen de andere twee niveaus. Sturende aanwijzing: Een aanwijzing in een wet, regeling, contract, overeenkomst, beleid of soortgelijke communicatie, bedoeld om sturing te geven. Merk op dat: Een sturende aanwijzing bedoeld kan zijn voor één of meer van de onderstaande punten: Het aansturen of inperken van het primaire proces conform de bedrijfsstrategie of gekozen tactiek. Het beperken van kwetsbaarheid inzake risico’s en bedreigingen. Het toezien op adequate totstandkoming en gebruik van producten en dienstverlening. Het reguleren of coördineren van de samenwerking tussen partijen Het handelen conform de wet of andere voorschriften. Sturende aanwijzingen moeten meestal nader verklaard worden middels één of meer werkbare aanwijzingen, gebruik makend van een overeengekomen vocabulaire, zodat de aanwijzing ingezet en toegepast kan worden in dagelijkse bedrijfsprocessen of beslissingsprocedures. Werkbare aanwijzing: Een declaratieve zin in goed gestructureerd Nederlands, op basis van een overeengekomen vocabulaire dat direct bruikbaar is voor medewerkers of daartoe gemachtigde partijen in een bedrijfsproces of een beslissingsprocedure. Merk op dat: Een werkbare aanwijzing geen aanvullende interpretatie mag hebben nodig om toegepast te kunnen worden. Werkbare aanwijzingen worden doorgaans afgeleid van sturende aanwijzingen en, als ze geautomatiseerd worden, vertaald naar geïmplementeerde aanwijzingen. Werkbare bedrijfsregels kunnen ook gereconstrueerd worden (reverse engineering) vanuit legacysystemen teneinde de bedrijfsintenties te beschrijven, verhelderen en analyseren. Implementeerbare aanwijzing: Een formulering in een vorm die geschikt is voor het ontwerpen of implementeren van geautomatiseerde systemen, bijvoorbeeld rule engines, programmeertalen, procesengines, softwaregeneratoren of soortgelijke technologie. Merk op dat: Een geïmplementeerde aanwijzing over het algemeen zodanig beschreven is dat zij optimaal geïmplementeerd kan worden op het gekozen executie platform en minder geschikt is voor communicatie met en tussen mensen uit de bedrijfspraktijk (de business).
Copyright, 2009. LibRT B.V.
pagina -3-
1.0 Basisrichtlijnen RuleSpeak 1.1 Bedrijfsregels mogen niet een procedure beschrijven. Onderstaand voorbeeld zijn “bedrijfsregels” van een recent whitepaper van een software leverancier1.
Check the product number in database SRU [the Sandals ‘R’ Us database]. If the product number is equal to 422 [the part number of flip-flops] and the product description is equal to “plastic flip-flops”, then set the new product number in database ASC [The Athens Sandal Company database] equal to 1547 and set the product description equal to “Fun-in-the-Sun Flip-Flops” else if the product number in database is equal to 423 through 495 [the part numbers of all orthopedic sandals] then set the new product number equal to 1647 and set the product category equal to “Good for You, Too Sandals” else if … Merk op dat: Deze specificatie gegeven is in de vorm van een procedure, een stap-voor-stap proces, in plaats van in een werkbare, declaratieve vorm die beter geschikt is voor communicatie tussen mensen. Woorden zoals “set” en “database” geven duidelijk aan dat het hier om een implementatie gaat. Onderstaand voorbeeld zijn “bedrijfsregels” afkomstig uit een recent RFP van een Nederlands overheidsbedrijf. Haal Lopende zaken op Als status is afgesloten Dan Toon aanleiding, startdatum, einddatum, betrokken medewerker. Toon verwijzing naar bijbehorende inkomende en uitgaande correspondentie. Anders Dan Toon aanleiding, startdatum, status, datum status verandering, normeinddatum, actie van klant, betrokken medewerker Als actie klant ongelijk status afgesloten Dan Toon inhoud actie, startdatum, status, normeinddatum, rappeldatum Anders Dan Toon inhoud actie, startdatum, einddatum Toon verwijzing naar bijbehorende inkomende en uitgaande correspondentie.
Merk op dat: Deze specificatie gegeven is in de vorm van een procedure, stap-voor-stap proces, in plaats van een werkbare, declaratieve vorm voor 1
Deze tekst is niet vertaald, de structuur van de tekst is het belangrijkste in dit voorbeeld en kan ook goed uit de Engelse versie gedestilleerd worden.
Copyright, 2009. LibRT B.V.
pagina -4-
communicatie tussen mensen. Woorden zoals “haal” en “toon” geven duidelijk aan dat het hier eigenlijk om een implementatie gaat. Pas op: Vermijd iedere procedurele vorm om bedrijfsregels uit te drukken. Deze vorm is niet geschikt voor het effectief communiceren van de daadwerkelijke intentie van de business; zij is al gauw moeilijk te volgen en isoleert de herbruikbare besliselementen niet. RuleSpeak adviseert tegen deze vorm .
1.2 Een bedrijfsregel mag niet onnavolgbaar zijn. Voorbeeld van het menu van een restaurant in Fort Bragg, NC: Deze gerechten zijn te allen tijde wel of niet beschikbaar, en soms helemaal niet en anders altijd2. Merk op dat: De meest basale test voor een goede bedrijfsregel is dat hij in één keer begrepen moet worden door een medewerker met verstand van zaken – en ook altijd op dezelfde wijze begrepen wordt. Het bovenstande voorbeeld doorstaat deze test niet.
1.3 Handhaving en toezicht zijn afzonderlijke zaken. zaken. Merk op dat: Alles wat te maken heeft met het toezicht op of handhaving van een regel afzonderlijk van die regel moet worden beschreven. Een regel verwoordt het ‘wat’ van een regel, en niet: Hoe handhaving en toezicht is ingericht. Waar de regel wordt gehandhaafd of gecontroleerd (d.w.z. in welke implementatieonderdelen). Wie (welke medewerkers) verantwoordelijk zijn voor de handhaving of het toezicht. Wanneer (welke gebeurtenis tot gevolg heeft dat) de regel gecontroleerd of gehandhaafd wordt. Waarom de regel wordt gehandhaafd of gecontroleerd (het bedrijfsdoel of de motivatie achter de regel). Regel: Iedereen3 die zich op een bouwplaats bevindt moet een helm op zijn hoofd
dragen.
2
Impressie van de onnavolgbare zin :”These items may or may not be available at all times, and sometimes not at all and other times all the time.” 3 “iedereen” is een toegestane samentrekking van “ieder + persoon”.
Copyright, 2009. LibRT B.V.
pagina -5-
Merk op dat: deze regel geen informatie bevat over het hoe, waar, wanneer en waarom de regel wordt gehandhaafd of gecontroleerd, of wie daar verantwoordelijk voor is. Een invulling van deze zaken kan apart beschreven worden. Het verwijderen van het hoe, waar,wie, wanneer en waarom van het toezicht op de handhaving van een regel leidt tot regels die uitsluitend gericht zijn op de beslissing, het wat. Bedrijfsregels die op deze manier opgesteld worden zijn beter te begrijpen en gemakkelijker te hergebruiken omdat ze niet vastzitten aan een bepaald handhavings- of toezichtsstramien.
Copyright, 2009. LibRT B.V.
pagina -6-
2.0 Woordgebruik in RuleSpeak 2.1 Het weglaten van een sleutelwoord in een bedrijfsregel is niet goed. Toelichting: Iedere bedrijfsregel moet één van de woorden “moet”, “alleen” en “mag niet” bevatten. Vermijd andere zinnen of woorden die aangeven dat de zin een regel is. Hiermee wordt consistentie en focus bevorderd. Regel: Eerstejaars hebben geen toestemming deel te nemen aan een jaarclub. Gewijzigde regel: Eerstejaars mogen niet deelnemen aan een jaarclub. Regel: Het is verplicht dat een bestelling de naam van de klant aan duidt Gewijzigde versie: Een bestelling moet de naam van de klant aanduiden
2.2 “Kan” is niet goed. goed. Voorbeeld: Een klant kan een pesticide aanschaffen van een leverancier. Merk op dat: Deze zin alleen aangeeft dat iets mogelijk is. Een bedrijfsregel werkt altijd beperkend op de vrijheid van handelen. Regel: Een klant mag alleen een pesticide aanschaffen van een leverancier als de
leverancier de pesticide verkoopt. Merk op dat: Het woord “alleen” wordt gebruikt om vrijheid te beperken en zorgt er daarmee voor dat dit een regel is. Vraag: Zeggen we iets over een capaciteit (het kunnen…)? Of beperken we de vrijheid ? (d.w.z., mag alleen… indien)?
2.3 Overdrijven is niet goed. goed. Toelichting: Woorden en zinnen die toegevoegd worden om de regel kracht bij te zetten, zijn alleen maar ballast. Regel: Een levering moet te allen tijde en zonder uitzondering een status hebben. Gewijzigde versie: Een levering moet een status hebben. Opmerking: De gewijzigde versie laat geen uitzondering toe omdat er geen voorwaardelijke omstandigheden gemeld worden. Regel: Eerstejaars mogen te allen tijde niet deelnemen aan een jaarclub.
Copyright, 2009. LibRT B.V.
pagina -7-
Gewijzigde versie: Eerstejaars mogen niet deelnemen aan een jaarclub. Opmerking: Ga uit van “te allen tijde” tenzij de regel alleen van toepassing is tijdens bepaalde periode(n). (En als dat zo is, dan moet deze periode ook expliciet vermeld zijn). Regel: Een programmeur moet altijd aan een systeem werken Gewijzigde versie: Een programmeur moet aan een systeem werken Opmerking: Ga uit van “altijd” tenzij de regel alleen van toepassing is tijdens bepaalde periode(n). (En als dat zo is, dan moet deze periode ook expliciet vermeld zijn).
Copyright, 2009. LibRT B.V.
pagina -8-
3.0 Feittypen in RuleSpeak 3.1 ‘Zomaar wat’ is niet goed! Opmerking4: Alle relaties tussen een onderwerp en een lijdend voorwerp moeten gebaseerd zijn op een feittype. Feittypen:
klant plaatst bestelling klant heeft een rekening
Regel: Een klant mag alleen een bestelling plaatsen als de klant een rekening heeft. Opmerking: De concept-relatie combinaties die volgen uit de zin zijn ook als feittypen gedefinieerd. Let op: Wees bekend met je eigen terminologie, feittypen en hun betekenis. Een goed doortimmerd bedrijfsvocabulaire is beslissend voor het verwoorden van eenduidige regels. De structuur die ten grondslag ligt aan de termen en feiten – het conceptueel model – is hierbij een essentieel hulpmiddel. Het gebruik van zelfstandignaamwoorden en werkwoorden die onderdeel zijn van een conceptueel model voor het verwoorden van aanwijzingen zorgt voor consistentie en vermijdt ambiguïteit. Het nastreven van deze eigenschappen wordt belangrijker naarmate het aantal te beheren regels groeit (bij schaalvergroting).
3.2 “Hebben” is vaak niet goed. goed. Regel: Een team moet een manager hebben. Opmerking: Het werkwoord “hebben” is niet precies genoeg om de relatie tussen twee onafhankelijke concepten aan te duiden. Het verbergt de werkelijke betekenis. Vraag: Wat betekent "hebben"? wordt geleid door een manager? wordt beoordeeld door een manager? wordt gesponsord door een manager? Gewijzigde versie Feittype: team wordt geleid door manager Regel: Een team moet geleid worden door een manager.
4
Opmerking over de vertaling: voor het Engels gaat deze richtlijn ook over het volgen van de woordvolgorde zoals deze in een feittype is verwoord. De Nederlandse grammatica regels laten het echter niet toe deze volgorde precies te volgen. De richtlijn is daarom iets aangepast voor het Nederlands.
Copyright, 2009. LibRT B.V.
pagina -9-
Merk op dat: voor regels over concepten die onafhankelijk van elkaar kunnen bestaan gebruik gemaakt moet worden van werkwoorden met een duidelijke betekenis. Let op: Het gebruik van het werkwoord ‘hebben’ moet zich beperken tot directe kenmerken van een concept, bijvoorbeeld een rekening heeft een openstaande balans.
3.3 Overslaan van feittypen is niet goed! Regel: Een bestelling mag niet afgeleverd worden als de openstaande balans hoger is
dan de kredietautorisatie. Opmerking: Deze regel kan daarom gemakkelijk verkeerd begrepen worden. Vraag: Vraag de openstaande balans van wat? bestelling? …klant? …rekening? …levering? Vraag: Vraag de krediet authorisatie van wat? bestelling? …klant? …rekening? …levering? Gewijzigde versie Feittype: klant plaatst bestelling klant heeft kredietautorisatie klant heeft rekening rekening heeft een openstaande balans Regel: Een bestelling mag niet afgeleverd worden als de openstaande balans op de rekening van de klant die de bestelling heeft geplaatst hoger is dan de kredietautorisatie van de klant. Merk op dat: Ambiguiteit onvermijdelijk is wanneer relevante feittypen worden overgeslagen in een regel. Geef alle relevante relaties aan tussen concepten en zorg ervoor dat zij gebruikt worden in de regel. Pas op: Ontwikkel bijtijds een conceptueel model. Anders kan alle moeite om regels eenduidig op te stellen alsnog leiden tot inconsistente en gebrekkige resultaten.
Copyright, 2009. LibRT B.V.
pagina -10-
4.0 Onderwerp in RuleSpeak 4.1 De zin beginnen met ‘indien’5 is niet goed! Regel: Als een medewerker met pensioen is, dan mag hij niet toegewezen worden aan een team. Gewijzigde versie: Een gepensioneerde medewerker mag niet toegewezen
worden aan een team. Merk op dat: Iedere bedrijfsregel moet beginnen met een geschikt onderwerp6. Dit is het meest natuurlijk en een goede gewoonte. Als een bepaling (een voorwaarde op basis van “indien”) nodig is, kan deze aan het eind van de zin worden geplaatst. Let op: Onthoud dat veel bedrijfsregels geen natuurlijke “als ... dan ...” structuur hebben. Regel: Een medewerker moet een naam hebben. Merk op dat: De ‘consequentie’ van deze bedrijfsregel (dus: dat wat na de ‘dan’ komt in een ‘als ... dan ...’ structuur) iets te maken moet hebben met de wijze waarop de regel wordt gecontroleerd of gehandhaafd (in een systeem). Zulke informatie zou apart van de regel gespecificeerd moeten worden.
4.2 Een moment als onderwerp is niet goed! Regel: Met het sluiten van het schooljaar, moet een student tenminste 2 cursussen afgerond hebben. Gewijzigde Regel: Een student moet 2 cursussen afgerond hebben met het
sluiten van het schooljaar. Merk op dat: Een bepaling over een moment beter aan het eind van de zin geplaastst kan worden, indien dit nodig is.
5
of het veel gebruikte ‘als’. Het woord “onderwerp” wordt hier gebruikt in de zin van ”datgene waarover de aanwijzing gaat” en hoeft niet overeen te komen met het grammaticale onderwerp van een zin verkregen met een redekundige ontleding. 6
Copyright, 2009. LibRT B.V.
pagina -11-
4.3 Een onderwerp in meervoud is is niet goed! Regel: Programmeurs moeten aan een systeem werken. Merk op dat: Deze zin gemakkelijk verkeerd begrepen kan worden. Moeten alle programmeurs samen aan een systeem werken of moet iedere programmeur aan één systeem werken? Gewijzigde versie: Een programmeur moet aan een systeem werken. Merk op dat: Deze versie expliciet maakt dat de regel voor iedere programmeur geldt. Regel: Eerstejaars mogen niet deelnemen aan een jaarclub. Merk op dat: Regels worden toegepast op instanties! Ambiguiteit kan gemakkelijk vermeden worden met een onderwerp in enkelvoud. Gewijzigde versie: Een eerstejaars mag niet deelnemen aan een jaarclub. Merk op dat: Het lidwoord “een” voorafgaand aan een onderwerp in RuleSpeak altijd geinterpreteerd wordt met de betekenis van “ieder(e)”. In de bovenstaande zin, bijvoorbeeld, hebben we het over iedere student. In geval van twijfel mag “een” altijd vervangen worden door “ieder(e)”, zoals in de volgende gewijzigde versie. Gewijzigde versie: Iedere eerstejaars mag niet deelnemen aan een
jaarclub7.
4.4 Een persoon als onderwerp is vaak niet goed! Regel: Een klant mag alleen geld opvragen als zijn/haar rekening actief is.
Vraag: Maar hoe zit dat dan met geauthoriseerde derden? De bank zelf? Een gemachtigde? Gewijzigde regel: Een geldopvraging voor een rekening mag alleen uitgevoerd worden als de rekening actief is. Merk op dat: Een regel over een persoon als onderwerp altijd nauwgezet beoordeeld moet worden. Mag de regel echt alleen voor die persoon gelden? Vaak is het antwoord op deze vraag negatief. In dat geval moet het onderwerp vervangen worden door een onderwerp 7
Hoewel deze zin het besproken onderwerp goed illustreert komt het resultaat niet natuurlijk over. Dit komt doordat “niet + een” vaak samengenomen worden tot “geen”. De zin zou dan als volgt lezen: Geen
eerstejaars mag deelnemen aan een jaarclub. Dit is een goed alternatief.
Copyright, 2009. LibRT B.V.
pagina -12-
dat geen persoon aanduidt, bijvoorbeeld geldopvraging, zoals in bovenstaande regel). Let op: Wees alert als je bedrijfsregels uit processen, procedures of use cases haalt. Er is een natuurlijke neiging om te referen aan de actor die een rol speelt in het proces op een bepaald moment. Maar de rijkwijdte van een beslissing is vaak niet beperkt tot dat moment en die actor.
4.5 NietNiet-nummerieke onderwerpen voor numerieke drempels is niet goed. Merk op dat: Als een regel een numerieke drempel bepaalt, het onderwerp van die regel ook numeriek moet zijn. Regel: Een cursus moet niet bestaan uit meer dan 30 plaatsen. Merk op dat: Deze regel over de numerieke drempel van “30 plaatsen” gaat. Het onderwerp, cursus, is echter niet numeriek. Dit kan als volgt gecorrigeerd worden. Gewijzigde regel: Het aantal plaatsen voor een cursus mag niet meer
bedragen dan 30. Merk op dat: Deze regel veronderstelt dat het mogelijk is het aantal plaatsen in een cursus te tellen, een simpele rekenkundige bewerking. Het onderwerp van een regel met een rekenkundige bewerking moet in RuleSpeak altijd gelijk zijn aan dat wat berekend wordt. Regel: Een cursus mag niet meer dan 5 trainers en adviseurs betrekken. Merk op dat: Deze regel gaat over de numerieke drempel “5 trainers en adviseurs”. Het onderwerp, cursus, is echter niet numeriek. Dit kan als volgt gecorrigeerd worden. Gewijzigde regel: Het gecombineerde totaal aan trainers en adviseurs, betrokken bij een cursus, mag niet meer dan 5 bedragen.
4.6 Een onderwerp weglaten is niet goed! Voorbeeld van Tilly’s Restaurant, Alameda, CA:
Niet minder dan twee mensen in een zitje8 tussen 9:00 uur en 13:00 uur Merk op dat: Deze zin geen onderwerp heeft (en ook geen volledige zin is). 8
‘zitje’ is hier de vertaling van ‘booth’. Het gaat hier om een tafel met twee banken waar vier personen aan kunnen zitten en dat vaak afgeschermd is met een scheidingswand van andere tafels in een restaurant.
Copyright, 2009. LibRT B.V.
pagina -13-
Gewijzigde versie: Een ‘zitje’ mag niet bezet zijn door een groep bestaande uit
één persoon tussen 9:00 uur en 13:00 uur.” Merk op dat: Iedere regel een duidelijk onderwerp moet hebben. Het identificeren van een geschikt onderwerp is een belangrijke stap in de overgang van informele beschrijvingen van regels (waarin de context vaak wordt aangenomen) naar een meer eenduidige en complete formulering. Deze verfijning leidt ook tot een preciezer resultaat. Tilly’s vindt het waarschijnlijk goed als er niemand (0 mensen) in het zitje plaatsneemt tussen 9:00 uur en 13:00 uur. De gewijzigde versie geeft dit ook aan.
4.7 De gebiedende wijs is niet goed. goed. Voorbeeld: Verzend geen bestelling als de openstaande balans op de rekening van de
klant die de bestelling heeft geplaatst hoger is dan de krediet authorisatie. …het veronderstelde onderwerp is "Men” …deze zin lijkt onderdeel van een procedure Vraag: Welk woord is het onderwerp van de regel? Merk op dat: dat: Aanwijzingen geven in de gebiedende wijs goed werkt als de context bekend is, zoals in de volgende gevallen: Borden – bijvoorbeeld bij een zwembad, “Lopen, niet rennen.” Directe communicatie tussen mensen – bijvoorbeeld “Aarzel niet om meer te vragen”. Instructies voor of in procedures. Maar bedrijfsregels moeten juist op zichzelf staan zodat ze ook zonder context correct begrepen kunnen worden. Vraag: Welk woord (business concept) is het onderwerp van de regel? Gewijzigde versie: Een bestelling mag niet verzonden worden als de
openstaande balans op de rekening van de klant die de bestelling heeft geplaats hoger is dan de krediet authorisatie voor de bestelling.
Copyright, 2009. LibRT B.V.
pagina -14-
5.0 Leesbaarheid in RuleSpeak 5.1 Onduidelijke bepalingen zijn niet goed. goed. Regel: Een document mag niet gearchiveerd worden voor een project vóór de
oplevering. Vraag: Waar verwijst de status naar? De oplevering van het project? De oplevering van het document? Gewijzigde Regel: Een document mag niet gearchiveerd worden voor een
project totdat het document is opgeleverd. Regel: Een bestelling moet goedgekeurd worden door twee managers tijdens een
sneeuwstorm. Vraag: Waarop is de periode van toepassing? De goedkeuring moet plaatsvinden tijdens een sneeuwstorm? De bestelling moet binnenkomen tijdens een sneeuwstorm? Gewijzigde Regel: Een bestelling die binnenkomt tijdens een sneeuwstorm moet goedgekeurd worden door tenminste twee managers.
5.2 “OF” is zelden goed! Regel: Een project moet beschouwd worden als een actief project als het een
manager, budget of sponsor heeft. Vraag: Hoeveel? Tenminste één? Precies een? Stel dat we de regel wijzigen in “2 van de 3”? Gewijzigde Regel: Een project moet beschouwd worden als een actief
project als het project aan minimaal één van de volgende voorwaarden voldoet: het project heeft een manager; het project heeft een budget. Merk op dat: Het voegwoord “of” is vervallen door het opsommen van een lijst met voorwaarden en het expliciet verwoorden van het aantal condities waaraan voldaan moet worden (minimaal één). Het RuleSpeak sleutelwoord “... de volgende ...“ wordt gebruikt om de opsomming te introduceren. Deze aanpak voorkomt ambiguiteit en vergemakkelijkt wijzigingen.
Copyright, 2009. LibRT B.V.
pagina -15-
Let op: Vermijd lange lijsten met geneste voorwaarden. Deze zijn vaak moeilijk te begrijpen. Verwijder alle relevante voegwoorden in een regel en vervang deze door de bovengenoemde zinsconstuctie op basis van opsommingen. Laat de tekst inspringen om opsommingen van elkaar te onderscheiden indien er meer dan één opsomming nodig is.
5.3 “Etc.” is niet goed. goed. Regel: Een deelnemer mag geen etenswaren of drank gebruiken tijdens de cursus; niet telefoneren of smssen; geen muziek beluisteren of ten gehore brengen; etc. Vraag: Staat hier nog een impliciete “of”? Aan welke andere “dingen” refereert “etc.” verder nog? Merk op dat: De intentie van deze regel op z’n zachtst gezegd “vaag” is. Woorden als etc., enz., e.d., e.d. verschaffen geen werkelijke waardevolle opheldering. Gewijzigde Regel: Tijdens de cursus moet een deelnemer zich houden aan
alle volgende voorschriften: deelnemers mogen geen etenswaren drank gebruiken; deelnemers mogen niet telefoneren of smssen; deelnemers mogen geen muziek luisteren of ten gehore brengen. Merk op dat: De gewijzigde versie de opsommingsconstructie van RuleSpeak gebruikt om de ware intentie duidelijk te maken. Hierdoor is ook het woord “etc.” vervallen. Let op: Het gebruik van woorden zoals “etc.” duidt vaak op een gebrek aan de juiste woorden om een bepaalde situatie te omschrijven. Eigenlijk is dit een probleem in het vocabulaire.
Copyright, 2009. LibRT B.V.
pagina -16-
6.0 Wendbaarheid in RuleSpeak 6.1 Nevenschikkingen zijn niet goed goed. Regel: Een aflevering moet opgeschort worden als hetzij de betaling niet
ontvangen is of de klant niet goedgekeurd is. Toelichting: Het woord “hetzij” geeft aan dat er precies twee voorwaarden zijn. In de toekomst zouden er echter voorwaarden bij kunnen komen. De structuur van de zin mag geen woord of zinsstructuur bevatten die het toevoegen of verwijderen van voorwaarden compliceert. Gewijzigde Regel: De aflevering van een bestelling moet opgeschort worden als de bestelling aan één van de volgende voorwaarden voldoet: de bestelling is niet vooruitbetaald de klant die de bestelling heeft geplaatst is niet geautoriseerd. Merk op dat: De gewijzigde versie de opsommingsconstructie gebruikt van RuleSpeak om het woord “hetzij” te laten vervallen. Nieuwe voorwaarden kunnen nu eenvoudig toegevoegd worden. Regel: Een geldopname van een rekening mag uitgevoerd worden als de rekening zowel actief is als een positief saldo heeft. Vraag: Kunnen we meer dan twee condities op deze manier samenvoegen9? Gewijzigde Regel: Een geldopname van een rekening mag uitgevoerd worden
als de rekening aan alle volgende voorwaarden voldoet: de rekening is actief; de rekening heeft een positief saldo.
6.2 Drempelwaarden Drempelwaarden in regels zijn vaak niet goed. goed. Regel: De eigen bijdrage van een klant voor een goedgekeurde schade claim moet
berekend worden als 25% van het schadebedrag van de schadeclaim als de totale eigen bijdrage van de klant in het jaar niet hoger is dan € 500. Toelichting: Deze zin bevat de drempelwaarde “€ 500”. Het is te verwachten dat deze drempelwaarde ook gebruikt wordt in andere regels (met dezelfde betekenis). Als de drempelwaarde wijzigt, zouden al deze regels ook gewijzigd moeten worden. Als ze niet allemaal tegerlijkertijd en op dezelfe manier gewijzigd worden hebben we te maken met een inconsequent resultaat.
9
Ja, aan een nevenschikking met zowel ... als ... kunnen met als nieuwe leden worden toegevoegd (bron: taaladvies.net). Toch levert de constructie de suggestie dat er slechts twee mogelijkheden zijn.
Copyright, 2009. LibRT B.V.
pagina -17-
Nieuwe regel: De maximale eigen bijdrage per jaar moet gelijk zijn aan € 500. Gewijzigde versie: De eigen bijdrage van een klant voor een
goedgekeurde schade claim moet berekend worden als 25% van het schadebedrag van de schadeclaim als de totale eigen bijdrage van de klant in het jaar niet hoger is dan de maximale eigen bijdrage per jaar. Merk op dat: De nieuwe regel is toegevoegd om de drempelwaarde € 500 te benoemen als maximale eigen bijdrage per jaar. Nu staat de definitie van de drempelwaarde op zichzelf in een aparte zin. In de gewijzigde versie van de oorspronkelijke regel zien we de nieuwe naam nu in plaats van het bedrag van € 500. Een wijziging van de drempelwaarde (naar € 600, bijvoorbeeld) heeft geen directe impact meer op deze regel. Dat geldt natuurlijk ook voor alle andere regels die gebruik maken van de maximale eigen bijdrage per jaar. Let op: Wees zuinig met het toevoegen van nieuwe woorden – alle woorden moeten ook geaccepteerd en gebruikt worden door de business community.
Copyright, 2009. LibRT B.V.
pagina -18-
7.0 Hergebruik in RuleSpeak 7.1 Samengestelde berekeningen zijn zijn niet goed! Regel: De optelling van alle betaalde bedragen van een bestelling moet groter of
gelijk zijn aan het uitstaande bedrag voor de bestelling. Merk op dat: In deze regel het betaalde bestelbedrag wordt berekend. Het resultaat van deze berekening wordt vervolgens vergeleken met het uitstaande bedrag voor de bestelling. Een berekening, zoals deze, expliciet of impliciet, moet altijd in een aparte regel verwoord worden. Nieuwe regel: Het betaalde bestelbedrag moet berekend worden als de
optelling van alle bedragen die betaald zijn voor de bestelling. Gewijzigde versie: Het betaalde bestelbedrag moet groter of gelijk zijn aan
het uitstaande bedrag voor de bestelling. Merk op dat: Een nieuwe regel is toegevoegd om de berekening te definieren. In RuleSpeak is het resultaat van deze berekening (“betaalde bestelbedrag”) het onderwerp van de zin. De gewijzigde versie bevat niet langer een berekening. In plaats daarvan wordt met de naam gerefereerd aan het resultaat van de berekening. Het resultaat is dat er nu twee regels zijn, terwijl we er eerder één hadden. Het voordeel hiervan is dat: De gewijzigde versie eenvoudiger is dan de originele versie en dus gemakkelijker te begrijpen en te analyseren. De twee regels onafhankelijk van elkaar gewijzigd kunnen worden, wat leidt tot meer wendbaarheid. De berekening ook door andere regels gebruikt kan worden – zij refereren gewoon aan het benoemde resultaat. De berekening als aparte zin is opgenomen en in een proces mogelijk gestandaardiseerd kan worden. Let op: Het volgen van deze methode leidt uiteindelijk tot meer regels. Zorg dat deze effectief beheerd worden.
Copyright, 2009. LibRT B.V.
pagina -19-
7.2 7.2 Samengestelde regels zijn vaak niet goed! Regel: Een klant met een openstaand bedrag van meer dan € 1000 voor iedere
rekening in de afgelopen drie maanden mag geen bestelling plaatsen voor een bedrag van meer dan € 500. Vraag: Hoe belangrijk zijn deze voorwaarden voor de volledige verzameling regels? Komen deze voorwaarden ook in andere regels voor? Zijn we consistent in het toepassen van deze voorwaarden? Kan de business deze voorwaarden benoemen? Nieuwe regel: Een klant moet beschouwd worden als risicovol indien iedere rekening van deze klant in de afgelopen drie maanden een openstaand bedrag van meer dan € 1000 heeft. Nieuwe regel: Een bestelling moet beschouwd worden als een grote bestelling als het bestelbedrag hoger dan € 500 is. Gewijzigde versie: Een risicovolle klant mag geen grote bestelling plaatsen. Toelichting: De twee voorwaarden zijn nu benoemd met nieuwe woorden: respectievelijk “risicovol” en “grote bestelling”. De twee nieuwe regels bevatten de voorwaarden waarmee deze nieuwe concepten af te leiden zijn. De gewijzigde versie van de originele regel bevat de voorwaarden niet meer. In plaats daarvan wordt gerefereerd aan het resultaat van de afleiding op basis van de naam van het nieuwe concept. Het resultaat is dat er nu drie regels zijn, terwijl we er eerder één hadden. Het voordeel hiervan is dat: De gewijzigde versie eenvoudiger is dan de originele versie en dus gemakkelijker is om te begrijpen en te analyseren. De drie regels onafhankelijk van elkaar gewijzigd kunnen worden, wat leidt tot meer wendbaarheid. De afleiding ook door andere regels gebruikt kan worden – zij refereren gewoon aan het benoemde resultaat. De afleiding als aparte zin is opgenomen en in een proces mogelijk gestandaardiseerd kan worden. Let op: Zorg ervoor dat binnen de business community overeenstemming is over de nieuwe woorden en hun standaardisatie.
7.3 Expliciet Expliciet vermelden van processen is vaak niet goed! Regel: Een spel mag niet eindigen als de stand gelijk is. Merk op dat: Het werkwoord “eindigen” in deze zin lijkt te refereren aan het proces “beeindigd worden”. Het op deze wijze verenigen van de regel met het proces maakt de regel minder goed te hergebruiken. Daarom moeten we
Copyright, 2009. LibRT B.V.
pagina -20-
bij het opstellen van regels de status van een ding of proces vermelden, in plaats van het proces zelf. In RuleSpeak wordt de status van iets verwoord door een deelwoord als bijvoegelijk naamwoord te gebruiken. Gewijzigde versie: Een beëindigd spel mag geen gelijke stand hebben. Toelichting: De gewijzigde versie vermeldt twee statussen van een spel: “beëindigd” en “gelijke stand”. Ongeacht welke processen of gebeurtenissen leiden tot deze status zegt de regel dat ze niet gelijktijdig het geval mogen zijn.
Copyright, 2009. LibRT B.V.
pagina -21-
8.0 Events in RuleSpeak
10
8.1 CRUD is niet goed. goed. Toelichting: Het woord “CRUD” staat voor Create, Retrieve, Update, Delete (creëer, haal op, wijzig, verwijder – alle systeemgebeurtenissen) en is een bekend begrip in de database wereld. Ook in het Nederlands wordt de afkorting in deze context gebruikt. De regel hierboven, die het woord “wijzig” bevat, is daarom niet volledig in de woorden van de business beschreven. De regel maakt ook nog eens gebruik van de gebiedende wijs. Regel: Wijzig de produktprijs als de prijs van één van de produktonderdelen wijzigt. Vraag: Welk woord is een geschikt onderwerp voor de regel? Gewijzigde versie: De produktprijs moet berekend worden als de som
van de prijzen van de productonderdelen. Merk op dat: Het onderwerp van een regel die een berekening definieert altijd de naam is van dat wat berekend wordt. In de gewijzigde versie hierboven is de “productprijs” daarom het onderwerp van de regel. Pas op: Wees alert op de verborgen neveneffecten van CRUD-denken bij het opstellen van bedrijfsregels. Vaak wordt onbedoeld de toepassing van de beslislogica beperkt tot één bepaalde gebeurtenis. De originele versie van de regel hierboven, bijvoorbeeld, is beperkt tot de volgende gebeurtenis: Wanneer de prijs van één van de productonderdelen wijzigt. De gewijzigde versie is ook van toepassing op de volgende twee gebeurtenissen: Wanneer een nieuw onderdeel wordt toegevoegd aan de samenstelling van een product. Wanneer een onderdeel wordt verwijderd van de samenstelling van een product. Deze verbreding van het toepassingsgebied kan wel of niet overeenkomen met de intenties vanuit bedrijfsperspectief, en moet in ieder geval zorgvuldig onderzocht worden. (Als het niet juist blijkt te zijn moet de ‘wanneer’ bepaling expliciet toegevoegd worden aan het einde van de zin.) Een ‘wanneer’ bepaling mag niet ‘zomaar’ in een regel staan.
10
Noot van de vertalers: het woord ‘event’ voor ‘gebeurtenis’ is in de context van bedrijfsprocessen in het Nederlandsebedrijfsleven ingeburgerd en daarom niet vertaald in de titel van dit hoofdstuk.
Copyright, 2009. LibRT B.V.
pagina -22-
Regel: Een klant mag niet verwijderd worden uit het systeem als de klant uitstaande bestellingen heeft. Merk op dat: In deze zin de CRUD term in in het woord “verwijderd” zit. Ook dit is geen goed woord in een bedrijfsregel. Vraag: Wat is de werkelijke intentie van de business? Als een klant met uitstaande bestellingen niet verwijderd mag worden, dan mag je wellicht ook geen bestelling plaatsen zonder klant. Het gaat hier waarschijnlijk om het logische gegeven dat je altijd moet weten welke klant bij een bestelling hoort. Gewijzigde versie: Een uitstaande bestelling moet geplaatst zijn door
een klant. Merk op dat: Deze versie niet meer refereert aan het “verwijderen van een klant uit het systeem” gebeurtenis. Verder is deze regel automatisch van toepassing bij zowel het “opvoeren van een bestelling” als het “verwijderen van een klant” (ervan uitgaande dat in beide gevallen de bestelling een uitstaande bestelling is).
8.2 “Wanneer” is vaak niet goed. goed. Regel: Wanneer een bestelling gecreëerd wordt, moet deze een geplande
afleverdatum hebben. … vermoedelijk onderdeel van een procedure! Vraag: Moet deze regel ook nageleefd worden voor andere procedures ? Of als andere business events plaatsvinden? Mogen we, bijvoorbeeld, de geplande afleverdatum later weer verwijderen?
Merk op dat: Zoals de regel is opgeschreven hij alleen van toepassing is op het moment dat een bestelling wordt gecreëerd (een CRUD gebeurtenis). Maar hoe zit het twee seconden later?! Mag iemand (of een systeem) de geplande afleverdatum verwijderen? Waarschijnlijk niet. Gewijzigde Gewijzigde versie: Een bestelling moet een geplande afleverdatum hebben. Toelichting: Deze versie refereert niet naar de gebeurtenis van het “creëren van een bestelling”. Verder is deze regel automatisch van toepassing bij zowel het “opvoeren van een bestelling” als het “verwijderen van een geplande afleverdatum”. Het lijkt ook logisch dat de intentie van de regel over beide gebeurtenissen moet gaan. Deze intentie is in de gewijzigde versie op eenvoudige wijze uitgedrukt.
Copyright, 2009. LibRT B.V.
pagina -23-
Let op: Uit de praktijk blijkt dat de meeste regels relevant zijn voor meerdere verschillende gebeurtenissen. RuleSpeak gaat ervan uit dat een regel toegepast kan worden voor alle relevante gebeurtenissen tenzij een bedrijfsregel expliciet bepaalde gebeurtenissen uitsluit met een “wanneer” bepaling. Regel: Wanneer een adviseur is geselecteerd om een student te adviseren moet de
adviseur een docent zijn in één van de cursussen die de student volgt. Merk op dat: Zoals de regel nu is geschreven, deze alleen van toepassing is op het moment dat een adviseur is geselecteerd om een student te adviseren, en niet daarna. Vraag: Wat is de werkelijke intentie achter deze regel? Moet deze regel ook nageleefd worden voor andere procedures? Of als andere business events plaatsvinden? Wat als de enige cursus die de adviseur geeft en die de student volgde is afgeschaft? Gewijzigde versie: De adviseur die een student van advies voorziet moet
docent zijn in een cursus die de student volgt. Merk op dat: Deze versie zonder “wanneer” uitgaat van een relatie11 tussen de student en de adviseur die voortduurt in de tijd. De intentie van de business moet zorgvuldig onderzocht worden om te bekijken of deze aanname juist is. Als het niet juist blijkt te zijn moet de ‘wanneer’ bepaling expliciet toegevoegd worden aan het einde van de zin Gewijzigde versie: De adviseur die een student van advies voorziet
moet docent zijn in een cursus die de student volgt, wanneer een adviseur wordt geselecteerd om een student te adviseren. Pas op: Onthoud dat “wanneer” in RuleSpeak betekent “alleen op het moment dat de gebeurtenis plaatsvindt” .
11
In de strikt professionele zin natuurlijk
Copyright, 2009. LibRT B.V.
pagina -24-