O regułach biznesowych już nie raz tu napisałem, między innymi to, że
Regułą biznesową jest ograniczenie specyficzne dla danej organizacji, zdefiniowane dla całego jej obszaru funkcjonowania. (Reguły biznesowe ? czym są?).
Jednym z punktów Business Rules Manifesto jest bardzo ważny zapis: „Reguły nie są procesami ani procedurami”, o którym także już wspominałem, a wielu modelujących procesy zapomina o tym. Dzięki tej „zasadzie”, modele (diagramy) procesów stają się prostsze i przyswajalne. Przyszła kolej na kolejne ważne „uproszczenie”.
Tablice decyzyjne
Cóż to takiego?
Tablice decyzyjne stanowią, jedną z podstawowych technik stosowanych w rozwiązywaniu problemów i podejmowaniu decyzji. Dzięki tablicom decyzyjnym można w zwięzły sposób określić, przy spełnieniu z góry określonych warunków, jakie czynności należy podjąć. Tablica decyzyjna jest określoną strukturą opisu zbioru związanych ze sobą reguł decyzyjnych. (Tablica decyzyjna ? Encyklopedia Zarządzania).
Z perspektywy „matematyki” warto wiedzieć, że tablice decyzyjne to łatwa droga do uproszczenia opisów logiki zachowań systemu:
Decision tables are a precise yet compact way to model complicated logic. (Decision table – Wikipedia, the free encyclopedia).
I bardzo ważne: reguła decyzyjna to nie reguła biznesowa. Ale najpierw prosty przykład:
Tablica decyzyjna składa się z:
- Listy elementarnych warunków (testów).
- Listy elementarnych, możliwych do podjęcia działań.
- Tablicy testów – reguły decyzyjne.
- Tablicy działań – zachowania w odpowiedzi na spełnione reguły.
Reguły muszą się wzajemnie wykluczać (jeżeli dopuszczamy jednoczesne zapalenie się świateł żółtego i czerwonego jest to kolejna, czwarta reguła czyli czwarte interpretowane zdarzenie). Wystąpienie sytuacji spełniającej reguły, to zdarzenia.
Warto zwrócić uwagę na fakt, że kombinacji trzech kolorów jest więcej, „obsługujemy” (reagujemy na) jednak jedynie część z nich. Ogólna zasada jest taka, że kombinacje nieudokumentowane są ignorowane, jednak w warunkach np. biznesowych, chronimy się nie raz przez bezczynnością ustanawiając np. regułę, „jeżeli żadne z tych to…” (albo tworzymy tak zwana tablice zupełną). Często jednak dopuszczamy „brak działania”, bo gdy na skrzyżowaniu zapalą się jednocześnie światło zielone i czerwone, raczej zignorujemy taki sygnał traktując go jako awarię systemu.
Powyższy przykład to zestaw dozwolonych zachowań na skrzyżowaniu o ruchu kierowanym sygnalizacją świetlną. Przykład prosty ale proszę sobie wyobrazić, że widuję modele procesów biznesowych, na których podobne „reguły” są modelowane z pomocą bramek decyzyjnych i przepływów. Nie podejmę się tu nawet narysowania tego jako przykładu, zdaję się na Państwa wyobraźnię :).
Tak więc, reguły biznesowe to ogólno-organizacyjne ograniczenia. Tablice decyzyjne to rodzaj „wiedzy” wpisanej w punkty podejmowania decyzji. Na modelach (diagramach) procesów biznesowych modelujemy jedynie skutki, czyli reakcje na podjęte – zgodnie z tablicą – decyzje.
Użycie opisanej tablicy na diagramie np. BPMN, polegało by na użyciu bramki XOR z czterema wyjściami, każde wyjście reprezentował by wiersz Działań. Jak widać spodziewać się należy tu bramek XOR (alternatywa wyłączna) lub OR (alternatywa „zwykła”). Na diagramach BPMN za bramką byłyby czynności nazwane tak jak działania w wierszach. Aby nie komplikować nazewnictwa tych diagramów, tablica decyzyjna użyta z diagramem BPMN miała by wiersze Działań nazwane np. odpowiednio Wariant-1, Wariant-2 itd. a czynności były by umieszczone już na diagramie.
Tego typu tablice doskonale nadają się do modelowania systemów rabatowych, lojalnościowych, wartości kredytów kupieckich, wag scoringu kredytów i wielu innych, w których kombinacje skończonej liczby czynników tworzą deterministyczną, skończoną liczbę dopuszczalnych zachowań. Na diagramie procesu powołujemy się wyłącznie na nazwę tablicy (np. kojarząc ją z konkretną czynnością) zamiast modelować skomplikowane przebiegi. Dlaczego? Bo warto pamiętać, że
decyzja – nawet bardzo skomplikowana – nie jest procesem a zaistniałym faktem, odpowiedzią na zastane warunki
Jak widać, reakcja kierowcy na sygnalizator, to nie proces a fakt. Jest to konkretna reakcja na konkretną kombinację kolorów świateł na sygnalizatorze.
W przypadku analizy wymagań, stosowanie tablic decyzyjnych, jako narzędzia specyfikowania pewnych zachowań systemu, jest bardzo wygodne bo po pierwsze: jest jednoznaczne, po drugie tablice decyzyjne to już standardowe narzędzie w inżynierii oprogramowania i nie trzeba wymyślać ich implementacji (stosuje się np. maszynę stanową: reguły to zdarzenia a działania do przejścia). Tablice te jednak, by je poprawnie tworzyć, wymagają wnikliwej analizy i wiedzy z zakresu logiki. Zapewne jeszcze o nich tu napiszę.
(warto mieć narzędzie CASE wspierające budowanie tablic decyzyjnych i kojarzenie ich z modelami procesów czy modelami dziedziny, pakiet Visual-Paradigm ma takie narzędzie)
(na podstawie: Solomon L. Pollack, Harry T. Hicks, Jr, William J. Harrison: Tablice decyzyjne, PWN Warszawa 1975, oraz: Tablice decyzyjne | | Jarosław Żeliński IT-Consulting)
Jarku, prezentujesz tutaj jeden punkt widzenia oparty na kilku założeniach. Upraszczanie zawsze było mi bliskie, jednak takie podejście ma też swoje ograniczenia. Można je stosować do niezbyt skomplikowanych systemów, w których – jak sam napisałeś – skończona liczba czynników umożliwia przygotowanie wspomnianej tablicy decyzyjnej. Dodam jeszcze, że przydatne to jest w przypadku systemów o charakterze „technicznym”, w których tzw. „czynnik ludzki” nie odgrywa istotnej, bądź nawet żadnej roli.
Zmodyfikowałbym natomiast definicję, w której mowa o tym, że 9cytuję): „Tablice decyzyjne stanowią, jedną z podstawowych technik stosowanych w rozwiązywaniu problemów i podejmowaniu decyzji.” Usunąłbym z niej słowo „podstawowych”. To jedynie interpretacja autora tej „definicji”.
Pozdrawiam
Oczywiście, że tablice te „ignorują” człowieka bo ich celem jest automatyzacja (uzyskanie 100% powtarzalności odpowiedzi na znane bodźce). Co do ograniczenia stopnia komplikacji to nie sądzę 🙂 by takie było bo każda tablica jest skończona. Ograniczeniem jest w moich oczach jest to, że nie zawsze jest sens zastępowania człowieka taką „tablicą”, gdyż koszt jej opracowania może wielokrotnie przewyższać koszt osoby z niezbędnym doświadczeniem a nawet może nie być to możliwe (nie tylko w sporcie pozostaną jednak sędziowie).
Racje masz na pewno, zgadzam się, pisząc że to sposób techniczny, w którym rola człowieka jest zerowa. Moim zdaniem taki jest właśnie cel stosowania takich tablic, mój przykład ze światłami na skrzyżowaniu to nic innego jak uniemożliwienie, wręcz zakazanie człowiekowi, podejmowania uznaniowych decyzji o bezpieczeństwie przejechania przez skrzyżowanie. System scoringowy, to tablica decyzyjna, ma nie tylko za zadanie zautomatyzować proces udzielania kredytów ale także wyeliminować czynnik ludzki podatny na nadużycia 🙂 (arbitralne udzielanie kredytów za korzyści majątkowe, bliskim itp.).
Tak więc faktycznie tablice decyzyjne to mechanizacja ale taka jest, tak to postrzegam ja i nie tylko, rola. Czy to „podstawowy” sposób? Hm… myślę, że jeden z podstawowych, tak w dużym stopniu działa także ludzki mózg 🙂 (zbieranie doświadczenia to kolekcjonowanie par: bodziec – skutek o największym prawdopodobieństwie wystąpienia). Zwróć także uwagę, że tablica jaką opisałem, nie tłumaczy dlaczego akurat zielone znaczy jechać, ustala, tylko, że zielony. Rzecz w tym, by w dużym ruchu kierowca nie musiał analizować sytuacji wokół siebie, a zareagował jak „małpa” nie poświęcając na tę decyzje czasu i nie wymuszając pierwszeństwa.
Przykład z sygnalizacją świetlną i zakazywaniem człowiekowi podejmowania uznaniowych decyzji jest o tyle ciekawy, że – no właśnie: sygnalizacja świetlna okazuje się zbędna. Eksperyment „share space”, który wymyślił holenderski ekspert ruchu drogowego Hans Monderman pokazuje, że pozostawienie człowiekowi możliwości podejmowania decyzji przy zredukowanych do minimum (do dwóch) zasadach, daje efekt w postaci znaczącego zmniejszenia liczby wypadków.
Przykład ten pokazuje, że automatyzacja nie jest panaceum na wszelkie problemy, nawet tam, gdzie da się ją zastosować.
Wracając do głównego wątku: myślę, że to kwestia odpowiedniej definicji: co jest, a co nie jest procesem, czy procedurą, oraz w jakim przypadku tablice decyzyjne się sprawdzą.
Pozdrawiam
Masz rację, automatyzacja nie jest panaceum, co do eksperymentu, potwierdza on jedynie, że sprowadzenie decyzji do alternaty „rozwiązuje problem” (nie pamiętam gdzie to czytałem). Moim zdaniem tablica decyzyjna nie zastąpi człowieka. Ja 'polecam ją’ tam, gdzie dopuszczamy bezduszne decyzje dlatego że są szybkie i tanie lub gdzie chroni ona (bezduszność) innych przed „nadmiarem duszy” człowieka (nadużycia). Prezes firmy ma dwa wyjścia: zatrudnić do podejmowania decyzji kogoś mądrego lub przejąc część na siebie a resztę zlecić automatowi. Obie wersje znajdują zastosowanie. Dlatego kredyty powyżej pewnej wysokości przekazywane są do negocjacji ludziom :).
Moim zdaniem na pewno masz rację pisząc, że zawsze decyzje o użyciu tablic decyzyjnych powinny być decyzją człowieka 🙂
Tak przeczytałem ten wpis i zacząłem się zastanawiać nad relacją między tablicą decyzyjną, regułami decyzyjnymi a regułą biznesową. Jakiś czas temu napisałem na swoim blogu wpis: http://modelowanie.wordpress.com/2012/07/16/zadanie-regula-biznesowa/ i teraz zacząłem się nad tym zastanawiamć. Kiedy jeszcze DMN można byłoby wykorzystać do reprezentacji tablicy. Ale równocześnie jest to element realizacji reguły biznesowej. Może warto w kontekście powyższego przykładu podać przykład reguły biznesowej?
Przede wszystkim reguły biznesowe są ogólnofirmowe, np. „każda faktura kosztowa musi być poprzedzona wnioskiem zakupowym”. Reguły biznesowe to „prawo organizacji”. System upustów dla klientów czy wysokości (scoring) przydzielanych kredytów to tablice decyzyjne podobnie jak przykład z sygnalizacją świetlną. Innymi słowy reguły biznesowe stwarzają w organizacji ograniczenia, tablice decyzyjne automatyzują podejmowanie konkretnych decyzji w konkretnych warunkach. Granica jest „cienka” ale jest w moich oczach jednoznaczna. Co do DMN to jest to „procesowe” podejście do podejmowania decyzji: tu decyzja jest efektem serii kroków. Jest to raczej model (ścieżka) wnioskowania a nie „podejmowania decyzji”. Decyzja o tym czy jechać na skrzyżowaniu podejmowana jest „w momencie” zmiany kombinacji świateł, jest zaistniałym faktem. Ocena tego z jaka prędkością jechać w warunkach pogorszenia warunków może być procesem podejmowania decyzji: 1. Jaka mamy temperaturę? Poniżej zera. 2. Czy są opady? Tak. 3. Czy posypano solą? Nie -> jadę nie więcej niż 30km/h. To samo można osiągnąć z pomocą tablicy decyzyjnej zawierającej wszystkie, możliwe, sytuacje pogodowe (Warunki czyli przedziały temperatur, sypią nie sypią, pada nie pada itp.). Moim zdaniem tablica decyzyjna spokojnie może zastąpić drzewo decyzyjne czy DMN, może być (jako macierz) bardzo złożona to może być powodem wyboru innej metody podejmowania decyzji. Jednak w przypadku projektowania oprogramowania (komputer szybko liczy ;)), to ograniczenie jak by staje się słabe.
W związku z tym, przykład z wyborem zwrotu do osoby:
Płeć: mężczyzna ? powitanie: Pan;
Płeć: kobieta oraz Stan: mężatka ? powitanie: Pani;
Płeć: kobieta oraz Stan: wolny ? powitanie: Panna;
to decyzja (materiał na tablicę) a nie reguła biznesowa. Regułą biznesową było by raczej: „zawsze w listach adresowanych do osoby należy jej imię i nazwisko poprzedzać właściwym zwrotem grzecznościowym”, powyższe zaś to system podejmowania decyzji o tym, jaki to powinien być zwrot. jest to o tyle istotne, że ta reguła biznesowa w niezmienionym brzmieniu będzie obowiązywała np. wszystkie oddziały w innych krajach, ale tablica decyzyjna będzie inna dla każdego kraju (a konkretnie każdego języka).