Archive for the ‘Procesy’ Category

h1

EPO – co to jest?

Listopad 18, 2017

Zapoznając się z tegorycznymi (2017) wynikami konkursu “Liderzy Informatyki” kilkakrotnie napotkałem w artykułach informację, że istotnym elementem na polskim rynku było wprowadzenie tzw. EPO. Wiele firm dołączyło do tego systemu od momentu jego wprowadzenia. Materiały o projekcie opublikowane w Internecie wskazują, że wprowadzenie takich mechanizmów miało przyczynić się m.in. do przyspieszenia obiegu korenspondencji sądowej oraz zmiany samych procesów.

EPO jest to tzw. elektroniczne potwierdzenie odbioru, gdy dla nadanej przesyłki lub grupy przesyłek informacja zwrotna przekazywana jest elektronicznie zamiast przygotowywana i przekazywania w formie papierowego formularza odbioru. Bezpośrednio po dotarciu przesyłki do odbiorcy i jej odebraniu, taka informacja trafia do nadawcy, a dokładnie do jego systemu. Sposób działania jest zaprezentowany na diagramie w formie uproszczonej.

epo450px

Dla tak zbudowanego rozwiązania istotnymi elementami są:

  • dostępność systemu – aby w każdym momencie możliwe było nadanie przesyłki oraz otrzymanie w akceptowalnym czasie potwierdzenia odbioru. W przypadku przesyłek sądowych czas dostarczenia przesyłki oraz informacja o tym ma znaczenie dla przebiegu procesu;
  • elastyczność systemu – możliwość dołączenia kolejnych instytucji lub operatorów, aby możliwe było zaspokojenie potrzeb różnych podmiotów. W zapewnieniu tego miało też pomóc zastosowanie otwartych standardów i technologii.
  • bezpieczeństwo systemu – w ramach komunikatów przesyłanych do systemu i otrzymywanych z niego krążą poufne informacje. Informacja o tym, że do kogoś idzie przesyłka sądowa, jest informacją dla danego odbiorcy i nie powinna trafić do innego podmiotu. Projekt zakładał szyftowanie danych oraz stosowanie podpisów dla komunikatów, aby zapewnić ich poufność oraz uniemożliwić ich podważenie.
  • integralność danych – informacja przekazywana podczas nadania przesyłki powinna być zgodna z informacją w EPO. Dla sądu jest istotne, które przesyłki dotarły do których adresatów i kiedy. Modyfikacja jakiegoś elementu mogłaby mieć konsekwencje, przede wszystkim dla odbiorcy postępowania lub innej osoby.
Reklamy
h1

Nieudany proces

Październik 16, 2017

Miesiąc temu pisałem we wpisie o procesie zamówienia, w którym firma dostarczająca produkt informowała mnie o każdym zrealizowanym i planowanym kroku z bardzo dużą dokładnością. Proces zakończył się sukcesem, w szacowanym terminie – produkt został dostarczony. Mogę powiedzieć, że każdy z przekazanych statusów odzwierciedlał sytuację rzeczywistą. Do każdego z elementów SIPOC (o którym pisałem już wielekrotnie) można przyporządkować określone obiekty z podanego procesu.

Dzisiaj wrócę również do tematu procesu zamówienia. Jednakże niestety muszę przytoczyć przykład rzeczywistego procesu, w którym to fakt, byłem informowany o każdym etapie realizacji, ale niestety komunikaty nie odzwierciedlały rzeczywistości, patrząc z mojej perspektywy. Na początku wszystko wyglądało identycznie: złożyłem zamówienie, czyli wybrałem produkt, podałem parametry zamówienia, zapłaciłem, a produkt został wysłany, o czym poinformował mnie pierwszy komunikat. I tu się podobieństwa kończą. Następny komunikat stwierdzał: uzgodniono termin przesunięcia dostawy. Nie było ani kontaktu mailowego ani telefonicznego od firmy kurierskiej. Ok, machnąłem ręką, nowy termin był w ostateczności akceptowalny, jak nie dojdzie produkt będę się martwił.

nieudanyprocess450px

Kolejny komunikat poinformował: brak kontaktu z odbiorcą, produkt zwrócony. I w tym momencie już nie było ciekawie. Ani nie wiedzieliśmy, że kurier jednak nie przyjedzie, ani nie podał wcześniej szacowanej godziny dostawy, a na koniec pomimo aktywnego telefonu i przebywania w strefie objętej zasięgiem – kontaktu nie było. Skończyło się reklamacją skierowaną do firmy kurierskiej. Wielokrotnie zamawialiśmy produkty u tego dostawcy i z wykorzystaniem kuriera – nigdy nie było problemów.

Potem okazało się, że produkt wrócił do firmy, u której zamawiałem produkt, a po kilku dniach nastąpił zwrot środków na konto.  Choć niestety nie mam zamówionego produktu, czy element oczekiwanego “wyjścia” (ang. output) w ramach modelu SIPOC nie został zrealizowany zgodnie z oczekiwaniami. Zostałem z “wejściem” (ang. input) – swoją potrzebą oraz środkami na koncie. Dostawca produktu (ang. Supplier) oraz Odbiorca produktu/Klient (ang. Client) uczestniczyli w tym procesie, ale nie można powiedziec, że są zadowoleni – z jednego strony produkt nie został sprzedany, a z drugiej dostarczony. Sam proces  (ang. process)“podobno” – podkreślam to słowo – został zrealizowany, choć mam wątpliwości, czy z tak funkcjonującym kurierem wszystkie kroki rzeczywiście zostały zrealizowane.

Powyższy diagram obrazuje taką zmianę sytuacji, z oznaczeniem, że nastąpiła kolejna zmiana strony obsługującej oraz w procesie nie ma statusu „produkt dostarczony”.

h1

Statusy cząstkowe czy o kluczowych etapach?

Wrzesień 15, 2017

Ostatnio zamawiając wybrany produkt przez internet, proces zaówienia wyglądał jak zwykle, czyli wybór produktu, określenie parametrów dostawy oraz płatności, a na koniec płatność za pomocą wybranej usługi. Po chwili na skrzynce znalazłem informację z potwierdzeniem zamówienia. Wybrałem dostawę za pomocą firmy kurierskiej, więc wystarczyło czekać na dostawę w szacowanym terminie –  kilka dni.

Następnego dnia dostaję maila od firmy kurierskiej z informacją: “czekamy na przygotowanie przesyłki”. Po kilku godzinach – “odebraliśmy przesyłkę, powiadomimy o czasie dostawy kolejnym mailem”. Następnego dnia – “planowane dostarczenie w podanej lokalizacji i przedziale czasowym”. Otrzymałem także informację o tym, że mogę zmienić szczegóły dostawy – lokalizację i przedział czasowy. Na koniec, gdy kurier dostarczył mi przesyłkę i potwierdziłem podpisem odbiór, dostałem maila, że “przesyłka dostarczona”. Poszczególne statusy oraz powiązane kroki procesu zostały przedstawione na poniższym diagramie.

statusyczastkowe450px

Można powiedzieć, że zamiast „zwykłych” statusów o etapach (złożone, wysłane, w trakcie oraz dostarczone) z procesu przekazywane były Klientowi statusy cząstkowe. Te cząstkowe statusy były okazją dla firmy do udostępnienia dodatkowej możliwości elektronicznej zmiany szczegółów dostawy. Podobnie można było dokładnie zauważyć moment zmiany podmiotu odpowiedzialnego za realiazcję procesu – między przygotowaną przesyłką (strona zamawiającego na diagramie) a odebraną przesyłką (strona dostarczającego na diagramie). W takich procesach często na koniec występuje ankieta, pozwalająca na ocenę procesu.

Szczerze mówiąc zacząłem się zastanawiać, z jaką szczegółowością chciałbym być informowany o przebiegu realizacji procesu – mógłbym otrzymać numer przesyłki smsem, z możliwością jej śledzenia. Mając na uwadze, że czas realizacji był 1-2 dni, tak częste statusy wydawały się nadmiarowe, ponieważ gdybym sprawdził pocztę dopiero po kilku dniach zobaczyłbym 3-5 wiadomości dotyczącej przesyłki. Jeżeli okres realizacji byłby dłuższy, np. od momentu złożenia zamówienia do przygotowania przesyłki był okres kilku dni lub tygodni, to pewnie oceniłbym to inaczej. Korzyścią z rozwiązania było to, że dokładnie wiedziałem, gdzie jest przesyłka i mogłem się przygotować na jej odbiór od kuriera.

h1

Proces określania korzystnych wyników

Maj 26, 2017

Wielu kibiców polskiej ligi zastanawia się kto zostanie mistrzem. Jedni ze 100% pewnością mówią, że to drużyna, której kibicują. Inny patrzą z niedowierzaniem na tabelę, na 2 kolejki przed końcem. Bo prawda jest taka, że 4 drużyny – oznaczmy je jako LP, LG, LW, JB – walczą o mistrzostwo oraz miejsce w pucharach. Jedna z drużyn pozostanie z niczym. Kolejna drużyna w kolejności ma taką stratę, że nie trzeba jej brać pod uwagę. Wskazane drużyny są obecnie ułożone w kolejności:  LW, JB, LB, LG z dorobkiem punktowym odpowiednio: 40, 38, 38, 38. Jest to punkt wyjściowy do próby określenia szans wybranej drużyny na zwycięstwo. Kroki są opisane na poniższym diagramie.

wyniki428px

Po określeniu punktu startowego, trzeba wygenerować wszystkie możliwe układy wyników w 2 kolejkach, z uwzględnieniem tego, że w pierwszej kolejce każda z drużyn walczy z drużyną spoza pierwszej czwórki, a w drugiej kolejce, walczą między sobą. Opieramy się tutaj tylko na wszystkich możliwych wynikach. Można to wygenerować następująco:

lp = 38
lw = 40
lg = 38
jb = 38
Określenie puntku startowego, poprzez określenie liczby punktów dla każdej z drużyn, przed kolejką.
for lp1 in [3,1,0]:
for lw1 in [3,1,0]:
for lg1 in [3,1,0]:
for jb1 in [3,1,0]: (…)
Generowanie wszystkich możliwych rozstrzygnięć dla pierwszej kolejki, wybierając odpowiedni wynik dla każdej z drużyn.
for lp2 in [3,1,0]:
for lw2 in [3,1,0]:
jb2 = wynikiodwr[lp2]
lg2 = wynikiodwr[lw2]
Generowanie dla każdego zestawu wyników z pierwszej kolejki, wszystkich możliwych rozstrzygnięć dla drugiej kolejki, wybierając odpowiedni wynik dla każdej z drużyn, z uwzględnieniem tego, że JB gra z LP oraz LG gra z LW.
(lp1,lw1,lg1,jb1,
lp2,lw2,lg2,jb2,
lpk = lp+lp1+lp2,
lwk =lw+lw1+lw2,
lgk =lg+lg1+lg2,
jbk = jb+jb1+jb2)
Zebranie możliwe zestawu wyników dla 1 I 2 kolejki wraz z osiągniętą liczbą punktów na koniec. Taki rekord jest dodawany do określonej struktury danych – określmy ją jako Wyniki.

Tym sposobem mamy 729 różnych rozstrzygnięć.

Teraz na bazie utworzonej struktury danych Wyniki możemy sprawdzić jakie rozstrzygnięcia powodują mistrzostwo określonej drużyny. Założmy, ze interesuje nas drużyna LP to wtedy możemy wyszukać wygenerowane pozycje, które spełniają na przykład warunek:

(Wyniki.lpk > Wyniki.lwk) & (Wyniki.lpk >= Wyniki.lgk) & (Wyniki.lpk > Wyniki.jbk)

Dla tego warunku mamy 91 rozstrzygnięć, co stanowi około 12,5% biorąc pod uwagę wszystkie wyniki bez uwzględnienia dotychczasowych rozstrzygnięć między drużynami grającymi w danej kolejce, statystyk, problemów drużyn, zmęczenia, kartek itp. Powyższy warunek nie uwzględnia tez innych relacji z ta samą liczbą punktów, które mogą powodować mistrzostwo określonej drużyny.

Powyższy przykład pokazuje, że pod określonymi krokami w procesie, kryją się określone działania w systemie lub wykonywane przez użytkownika. Wraz z diagramem mógłby być opis, który mniej lub bardziej technicznie pokazuje, na czym polega dany krok. Takie elementy jak powyżej można byłoby potraktować jako warstwę implementacyjną procesu.

Już w niedzielę okaże się, które z wygenerowanych wierszy można pominąć, skupiając się tylko na wynikach drugiej kolejki.

h1

Kiedy dostaniesz powiadomienie?

Kwiecień 29, 2017

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.

h1

Proces dla e-deklaracji – czyli pytanie z odpowiedzią

Kwiecień 18, 2017

Rozliczyłaś/eś już pit? Rozliczasz się razem czy osobno? Czy są jakieś ulgi? Czy będzie zwrot czy kwota do zapłaty? Do kiedy dokładnie jest termin? Gdzie jest mój urząd? Czy rozliczasz się elektronicznie? Te i wiele pytań pojawia się obecnie w naszych rozmowach. Przyczyna jest prosta. Już niedługo kończy się termin, kiedy można składać roczne deklaracje podatkowe.

Wielu podatników zdecyduje się po raz pierwszy lub kolejny złożyć swoją deklarację elektronicznie. W tym celu skorzysta z aplikacji w przeglądarce lub pobranej na komputer, wypełni dane, a następnie wybierze “Złóż deklarację”. Na koniec będzie czekać na otrzymanie tzw. UPO, czyli potwierdzenia złożenia deklaracji. W zależności od podsumowania na deklaracji, będzie musiał zapłacić brakującą kwotę podatku lub czekać na zwrot nadpłaty. Wariant takiego procesu opisany jest na poniższym diagramie.

pit450px

Na diagramie, jak widać, proces został przedstawiony od strony aplikacji. Dodany został na nim również krok dot. komunikacji z serwisem ministerstwa, obsługującym elektroniczne składanie deklaracji. Jest też krok weryfikacyjny, który w takich aplikacjach występuje – dotyczący dochodu za rok poprzedzający rok, którego dotyczy składana deklaracja. Aplikacja przygotowuje komunikat z deklaracją (prawdopodobnie w xml) i wysyła żądanie (ang. request) jej przetworzenia przez serwis. Następnie czeka na odpowiedź (ang. response). Odpowiedź może wskazywać na przyjęcie deklaracji, poprawne jej przetworzenie czy błąd. Można powiedzieć, że jest to przykład zastosowania wzorca Pytanie-Odpowiedź (ang. request-response).

Aplikacja może prowadzić użytkownika przez wypełnienie deklaracji, sugerując ekranami lub pytaniami konkretne czynności lub też umożliwiać całkowicie samodzielne wypełnienie formularzy, podobnie jak w przypadku papierowej deklaracji. W trakcie wypełniania, może jedynie sprawdzać powiązania oraz zależności pól, a sprawdzanie konkretnych wartości jest dość ograniczone. Wypełnienie takiej deklaracji, mając pod ręką materiały źródłowe, trwa kilkanaście minut. Oczekiwanie na odpowiedź z serwisu to kilka minut. Można to zrobić w dowolnym, odpowiednim dla podatnika momencie. Nie musi także udawać się do urzędu, aby przekazać deklarację papierową.

h1

Inteligentne podlewanie i nie tylko

Kwiecień 6, 2017

Chyba prawie każdy wyjeżdzając na dłuższy wyjazd, zastanawiał się co się stanie z kwiatami na balkonie, w domu, czy ogrodzie. Jedni stosują metody związane z automatycznymi zraszaczami lub nawodnieniem, inni z odwróconymi butelkami albo innymi systemami nawadniania mniej lub bardziej zautomatyzowanymi. Niektórzy w tym celu zatrudniają znajomych czy sąsiadów. Inni podlewają przed wyjazdem i myślą: „powinno starczyć”. Te bardziej lub mniej automatyczne są powiązane z dzisiejszym wpisem.

Wyobraźmy sobie, że każda skrzynka, donicznka lub istotny obszar ogródka ma zamontowany czujnik z identyfikatorem. Każdy czujnik jest odpytywany lub przesyła informacje do centralnego rejestru. Mechanizm kontrolny sprawdza reguły i informuje właściciela roślin o wystąpieniu określonych zdarzeń: np. skrzynka zawierająca kwiaty X ma za małą wilgotność. Skutkiem może być automatyczne nawodnienie, informacja do opiekuna lub inna czynność z góry określona. Pewnie takie rozwiązania w różnych wariantach już istnieją i są dostępne na rynku. Ideę takiej sytuacji obrazuje diagram.

nawodnienie450px

Dane zbierane z czytników opariełaby się również na danych o powiązaniu czytnika z roślinami i danych o powiązaniu roślin z rekomendowaną wilgotnością. Wynik z czytnika, roślina, rekomendowana wilgotność – to trójka będąca podstawą podjęcia decyzji w ramach reguły. Podobnie jak w przypadku produktów w sklepie – identyfikator produktu, lokalizacja w sklepie – przy wykorzystaniu fal radiowych określana była aktualna zawartość koszyka. Zbieranie takich danych z czytników jest podstawą funkcjonowania tzw. Internetu Rzeczy (ang. Internet of Things/IoT).

Idea IoT zakłada, że każdy (możliwy do zidentyfikowania) przedmiot codziennego użytku (i nie tylko) może dostarczać danych, zarówno o użytkowniku, sposobie używania lub otoczeniu. Dane mogą trafiać do serwisu internetowego, gdzie są dostępne także dla innych użytkowników. Mogą zarówno potwierdzać przyjęte reguły, jak i je zmieniać. Mogą być używane do podejmowania decyzji albo do wyświetlania specyficznych informacji dla użytkowników serwisu (np. o zanieczyszczeniu powietrza na terenie miasta).