Een beslissingstabel is een raster met voorwaarden op de ene as en de actie per combinatie op de andere. Elke rij leest als een zin: als de bestelling boven 500 euro ligt en de klant is nieuw, markeer hem dan voor controle. Het maakt van een hoop verspreide regels één plek die je van boven naar beneden kunt lezen.
Stel je een kortingsbordje in een winkel voor: leden krijgen 10 procent, leden die meer dan 100 euro besteden 15 procent, de rest betaalt de volle prijs. Als tabel is elk geval een rij en hoef je niet te gissen welke regel geldt. Die helderheid is het hele punt. Een beslissingstabel vangt dezelfde logica als voorwaardelijke logica, maar in een vorm die een niet-programmeur kan controleren. Daarom past hij goed bij een regel-engine die de tabel automatisch draait.
De grote winst zit in onderhoud. Verandert een regel, dan pas je één cel aan in plaats van door code te speuren, en je ziet meteen waar een combinatie nog geen actie heeft. Door elk geval als rij neer te zetten springen tegenstrijdigheden er ook uit, zoals twee rijen die op dezelfde situatie passen maar het tegenovergestelde eisen.
Er zit wel een grens aan. Bij veel voorwaarden kan het aantal rijen exploderen, dus een tabel werkt het best als de invoer beperkt en helder is. Voor diep geneste logica met tientallen variabelen blijft een bedrijfsregel verdeeld over kleinere tabellen meestal beter leesbaar dan één gigantisch raster.
Bij TopDevs gebruiken we beslissingstabellen zodat het team van een klant zelf de regels kan lezen en bijstellen die hun automatiseringen aansturen, in plaats van voor elke kleine beleidswijziging een developer nodig te hebben.