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.
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.