Pre zložité výpočty závislé od mnohých premenných je vhodné využiť tzv. „pravidlové systémy“. Namiesto zadania explicitného algoritmu pre výpočet, ktorý sa môže v čase dynamicky meniť, sa definuje súbor pravidiel výpočtu výsledku na základe vstupných parametrov. Pravidlové systémy sú vhodné na výpočet sadzieb a poplatkov, odhaľovanie podvodov, hodnotenie správania zákazníkov alebo na určovanie výšky poskytovaných zliav, prémií alebo provízií a ich rôznych kombinácií so zohľadnením rôznych skupín zákazníkov alebo používateľov ako aj ďalších obmedzení. Pre prevádzkovateľov systému s príslušnými podnikovými vedomosťami je správa takýchto pravidiel jednoduchá a intuitívna, pričom nevyžaduje znalosť používaných algoritmov ani žiadne programátorské zručnosti. Nedávno aj naša spoločnosť začala úspešne používať pravidlové systémy na riadenie zložitých pracovných postupov spojených s užívateľskými rozhraniami.
Pravidlové systémy
Výnimky sú pravidlom v podnikovom softvéri. Zvlášť zvykom vyvinuté časti, špecifické pre firmu, majú tendenciu byť plné výrazov IF-THEN (AK-TAK), často nakombinované do komplikovaných konštrukcií. Takýto softvér – často nazývaný „podniková logika“ – je úzko prepojený s podmienkami a vnútornými pracoviskami podniku, niekedy špecifikujúci procesy, ktoré by navonok pôsobili úplne svojvoľne. Zároveň je však dôležitou časťou infraštruktúry dnešného podniku: chyby v ňom môžu spôsobiť zníženie produkcie, stratu dobrej poveste zákazníka, jeho tržieb alebo aj právnej zodpovednosti. Podniková logika je často rozdrobená pomedzi viacero vrstiev, komponentov alebo aj odlišných softvérových systémov. Výsledok: zmeny v podnikovej logike bývajú náročné, riskantné a pomalé. Ako sa vedomosť vložená do softvéru stáva „zriedenou“ (ľudia sa menia, noví ľudia nie sú v kontexte, atď.), situácia sa môže časom zhoršovať. Softvér podnikovej logiky môže obmedziť firemnú aktivitu na trhu, keďže potrebné zmeny sa stávajú príliš nákladnými. Pravidlové systémy predstavujú výrazný posun v riešení týchto nepríjemných problémov.
Dvoma základnými konceptmi v úvahách založených na pravidlách sú fakty a pravidlá. Fakty sú jednotlivé kúsky informácií podstatné pre oblasť podnikania. Tieto sa môžu líšiť od veľmi jednoduchých až po celkom komplexné: fakt môže pozostávať z objednávky tovaru alebo poistnej zmluvy alebo aj z kompletného záznamu pacienta zozbieraného v priebehu rokov. Pravidlá sú známe IF-THEN (AK-TAK) výroky definujúce úkony, ktoré by mal IT systém vykonať, keď sa určité fakty stanú známymi. Každé pravidlo pozostáva z filtra, identifikujúceho na ktoré fakty alebo kombináciu faktov by malo pravidlo reagovať (ľavá strana) a z príkazov špecifikujúcich čo sa má stať (pravá strana). Napríklad pravidlo môže hovoriť, „AK je celkový obsah košíka aspoň v hodnote 100,00 €, TAK ho označ na 5% zľavu.“
Čo odlišuje pravidlá od obyčajných počítačových programov je spôsob ich spracovania. Pravidlá sú interpretované špeciálnym programom nazývaným pravidlový motor. Pravidlový motor uchováva všetky pravidlá (tzv. pravidlová báza) v pracovnej pamäti. Keď klient (vonkajší program) vloží fakt do pracovnej pamäte, pravidlový motor sa ho snaží porovnať s ľavými stranami všetkých pravidiel. Ak nájde vhodné pravidlo, vykoná úkony špecifikované na pravej strane. Toto môže ovplyvniť pracovnú pamäť – pridávanie, zmena a odstraňovanie faktov – ktorá spúšťa ďalšie kolo porovnávania. Jeden fakt tak môže spustiť vodopád, ktorý by bolo ťažké popísať v konvenčnom programe, ale ktorý sa veľmi prirodzene vykonáva v pravidlovom motore (predstavte si hromadu kamienkov prenastavujúcich sa, keď sa pridá nový kamienok).
Zdôvodňovanie založené na pravidlách umožňuje špecifikovať pomerne komplexné správania pomocou použitia jednoduchých stavebných blokov. Pravidlá je vo všeobecnosti ľahké vybrať z dokumentácie procesu alebo z rozhovorov s podnikovými expertmi; odpovedajú priamejšie na plynulé know-how v organizácii ako napríklad sekvenčné popisy algoritmov. Následnej je ľahšie ich vysvetliť ľuďom bez IT vzdelania. Čo je možno ešte dôležitejšie, sklad pravidiel potenciálne izoluje a uzatvára podnikovú logiku do dobre definovanej bázy poznatkov (toto závisí od toho, ako dobre sa integruje pravidlový motor so svojím klientskym prostredím).
Samozrejme napísanie pravidlovej bázy má svoje úskalia a vyžaduje určitý stupeň odbornosti. Byť expertom v oblasti podnikového jadra spoločnosti určite nie je dostatočné na zručné písanie pravidiel. Zaujímavé je, že to isté platí aj pre programátorskú odbornosť. Ľudia, ktorí sú zvyknutí na takzvané „imperatívne programovanie“ sa musia prispôsobiť na iný spôsob členenia problémov, čo môže zahŕňať odúčanie sa od niektorých veľmi silných zvykov. Aj základné otázky ako odhad správnej granularity faktov alebo rozhodovanie, ktoré procesy by mali byť implementované ako pravidlové skupiny vs. ktoré majú byť ponechané ako procedurálne programy sú netriviálne otázky, ktoré je najlepšie riešiť so skúsenosťami alebo s pomocou podnikovo - pravidlového analytika. Ďalším problémom je, že implementácia pravidlového systému väčšinou odhaľuje mnoho nezrovnalostí aj v myslení oborových expertov, spôsobuje vynorenie ďalších pravidiel, výnimiek a špeciálnych prípadov. V dlhodobom horizonte to je pre organizáciu prospešné, ale komplikuje to zavedenie pravidlových systémov do IT infraštruktúry.
Pravidlové systémy, ako každý nástroj, sú užitočné v niektorých súvislostiach a menej užitočné v iných. Avšak ak sú vhodne rozvíjané, majú silnú schopnosť premeniť uhol pohľadu IT na dôležité problémové oblasti v podniku a meniť ich z nevýhod na prínosy.