Modelowanie decyzji za pomocą notacji DMN – część druga
Tablice decyzyjne
Diagramy DMN tworzone na poziomie Wymagań Decyzyjnych mają charakter analityczny i definiując logikę decyzyjną można posługiwać się językiem naturalnym. Nie jest to bowiem poziom wykonywalny. Na poziomie drugim (Logiki Decyzyjnej) nie ma już żartów, to już jest poziom wykonywalny, a więc wymaga nie tylko zgodności z poziomem pierwszym, ale przede wszystkim precyzyjnej semantyki.
Wyobraźmy sobie sytuację, że jakiś sklep internetowy chce wprowadzić nową politykę sprzedaży, która sprowadza się do zastosowania następujących trzech zasad:
- Osoby dorosłe, które są stanu wolnego otrzymują upust w wysokości 10%
- Osoby w związku małżeńskim otrzymują upust w wysokości 20%
- Osoby posiadające dzieci otrzymują upust w wysokości 30%
Według powyższego opisu decyzja o przyznaniu upustu zależy od trzech czynników wejściowych:
- Wiek (dziecko/osoba pełnoletnia)
- Stan cywilny (wolny/zajęty)
- Status rodzicielski(brak potomstwa/potomstwo)
Spróbujmy zatem na podstawie powyższych reguł stworzyć tablicę decyzyjną.
Tak zdefiniowana tablica decyzyjna jest niestety niekompletna, a niektóre reguły nakładają się na siebie powodując ich wieloznaczność. Można przykładowo zidentyfikować takie problemy, jak:
- Kombinacja {(Wiek = dziecko), (Stan cywilny = wolny), (Status rodzicielski = brak potomstwa)} jest niepokryta żadną regułą decyzyjną, a więc tablica jest niekompletna
- Przypuśćmy, że z naszego sklepu skorzystać będzie chciała osoba pełnoletnia stanu wolnego i posiadająca dzieci {(Wiek = osoba pełnoletnia), (Stan cywilny = wolny), (Status rodzicielski = potomstwo)}. Taka osoba spełnia regułę 1 i 3. Mamy więc na wyjściu wieloznaczność i nie wiemy czy przyznać 10% upustu, czy 30%.
- Podobnie mamy problem dla dorosłego klienta pozostającego w związku i posiadającego potomstwo {(Wiek = osoba pełnoletnia), (Stan cywilny = zajęty), (Status rodzicielski = potomstwo)}. Dać takiemu 20% upustu (wg reguły 2), czy może 30% (wg reguły 3)?
Od drzewa decyzyjnego do tablicy decyzyjnej
Tablica decyzyjna jest odpowiednikiem grafu decyzyjnego (i odwrotnie). Spróbujmy w notacji BPMN narysować drzewo decyzyjne będące odzwierciedleniem reguł decyzyjnych.
Drzewa decyzyjne można z łatwością przekształcić w tablice decyzyjne. Każda gałąź drzewa decyzyjnego jest zamieniana na odnośny wiersz w tablicy decyzyjnej jak to przedstawiono poniżej:
Taka tablica jest kompletna i nie posiada nakładających się na siebie reguł.
Model decyzyjny w praktyce
Wszystkie diagramy zamieszczone w niniejszym artykule powstały z wykorzystaniem narzędzi „Signavio Process Editor” i „Signavio Decision Manager”. Platforma Signavio jest to webowe rozwiązanie klasy „Business Process Analysis-as-a-Service”. Poprzez przeglądarkę internetową możemy modelować procesy biznesowe i tworzyć transparentny model decyzji zgodny ze standardami BPMN 2.0 i DMN 1.1. I najważniejsza rzecz. To działa! I to jak!
Dlaczego zachwycam się, że coś działa? Przy jednym z projektów musiałem pracować z narzędziem ARIS Cloud. Mówiąc bardzo dyplomatycznie nie było to przeżycie zbyt budujące i można się po pracy z ARIS Cloud zrazić do produktów pracujących w oparciu o technologię chmury. W porównaniu do „zwykłego” ARISa nie jest to niestety krok naprzód. Oczywiście nie chcę tu przekreślać tego narzędzia, bo intensywnie się ono rozwija, ale praca z Signavio jest o wiele bardziej komfortowa, niż z ARIS Cloud, co każdy może sprawdzić, bo oba rozwiązania posiadają 30 dniowe wersje typu „trial”.
I ARIS i Signavio w wersji trial nie tylko umożliwiają zapoznanie się z narzędziami, ale także dostarczają szereg przykładowych diagramów pozwalających na szybsze poznanie tajników modelowania procesów i decyzji. W celu pokazania jak w praktyce działają tablice decyzyjne, posłużę się procesem „Receipt of Application” z projektu demonstracyjnego Signavio. Proces biznesowy zilustrowany poniższym diagramem przebiega w przybliżeniu tak:
Po otrzymaniu od kandydata na pracownika podania o pracę (Application) jest ono analizowane na przykład pod kątem:
- Wiedzy technicznej (Technical knowledge)
- Umiejętności „miękkich” (Soft Skills)
- Znajomości języków obcych (Foreign language)
- Doświadczenia w pracy za granicą (Abroad experience)
W zależności od wyników oceny kandydata albo jest on dopuszczony do dalszego procesu rekrutacji, albo podanie o pracę jest odrzucone.
Zadanie „Applicant verified” jest typu „Reguła biznesowa”. Po kliknięciu na ikonę reguły biznesowej (zaznaczona czerwonym kółkiem na poniższej ilustracji) rozwija nam się model podejmowania decyzji, w tym wypadku Diagram Wymagań Decyzyjnych (DRD – Decision Requirements Diagram).
Przyjrzyjmy się bliżej diagramowi DRD.
Jak widzimy zgodnie z regułą „dziel i rządź” decyzja o zaproszeniu na rozmowę kwalifikacyjną została zdekomponowana na szereg decyzji podrzędnych. Sprawdzane są umiejętności techniczne kandydata i za tę część procesu decyzyjnego odpowiedzialny jest Kierownik Rozwoju. Kierownik Kadr zaś jest odpowiedzialny za ocenienie umiejętności kandydata z obszaru marketingu. Następnie dokonywana jest ocena łączna umiejętności kandydata i na tej podstawie podejmowana decyzja o jego dalszych losach. Wygląda to tak jak na poniższych ekranach:
Do decyzji “Evaluate technical skills” podczepiona jest odnośna tablica decyzyjna.
W zależności od umiejętności kandydat dostaje ustaloną liczbę punktów. Jak z powyższej tabeli wynika, za nieznajomość języka angielskiego otrzymuje minus 15 punktów. Warto o tym pamiętać podejmując decyzję jakich języków obcych chcemy się uczyć ;-)
W kolejnym kroku sprawdzane są umiejętność kandydata powiązane z szeroko rozumianym marketingiem.
I tu niespodzianka. Znajomość języka niemieckiego jest obowiązkowa! Jeżeli kandydat nie włada językiem Goethego i Schillera, dostaje minus 100 punktów!
Teraz robione jest podsumowanie umiejętności kandydata.
Żeby zostać zaakceptowanym, kandydat musi uzyskać przynajmniej 80 punktów z obszaru marketingu i 20 z obszaru umiejętności technicznych.
I wreszcie wypracowywana jest decyzja końcowa. Jeżeli kandydat osiągnął akceptowalną liczbę punktów, a jego podanie o pracę jest kompletne, jest godzien, aby zaprosić go na rozmowę kwalifikacyjną. Czego wszystkim starającym się o pracę życzę!