Drzewko decyzyjne w prezencie

Ostatnie tygodnie to okres szału zakupowego oraz przygotowań do świąt. Wielu z nas szuka prezentów dla najbliższych, znajomych, w ramach akcji społecznych czy czasami też dla siebie. Jedni poszukiwania prezentów zaczynają bardzo wcześnie (nie będę wskazywać kiedy, bo pewnie się znajdą tacy, u których podany termin wywoła emocje) a niektórzy zostawiają to na ostatnią chwilę (tydzień, dzień czy nawet godziny przed momentem wręczenia). Jednych prezenty są symboliczne a innych dość pokaźne. Jedni wydadzą fortunę a inni postawią na ręcznie przygotowywane prezenty. Wszystko zależy od dostępnego czasu, funduszy, pomysłu, poznanych lub nie potrzeb odbiorcy, podejścia danej osoby lub przyjętych zasad w danej grupie, rodzinie. Przypomina mi się przygotowywanie prezentów w szkole podstawowej podczas jednej z akcji – założeniem było, że prezent ma być wykonany ręcznie. Ile to powodowało kombinacji… I pewnie tak jest też w przypadku przygotowywania prezentów w dorosłym życiu.

Moim zdaniem podczas przygotowywania prezentów odpowiadamy sobie na następujące pytania (może trochę nieświadomie, ponieważ nasz sposób postępowania wynika z pewnego podejścia i możemy zawsze postępować w określony sposób lub się nad tym nie zastanawiać):

  1. Zamówić gotowy produkt czy przygotować prezent samodzielnie?
  2. Zamówić w okolice domu czy na miejsce, gdzie będziemy dawać prezent (o ile jest taka możliwość)?
  3. Zamówić do punktu odbioru czy bezpośrednio do domu?
  4. Opłacić przy zamówieniu czy dopiero przy odbiorze (o ile jest taka możliwość)
  5. Zamówić kurierem , pocztą czy zdecydować się na odbiór osobisty?
  6. Rozpocząć poszukiwania z wyprzedzeniem czy zostawić to na ostatnią chwilę
  7. Zamówić prezent samodzielnie czy wspólnie z innymi (tzw. „zrzuta”)?
  8. Jaką kwotę przeznaczyć na prezent?

Odpowiedzi na niektóre pytania z powyższych, wykluczają pojawienie się innych pytań. Z kolei pewne pytania wspólnie tworzą pewien zestaw wariantów. Np. Odpowiadając na pytanie (1), że wykonujemy prezent samodzielnie, możemy dodatkowo zastanowić się nad budżetem (8), aby określić ile chcemy przeznaczyć na elementy składowe. Możemy także zastanawiać się nad tym jak dostarczyć prezent do miejsca, gdzie zostanie wręczony. Pytanie o budżet czy moment zakupu w sumie występuje na każdym etapie „zastanawiania się”. Czasami kupujemy bo akurat jest promocja z tytułu black week/friday. A czasami czekamy na przypływ gotówki, ale mimo wszystko planujemy zakup prezentów uwzględniając dostępny czas, przyszły budżet oraz pomysły na prezenty.

zakupy_drzewko_decyzyjne_450px

Układając pytania w odpowiedniej kolejności możemy zbudować „prezentowe” drzewko decyzyjne (ang. decision tree). Czyli zidentyfikowaliśmy pytania, następnie je układamy w kolejności oraz budujemy zależności między nimi. Przykładowe drzewko bazujące na mojej propozycji ułożenia pytań jest przedstawione na powyższym diagramie. Można te pytania ułożyć także w innej kolejności. Można niektóre pominąć lub umieścić „wyżej” lub „niżej” w drzewku. Na szaro są zaznaczone liście (elementy końcowe, ang. leaf node) czyli określone akcje związane z przygotowaniem prezentu. Natomiast na biało miejsca rozgałęzienia (ang. splitting nodes), czyli punkty decyzji/pytania/testu wraz ze wskazaniem numeru pytania, do którego się odnoszą.

Drzewka decyzyjne pokazywałem także w kontekście wyborów, wyboru dostawcy czy scenariuszy dla grup na mistrzostwach.  Powyższe „podejmowanie decyzji” trochę mi przypomina planowanie działań uwzględniając co chcemy kupić (zaczniemy pewnie wcześniej) lub/i do kiedy musimy kupić (zrobimy to tak, aby się wyrobić, nawet rezygnując lub zmieniając wcześniejszy pomysł). Równocześnie mamy ograniczenie w postaci budżetu – co nas sprowadza to trójkąta projektowego (budżet, czas, zakres) lub rodzajów planowania stosowanych w technikach zwinnych.

Tymczasem pozostaje mi życzyć udanych i tafionych zakupów (niech Wasze drzewka będą pomocne), Wesołych Świąt i udanych wypieków o ile się ich podejmujecie.

Wyborcze drzewka decyzyjne

W trakcie ostatnich wyborów samorządowych miałem okazję głosować w większym mieście, co oznaczało, że otrzymałem 3 karty do głosowania: na prezydenta miasta, do rady miasta i do sejmiku wojewódzkiego. Oznaczmy te karty jako KP, KR oraz KS. Wrzucając wypełnione karty do urny, podobnie jak pozostali głosujący, spowodowałem, że w urnie znalazły się karty do głosowania, które miały zadecydować nie tylko o prezydencie miasta, ale także o składzie rady i sejmiku. Z punktu widzenia całości głosowania, po zamknięciu dnia interesujące są pytania:

  • ile głosów jest ważnych, a ile nieważnych?
  • ile głosów zostało oddanych na poszczególne partie (nazwijmy jest A, B, …., Z) w ramach poszczególnych kart (KP, KR, KS)?
  • ile głosów otrzymali poszczególni kandydaci z danej partii (A1, A2…, Z1, Z2,…ZN) lub poszczególni kandydaci z karty KP (KP1, KP2….KPN)?

Poniższy diagram pokazuje drzewko decyzyjne do zliczania głosów – przydział danej karty do odpowiedniego grupy. Zastosowano pewne uproszczenia. Oznaczenia „(…)” wskazują, że pominięto pewne elementy (w szczególności jeżeli są analogiczne jak już zaprezentowane).

glosy450

Opierając się na tym drzewku, można powiedzieć, że podział na głosy ważne i nieważne wykonywany jest ręcznie, podobnie podział kart na ich typy (KP, KR, KS). Pozostałe elementy mogą już być określane, dzielone przez aplikację, zakładając, że dane osoby wprowadzają karty danego typu do aplikacji, a inne osoby karty osobnego typu. Można byłoby też to wprowadzać, na zasadzie, najpierw wybierać rodzaj głosowania, a potem dopiero wskazywać poszczególne elementy wymagane przez aplikację.

Najszybciej znana jest odpowiedź na liczbę ważnych kart. A potem na liczbę poprawnie wypełnionych głosów w ramach poszczególnych rodzajów głosowania (KP, KR, KS). Liczby te są później używane do określenia poszczególnych udziałów liczby głosów KP1/KP, KP2/KP…. KPN/KP w zależności od kandydatów. Podobnie głosy oddane na poszczególne partie – np. głosy na partię A oddane na karcie KR to KRA, czyli wtedy udział tej partii to KRA/KR.

Drzewko decyzyjne klienta a ryzyko wyboru

Na jednym z blogów, we wpisie pojawiło się ostatnio pytanie „Dlaczego nasz Odbiorca (Klient) nie zaopatruje się bezpośrednio u naszego dostawcy, co takiego wnosi nasza firma, że warto przyjść do nas za to zapłacić?” (wpis „Model biznesowy czyli po co mi te procesy przed wdrożeniem ERP czy CRM…”  na http://it-consulting.pl/blog). W odpowiedzi w komentarzu stwierdziłem, że „w zależności od tego jak się na nie spojrzy, odpowiedź (na to pytanie) może być różna. Od strony kosztowej, obsługowej, relacyjnej, pokrycia rynku itp. Każdy z tych elementów można rozpatrzyć zarówno od strony dostawcy, jak i od strony Klienta. A jeżeli się jeszcze na to nałoży kanał dystrybucji w postaci Internetu, to pytanie staje się jeszcze ciekawsze…”. Zacząłem się zastanawiać, że różne kryteria, powody wyboru określonego dostawcy mogą zostać ułożone w drzewko decyzyjne.

Efekt przejścia przez takie drzewko z perspektywy klienta wiąże się z ryzykiem nieprawidłowego wyboru, braku zadowolenia z otrzymanego produktu/usługi czy po prostu braku zaspokojenia potrzeb. Warto podkreślić, że wyzwaniem przy konstrukcji drzewka będzie nadanie priorytetów poszczególnym kryteriom. Będą to węzły drzewa. Możemy wybierać z kryteriów: cena/jakość/koszt zakupu, bliskość, opinie innych, dostępność, warunki dostawy, szerokość oferty, oferta powiązana, wygoda itp.

Na diagramie zaprezentowano przykładowe drzewko decyzyjne przy założeniu, że pierwszym kryterium jest lokalizacja dostawcy. Zakładając, że od tego zależy przedział cenowy mamy na następnym etapie zastosowane inne kryteria. W zależności od nich tworzą się różne konfiguracje między czasem potrzebnym na zakup, ceną, sposobem dostawy, opinią, jakością itp. W każdym z punktów wyboru T1, O1, O2, O3, I1, I2 punkt ciężkości przenosi się na inne kryterium.

Na przykład porównując I1 lub I2 może się okazać, że gorsze warunki dostawy mogą dać niższą cenę produktu, dodatkowe produkty powiązane lub utworzenie relacji na przyszłość skutkującej np. Zniżkami. Z kolei, porównanie O1, O2, O3 niesie za sobą ryzyko, że możemy nie zdobyć produktu spełniającego nasze oczekiwania, ponieważ może on być w danym momencie niedostępny (większy popyt ze względu na opinię). Przechodząc przez kolejne poziomy dojdziemy do pewnej konfiguracji elementów wskazanych powyżej.

Dlatego warto też odpowiedzieć na pytanie: co jest dla nas najważniejsze i jakie ryzyka jesteśmy w stanie zaakceptować: brak pełnego zaspokojenia potrzeb, nie pozyskania produktu w akceptowalnym czasie, nieterminowa dostawa itp. Wybór niewłaściwego miejsca zakupu może oznaczać nawrót na najwyższy poziom drzewa i konieczność poświęcenia dodatkowego czasu.

Podsumowując można zadać pytania:

  • czego szukamy?
  • jaki jest nasz apetyt na ryzyko i jakich kwestii dotyczy?
  • co jest najważniejsze (cena, jakość, koszt pozyskania itp.)?
  • jakie są potencjalne skutki dla dalszej relacji?
  • jaka jest opinia dostawcy?
  • jak wygląda proces zamówienia i realizacji dostawy?

Subiektywne decyzje zakupowe

Grudzień to czas zakupów, które dotyczą zarówno naszych potrzeb, jak i prezentów, gdy próbujemy kupić coś przydatnego, potrzebnego, zaskakującego lub… Można wymieniać różne cechy produktów, które szukamy. Wszystko zależy od tego, co i dla kogo szukamy. Jedni idą na łatwiznę a inni starają się aby prezent był wyjątkowy. Cechą wspólną tych działań jest to, że trzeba podjąć decyzję zakupową biorąc pod uwagę różne elementy.
Przez ostatnie dni szukałem dodatkowego prezentu dla znajomych. Prezent był bliżej sprecyzowany i w różnych sklepach internetowych znalazłem ten sam produkt w różnych cenach.

Uogólniając można powiedzieć, że [c]eny były z przedziału 30 ([C]ena A) do 45 zł ([C]ena B). Cena akceptowalna za sztukę, więc gdy określiłem, który sklep odpowiada pod względem relacji ceny do oczekiwań, pojawił się inny problem, związany z kosztem dostawy. [K]oszt dostawy dla poszukiwanego produktu wahał się między 15 zł ([K]oszt X) a 90 zł ([K]oszt Y). Więc patrząc na relację do ceny wahał się w przedziale od 30% ceny produktu (X/B) do nawet 300 % (Y/A) patrząc na wartości graniczne. Gdy wybrałem potencjalny sklep okazało się, że czas [d]ostawy jest dla mnie nieakceptowalny, ponieważ wynosił 7-9 dni (co w okresie przedświątecznym może ostatecznie oznaczać, że prezent nie dotrze do dnia spotkania). Przejrzałem inne sklepy i okazało się, że czas dostawy waha się między 1 dniem ([D]ostawa S) a 9 czy nawet dłuższym okresem (([D]ostawa T). Elementy tego przykładu zostały umieszczone na diagramie.

cdk_450px

Można powiedzieć, że wybierając produkt w danym sklepie, Klient podejmuje decyzje biorąc pod uwagę co najmniej 3 składowe – cena produktu, koszt dostawy oraz czas dostawy. Pozostałymi elementami mogą być warunki zwrotu, produkty dodatkowe, promocje, wcześniejsze doświadczenia ze sklepem, programy lojalnościowe oraz inne produkty zamawiane równocześnie. Przyjmijmy jednak na razie, że te pozostałe elementy nie mają znaczenia i ważne są dla nas tylko te 3 elementy – wymienione powyżej oraz oznaczone na diagramie.

Na diagramie powyżej  mamy wskazany diagram venna (o którym już kiedyś pisałem) dla tych trzech parametrów. W środku diagramu (obszar oznaczony jako „O”) znajdują się takie sklepy/oferty, w których te 3 składowe są akceptowalne równocześnie. W przypadku obszarów:

  • CK – mamy takie sklepy/oferty, gdy akceptujemy cenę produktu i koszt dostawy, ale czas jego realizacji (D) jest problematyczny,
  • CD – mamy takie sklepy, gdy akceptujemy cenę produktu i czas dostawy, ale koszt dostawy nie jest akceptowalny (K),
  • KD – mamy takie sklepy, gdy cena nie jest akceptowalna mimo, że koszt i czas dostawy jest idealny

Pozostałe obszary oznaczają, gdy tylko jeden parametr z trzech nam odpowiada w ramach dostępnej oferty. To czy będziemy szukać sklepu „optymalnego” czy zaakceptujemy pewne „niedociągnięcia” jest sprawą bardzo indywidualną i subiektywną. Możemy patrzeć na łączny koszt lub relację poszczególnych elementów. W szczególności w okresie promocji oraz ograniczonego czasu na zakupy, możemy nagiąć pewne z naszych wymagań i kupić produkt przy parametrach, na które byśmy się nie zdecydowali w innym okresie czasu.

Kiedy dostaniesz powiadomienie?

Ostatnio otrzymałem wiadomość mailową o treści: “Przypomnienie o końcu ważności biletu okresowego”. Rzeczywiście za 2 dni kończył mi się okres ważności wykupionego biletu okresowego. Pamiętałem o tym, więc kilka dni wcześniej już go przedłużyłem. Dlatego byłem trochę zdziwiony, że tego maila otrzymałem.

Zacząłem się zastanawiać, że mogli wygenerować bazę z kończącymi się biletami wcześniej i dopiero tego dnia wygenerować powiadomienia. Inne rozwiązanie to takie, że mechanizm chodzi codziennie i sprawdza dla aktywnych biletów jaka jest data końca. W systemie każde przedłużenie może jest widoczne jako osobny rekord, a nie zmienia bieżącego i to powoduje problem. Wydaje się, że mechanizm nie sprawdza, czy jest już kolejny rekord lub nie pobiera najstarszej daty końca spośród rekordów. Może utrudnieniem dla mechanizmu jest to, że ze względu na długi weekend, przesunąłem datę początku obowiązywania nowego biletu o kilka (X) dni (na co pozwala system). Wydaje się, że algorytm wyboru biletu do wysłania powiadomienia mógłby wyglądać jak poniżej.

bilet_okresowy400px

Powyższy diagram jest kolejnym przykładem drzewa decyzyjnego, które przedstawiam na swoim blogu. Jest to istotny element procesu biznesowego. Wiele procesów opiera się na krokach, w których taki mechanizm ma zastosowanie i od niego zależy dalszy przebieg procesu. Wykonywane działanie opiera się na danych zebranych podczas procesu. Na powyższym diagramie taki przykładowy proces również został uwzględniony. Za pomocą drzewa decyzyjnego można szybko określić jakie działanie powinno zostać podjęte w ramach kroku

A może ta wysyłka powiadomienia, gdy jest odstęp między kolejnymi okresami ważności biletu, jest zabiegiem świadomym, aby użytkownik jednak pamiętał o tym, że pierwotny bilet kończy się danego dnia? Takie działanie dodałem do drzewka decyzyjnego linią przerywaną jako alternatywne rozwiązanie dla tego diagramu. To, w jaki sposób interpretujemy dane i układamy drzewko decyzjne jest kwestią decyzji biznesowej. Jeżeli zależy nam mimo wszystko, aby powiadomić użytkownika w każdej sytuacji, będziemy patrzeć tylko na parametry bieżącego biletu. Jeżeli natomiast, nie chcemy wysyłać powiadomień, które użytkownicy odbiorą jako błędne, trzeba zastosować bardziej dokładne reguły.

Filmowy proces a rzeczywistość

Ostatnio oglądałem film Eagle Eye. W filmie tym ukazana jest wizja pełnej inwigilacji społeczeństwa, w którym wybrane jednostki (osoby, zespoły, firmy), przy wykorzystaniu odpowiednich technologii, są “sterowane” do wykonania określonych czynności. Począwszy na opuszczeniu mieszkania, wybraniu środka lokomocji, poprzez sposób poruszania się po wykonywanie zadań w celu znanym tylko przez komputer.

Właśnie ten komputer, wykorzystując różne dane i narzędzia przeprowadza poniższy proces.

blog1_kadr

Poszczególne kroki wykonywane są w fimie na różne sposoby:

  • Nawiąż kontakt poprzez telefon, ekrany na ulicach, samochód;
  • Określ lokalizację poprzez położenie telefonu, samochodu czy obserwacje z kamer;
  • Wydaj instrukcję poprzez ekrany lub słownie;

Po każdej instrukcji, wykonywana jest weryfikacja postępów w ich realizacji i w zależności od tego czy postęp jest oczekiwany, odbiorca otrzymuje kolejne instrukcje, komunikat lub proces kończy się. Każdy z tych kroków można byłoby rozbić na szczegółówe algorytmy, drzewa decyzyjne lub podprocesy. Wybierając jeden element, można byłoby znaleźć różne jego zastosowania.

Wizja wydaje się dość przerażająca, ale… weźmy na przykład telefon komórkowy – gdy się przemieszczamy, przełączamy się między stacjami bazowymi, gdy zamieszczamy zdjęcie w portalu społecznościowym, to często umieszczamy pod nim naszą lokalizację. Mając teoretycznie dostęp do tych dwóch informacji, jesteśmy w stanie określić w jakim miejscach najczęściej przebywamy i odpowiednio dostosować przekaz. Połączmy to z danymi z innych telefonów komórkowych i mamy powiązania. W internecie (wystarczy wpisać w wyszukiwarce internetowej: „co wie o nas telefon”) można znaleźć wiele publikacji na ten temat. Dobrze jest instalując daną aplikację poświęcić chwilę na jej konfigurację i dostosowanie ustawień do własnych potrzeb i sposobu wykorzystania.

Bardzo optymistyczna strategia

Ponad 4 lata temu rozrysowałem we wpisie jak wyniki ostatniego meczu w 2012 wpłyną na ostateczny układ tabeli i w efekcie awans do kolejnej rundy określonych zespołów. Z punktu widzenia Polski rozkład wyników wskazywał, że tylko w przypadku 3 wariantów na 9, końcowy układ tabeli wskazywał na awans Polski do kolejnej rundy. Nie było to bardzo optymistyczne. O ile inaczej wygląda sytuacja w tym roku – na mistrzostwach w 2016.

Obecnie drużyna Polski (oznaczona jako “POL” lub “P” na diagramie) mierzy się z Niemcami (oznaczenie “GER” lub “G”) , Irlandią Północną (oznaczenie “NIR” lub “N”) oraz Ukrainą (oznaczenie “UKR” lub “U”). Podobnie jak w poprzednim wpisie, wyniki są oznaczone jako nierówności, czyli P>U, oznacza zwycięstwo Polski, P=U – remis, a P < U – przegraną. Dla niektórych wariantów, o kolejności zadecydują różnice bramek. Kwestia wyniku bezpośredniego spotkania już została uwzględniona.

Widać, że większość wariantów jest wygrywających – 8 z 9. Jeden z kolei jest obarczony ryzykiem (zaznaczony na czerwono) – gra w dalszej rundzie jest uzależniona od wyników pozostałych zespołów z 3 miejsc, ponieważ 4 drużyny na 6, zagrają w kolejnej rundzie. Obrazuje to górna część poniższego diagramu.

euro2016_450px

Na dolnej części powyższego diagramu zostały rozpisane warianty końcowego układu tabeli dla grupy z Francją (oznaczenie “FRA” lub “F”), Szwajcarią (“SZW” lub “S”), Rumunią (“RUM” lub “R”) oraz Albanią (“ALB” lub “A”) . Wynika to z tego, że w dalszych rozgrywkach zwycięzca grupy “polskiej” może trafić na drużynę z miejsca 3 z grupy “francuskiej”. Druga lokata gra z drugą. Natomiast zwycięzca grupy “francuskiej” może trafić na drużynę 3 z grupy “polskiej”.

Z możliwych wariantów wynika, że:

  • zajmując drugiej miejsce w grupie “polskiej”, co w przypadku Polski ma miejsce w większości przypadków (5-6/9), drużyna trafia w 5-6 na 9 przypadkach na Szwajcarię.
  • zajmując pierwszej miejsce w grupie “polskiej”, dla Polski są to maksymalnie 3 przypadki, drużyna trafi na Rumunię lub Albanię, jeżeli w ogólnej kwalifikacji 3 lokat, zajmą one odpowiednie miejsce, premiowane awansem.
  • zajmując 3 miejsce w grupie “polskiej”, dla Polski jest to jeden przypadek, drużyna trafi na Francję lub Szwajcarię lub inny zespół, o ile on będzie w grupie 3 lokat premiowanych awansem.

Analizując układy tabel, zakładjąc, że są poprawne, można wyciągać kolejne wnioski. Choć najbardziej istotnej jest to jak różna jest dalsza perspektywa od tej sprzed 4 lat. Pozostaje tylko trzymać kciuki (aby nie trafić na ten jeden obarczony ryzykiem zakończenia udziału na fazie grupowej).

Kolejny raz widać jak wykorzystanie drzewek decyzyjnych pozwala na zwizualizowanie różnych przypadków.

Proces rezerwacji pokoju

W czasie urlopu, w hotelowej restauracji obserwowałem różne konfiguracje gości przy stolikach. Z obserwacji można było mylnie lub nie wywnioskować skład „grupy”. Raz było to 2 osób (para, koleżanki, koledzy), 2+1, 2 lub więcej jako rodzina. Innym razem wyglądało to na dziadkowie, mama i dziecko a czasami rodzice, dziecko i babcia (2+1+1). Można takie zestawienia tworzyć.

Zacząłem się jednak zastanawiać jak wybierają liczbę i rodzaj pokoi a może decydują się na dostawkę. Cena, wygoda, relacje, wiek, samodzielność, palacze itd. – to wszystko może wpływać na te decyzje. W końcu przez cały pobyt taki wybór raczej zostanie zachowany. Proces mógłby wyglądać jak na poniższym diagramie.

rezerwacja_hotelu

Niektóre wybory mogłyby powodować ograniczenia. Np. 1 osobowy pokój nie ma dostawki, można wziąć 3 osobowy ale wtedy płaci się jak za dorosłego, może być apartament ale wtedy koszt jest z innego przedziału. Kolejna rzecz to zaliczki. Kolejna to wyposażenie pokoju 2 osobowego – łóżka osobne czy łóżko małżeńskie itd.

Każda taka opcja to decyzja do podjęcia przez przyszłego gościa hotelu. Hotel z kolei, przyjmuje rezerwacje na bieżąco, są one potwierdzane, anulowane – co powoduje, że w czasie realizacji procesu, sytuacja i kontekst jego wykonania może zmienić się całkowicie. Cofnięcie się do poprzedniego kroku lub przerwanie i rozpoczęcie od początku wiąże się z innymi możliwościami.

Z punktu widzenia Klienta można rozpisać drzewka decyzyjne a z punktu widzenia systemu reguły biznesowe.
Sam proces rezerwacji wycieczki/hotelu jest dłuższy, tak, jak to opisywałem we wpisie „Proces rezerwacji wycieczki – tani czy komfortowy?”. W niniejszym wpisie, można powiedzieć, że skupiłem się na jednym kroku – wyborze szczegółowych parametrów wycieczki/hotelu.

Zadanie: Reguła biznesowa

W artykule „A New Information Systems Paradigm: What does a Business Analyst Needs to Know?” na ModernAnalyst.com autorzy przybliżają czytelnikom serwisu ewolucję systemów informacyjnych i sposobu ich tworzenia. Przechodzą od prostych rozwiązań, wymagających więdzy po stronie szeroko pojętego biznesu nt. choćby tworzenia zapytań SQL, aż do rozwiązań nowoczesnych, rozbudowanych z implementacją systemów klasy workflow, wspartych silnikami baz danych i nie tylko.

Jednym z elementów, które poruszają, jest zarządzanie regułami biznesowymi i tworzenie systemów wspierających ich definiowanie, przechowywanie oraz wykonywanie. Tzw. BRMS (Business Rules Management System, czyli System Zarządzania Regułami Biznesowymi) są nieodłącznym elementem tworzonych systemów. Powstają one trochę przez analogię do wspomnianych jakiś czas temu przeze mnie BPMS (Business Process Management System, czyli System Zarządzania Procesami Biznesowymi) czy DBMS (Data Base Management System, czyli System Zarządzania Bazą Danych).
Załóżmy, że mamy następującą regułę biznesową, wykorzystywaną w korespondencji wysyłanej z systemu:

  • Płeć: mężczyzna → powitanie: Pan;
  • Płeć: kobieta oraz Stan: mężatka → powitanie: Pani;
  • Płeć: kobieta oraz Stan: wolny → powitanie: Panna;

Reguła jest bardzo prosta i to co się rzuca w oczy, w przypadku pierwszej reguły, stan cywilny nie ma znczenia. Powyższą regułę można byłoby w łatwy sposób zapis w bazie danych – jako 3 wiersze, z 3 atrybutami.

Powyższy artykuł przypomina, że w celi opisu takich reguł powstawała Decision Model Notation (DMN) – notarcja modeli decyzyjnych. Artykuł nie rozwija tego tematu, ale w Internecie można znaleźć informacje. W szczególności na stronach brcommunity.com wskazują, że definiowanie reguł jest związane z ich wielokrotnym użytkowaniem. Jest to silne wsparcie dla osób projektujących proces, za pomocą notacji BPMN 2.0, gdzie została przygotowana opcja „BusinessRuleTask”. Służy ona do wołania o wynik poszczególnych reguł. Od notacji BPMN można przejść do postaci wykonawczej poprzez zastosowanie BPML. Przykład zastosowanie tego typu zadania – BusinessRuleTask- został wskazany na powyższym diagramie BPMN. Zadania tego typu oznaczane są przez symbol pogrubionej „tabelki”.

W biznesie można spotkać się z dwoma typami reguł biznesowych – reguły ogólne, mające zastosowanie do wielu procesów, mających miejsce w różnych miejscach orgranizacji oraz reguły szczególne, wykorzystywane w danym procesie biznesowym. Opis reguł biznesowych jest ważnym elementem, który pozwala na zrozumienie działania procesu oraz okoliczności jego wykonania. Często są to tabele lub diagramy drzewiaste ze względu na różnorodnosć powiązań. Samo wykonanie reguł biznesowych może zostać zaimplementowane w różnych sposób – może to być np. tabela bazy danych, na której wykonywane są zapytania SQL a wynikiem jest wynik reguły. Na konferencjach często można usłyszeć w jaki sposób implementować reguły i w jakich sytuacjach. Równocześnie zwracana jest uwaga, aby sposób ich definiowania i przechowywania pozwalał na ich późniejsze aktualizowanie bez konieczności zmiany systemu odwołującego się.

Scenariusze dla grupy A

Zaczęło się EURO w Polsce, więc mój wpis będzie z tym związany. Dwa dni temu nasi piłkarze zagrali w meczu otwarcia z Grecją. Padł remis 1:1, który w sumie patrząc na zimno jest sprawiedliwym wynikiem po takim meczu. Jednakże kibicując (P)olsce czuję pewien niedosyt. W drugim meczu naszej grupy (R)osja rozgromiła (C)zechy, aż 4:1 i w sumie jest w idealnej pozycji przed kolejnymi meczami.

Zostały 2 kolejki: (P)olska – (R)osja, (G)recja – (C)zechy a mastępnie (P)olska – (C)zechy oraz (R)osja – (G)recja. W każej parze może paść 9 wyników (P>R, G>C, P>R, G=C itd.). Te 9 wyników pokazuje jak różne są scenariusze, które mogą nastąpić po drugiej kolejce. Poniższy diagram prezentuje wpływ poszczególnych par wyników na układ w tabeli.


Ponownie pomocne okazuje się drzewo decyzyjne. Chcąc zapisać wyniki 3 kolejki, należałoby do każdego końca drzewa dopisać kolejnych 9 rozgałęzień. Łącznie ich byłoby 9×9 = 81 możliwych rozsztrzygnięć. Oczywiście niekŧóre z nich mogłyby się powtórzyć, ale któreś z nich oznaczają awans (P)olski, a inne jej odpadnięcie z dalszych rozgrywek. Pocieszające jest to, że żadna z par wyników 2 kolejce nie powoduje definitywnego odpadnięcia z walki o awans do ćwierćwinału dla Polski. Gdybyśmy jednak rozpatrywali wynik z perspektywy innej drużyny, np. (C)zech, okazałoby się, że już po drugiej kolejce nie mają szans na awans do ćwierćfinałów.

Dlatego ciężko jest powiedzieć w tej chwili kto tak naprawdę wyjdzie z grupy, bo jak historia pokazuje w piłce wszystko jest możliwe – np. sensacyjne zwycięstwo Danii z Holandią, a  dopiero odbyły się  4 spotkania.

Dodatkowo powyższy diagram można podzielić na scenariusze optymistyczne i pesymistyczne, te, w których wiele zależy od pozostałych wyników, i te, w kŧórych to przede wszystkim nasze działania zadecydują o końcowym wyniku.