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

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

h1

Robotyzacja – kto jest po drugiej stronie?

Marzec 26, 2017

Chyba każdy kiedyś miał okazję odpisywać na maila lub wiadomość sms, która zawierała treść w stylu “Jeżeli chcesz zrezygnować wyślij NIE…”, “Jeżeli potwierdzasz wyślij TAK..”, “Jeżeli chcesz dowiedzieć się więcej, wyślij pustą wiadomość” lub inną treść, którą można sprowadzić do konieczności wykonania postej czynności. Ta prosta czynność to wysłanie pustej wiadomości lub wiadomości o z góry określonej, jednoznacznej treści.

Taką wiadomość może w danym momencie otrzymać kilka, kilkanaście a nawet setki czy tysiące osób. Przeważnie taka wiadomość zwrotna trafia na numer nadawcy lub inny wskazany. Skutek jest widoczny natychmiast lub w zależności od przeznaczenia takiej wiadomości z różnym opóźnieniem, Jedno się jednak nie zmienia, odbiorca w jakiś sposób na tę wiadomość zareagował. Jest to przedstawione na poniższym diagramie.

robotyzacja450px

Odbiorcą tej wiadomości zwrotnej może być człowiek lub system/maszyna. W przypadku pierwszej opcji, dana osoba, czyta wiadomość i wykonuje operację, zgodną z góry określoną procedurą. W drugim przypadku, odpowiednio przygotowane narzędzia, same interpretują treść wiadomości i wykonują odpowiednie akcje. W obydwu przypadkach konieczne jest odpowiednie zareagowanie na literówki w wiadomości czy wiadomości niekompletne. Z punktu widzenia nadawcy wiadomości liczy się to, że zostanie wykonana oczekiwana akcja.

Załóżmy, że mamy pierwsze rozwiązanie i liczba wysyłanych wiadomości, to nie są sztuki, a tysiące wiadomości, wysyłane o dowolnej porze. Wtedy naturalne wydaje się przejście do drugiego rozwiązania. Takie przejście jest określane angielską nazwą robotic process automation (RPA). Idąc od końca tego określenia, mamy: automation, czyli automatyzację. Oznacza to, że jakieś narzędzie wykonuje daną czynność automatycznie bez ingerencji człowieka. Następnie mamy process, czyli wskazanie co tak naprawdę automatyzujemy – określony proces biznesowy. I ostatnia część, najbardziej istotna, czyli robotic. Można powiedzieć, że powtarzalne, monotonne, proste czynności ręczne wykonywane przez urzędnika, pracownika firmy, zą zastępowane odpowiednimi narzędziami, “robotami”, które w sposób zaprogramowany wykonują po kolei wskazane czynności. W powyższym przypadku – przeczytanie wiadomości, jej interpretację i wykonanie akcji. Proces można także określić jako robotyzacja czynności.

Celem takiego procesu jest oszczędność czasu, zmniejszenie kosztów, zwiększenie efektywności procesu oraz lepsze wykorzystanie wiedzy i umiejętności tych pracowników. Taki pracownik mógłby przenieść swój ciężar zainteresowania na sprawy nietypowe, wymagające bezpośredniej interakcji z odbiorcą. Taki pracownik mógłby uczyć również narzędzie w przypadkach, gdy ma problem z interpretacją otrzymanej wiadomości lub reagować na wiadomości, które wykraczają poza przyjęty schemat. Reagowałby przede wszystkim na sytuacje nietypowe. Niektóre z zadań mogłyby trafiać cały czas do pracownika, w szczególności w okresach, gdy początkowa wiadomość ulega zmianie lub rozszerzany jest zakres możliwych odpowiedzi. Zastosowanie takiego rozwiązania trzeba poprzedzić analizą obecnego procesu oraz zważeniem jego wad oraz zalet.

h1

Proces grupowania

Marzec 11, 2017

Od dzieciństwa dzielimy zbiór przedmiotów rzeczowych lub abstrakcyjnych na grupy. Najpierw dzielimy klocki, zabawki, zgodnie z pomysłem na zabawę. Potem kolegów na zespoły w trakcie zabaw na boisku. Gdy zaczynamy korzystać z poczty elektronicznej, dzielimy wiadomości na odpowiednie grupy lub wątki. W pracy natomiast dzielimy zdarzenia, klientów czy inne bardziej abstrakcyjne obiekty na grupy. W każdym tym przypadku, patrząc na zbiór elementów, dzielimy go za pomocą jakiegoś kryterium (kategorii). Odpowiednio koloru/kształtu, umiejętności, tematu czy cech. Czasami kategoria jest widoczna na pierwszy rzut oka, a czasami musimy jej poszukać. Działanie to jest opisane na poniższym diagramie i jest określane grupowaniem.

grouping450px

W przykładzie na diagramie, mamy zbiór obiektów, dla których określamy kategorię podziału. Dla tak podanego zbioru obiektów można było przyjąć kategorię koloru lub kategorię kształtu. Jest to uproszczone podejście do tematu, ponieważ wybrałem w danym momencie tylko jedną ceche podziału. W kroku Wyboru kategorii, może nastąpić określenie zbioru cech, które będą podstawą podziału obiektów. Czasami ten zbiór podziału trzeba określić za pomocą modelu matematycznego lub dedykowanej analizy. Np. można byłoby połączyć kategorie – dany kolor i dany kształt. Wtedy granulacja tego podziału byłaby większa. Równocześnie osiągnęlibyśmy większą liczbę grup.

Wróćmy jednak do tego uproszczonego podziału. Mając podzielony zbiór na grupy wg danej kategorii, można dalej otrzymane grupy analizować. Krok Wykonaj operację na częściach oznacza zastosowanie wcześniej określonych metryk lub działań. Np. możemy zliczyć liczbę obiektów w grupie jak na przykładzie. Możemy także policzyć insteresujące obiekty lub ich odsetek w poszczególnych grupach. Podjęte działania są uzależnione od celu podziału na grupy. Potem uzyskane wyniki możemy wykorzystać w innych działaniach, np. przygotowując odpowiednią strategię postępowania na przyszłość.

h1

Notacja uniwersalna dla procesu

Luty 28, 2017

Wiele symboli, grafik, mechanizmów, które nas otacza każdego dnia jest zrozumiała niezależnie od posiadanego wykształcenia, narodowości czy wcześniejszych doświadczeń. Gdy widzimy “+” w wyrażeniu, to wiemy, że coś dodajemy do czegoś. Gdy widzimy czerwone światło na ulicy, to oznacza brak możliwości ruchu. Gdy widzimy pięciolinię to myślimy o muzyce. Podobnie jest z wieloma innymi symbolami. Symbole są mniej lub bardziej upowszechnione. Korzystanie z nich ułatwia komunikację, wymianę pomysłów oraz idei między różnymi odbiorcami. Opisane przykłady wskazują na stosowanie tzw. notacji uniwersalnej, z ang. universal notation.

upn450px

W przypadku procesów biznesowych, także istnieje taka notacja, która pozwala na zaprezentowanie przebiegu procesu w sposób zrozumiały dla większości odbiorców. Jest to tzw. Universal Process Notation, po przetłumaczeniu Uniweralna Notacja dla Procesów. W tej notacji, jak widać na powyższym diagramie są stosowane obiekty (ramki), zawierające informację o nazwie czynności oraz jej wykonawcy oraz połączenia opisujące wejścia i wyjścia poszczególnych czynności. W odróżnieniu od notacji BPMN, którą się często posługuję w ramach diagramów na blogu, zapis jest zdecydowanie uproszczony.

Na powyższym diagramie zapisałem przykładowy proces dot. kolejkowania, gdzie występowały dwie różne role – użytkownik oraz system. Produkty poszczególnych kroków były różne i można je jednoznacznie określić: Otrzymane żadanie klienta, Wypełniony formularz, Zapisane zgłoszenie, Parametry listy ustalone, Sprawa dodana do kolejki. Strzałki informują o kolejności kroków oraz kierunku przekazywania wejść. Dodatkowo mamy ponumerowane kroki, aby łatwiej było się do nich odnosić. Pozwalają też zidentyfikować pierwszy krok (proste zastosowanie uniwersalnej notacji związanej z liczbami).

h1

Proces logowania jawny czy w tle?

Luty 18, 2017

Czy musisz logować się do każdej aplikacji, z której korzystasz? Ile razy dziennie musisz wpisać swój login/hasło? Ile razy się wylogowujesz? Czy zapamiętujesz swoje dane logowania w przeglądarce? Czy często zmieniasz swoje hasło? Czy masz wiele loginów? Pytań takich można zadać jeszcze wiele. Często jako użytkownicy nie zastanawiamy się wybierając określone aplikacje, co się zadziało, czy aplikacja nie powinna nas spytać hasło. Przyznaję, że jest to wygodne, gdy można się logować raz. Jednakże o co chodzi?

Mamy 2 możliwości podczas korzystania aplikacji – pierwsza logujemy się z każdym razem. Druga możliwość to logujemy się raz i z części aplikacji korzystamy bez dodatkowego logowania. Te dwie możliwości przedstawia poniższy diagram – pierwsza to pełny proces, a druga pomija krok zaznaczony na czerwono.

logowanie450px

Pierwsza część opiera się na tzw. jawnym logowaniu, czyli każdorazowym podaniu swoich danych identyfikacyjnych (ang. credentials). Pozwala to na: po pierwsze rozpoznanie użytkownika (czyli autentykację) a następnie udostępnienie funkcjonalności zgodnie z uprawnieniami (czyli autoryzacja). Logujemy się do poczty elektronicznej i widzimy dane swojej skrzynki pocztowej. Logujemy się do sieci społecznościowej i widzimy swój profil. Podobnie za bankowością elektroniczną czy sklepem internetowym.

Druga część opiera się na tzw. ukrytym logowaniu, czyli podajemy swoje dane identyfikacyjne raz (przeważnie przy logowaniu do stacji roboczej), a wszystkie pozostałe aplikacje, jednego dostawcy lub odpowiednio skonfigurowane, otrzymują te dane identyfikacyjne i na tej podstawie nas rozpoznają. Często takie zachowanie można zaobserwować podczas wykorzystania aplikacji w pracy.

Podstawą takiego funkcjonowania jest tzw. SSO, po angielsku single sign – on, czyli dosłownie jedno logowanie. Dane identyfikacyjne są przekazywane a autentykacja i autoryzacja jest wykonywana całkowicie w tle. Efekt działania SSO można sobie łatwo wyobrazić korzystając z telefonu komórkowego z różnymi aplikacjami opartymi o jedno konto lub też popularnego konta pocztowego i powiązanym z nim serwisów. Podstawą działania SSO jest istnienie odpowiednich modułów lub centralnych rejestrów z danymi identyfikacyjnymi użytkowników, które uczestniczą w przeprowadzaniu tego procesu.

h1

Współbieżność a proces biznesowy

Luty 11, 2017

Proces rezerwacji pokoju realizowany jest wielokrotnie w danym przedziale czasu i dla tego samego hotelu. Wielu użytkowników w danym momencie przegląda oferty oraz rozpoczyna proces rezerwacji. Jedni przeprowadzają go do końca a inni rezygnuja w trakcie, z różnych wzlędów – komunikatu systemu, zmiany planów lub innych powodów. Może się zdarzyć, że dwóch użytkowników chce zarezerwować pokój określając identyczne parametry graniczne. Uproszczony proces jest zapreznetowany na poniższym diagramie.

W opisanej sytuacji, tylko jeden z użytkowników powinien otrzymać potwierdzenie rezerwacji, więc powinien być w systemie obsługującym rezerwacje stworzony mechanizm, który to zapewni. Fizycznie każda rezerwacja trafia do określonej bazy rezerwacji i patrząc z poziomu tego poziomu możemy mówić o różnych mechanizmach obsługi współbieżności rezerwacji. Istotne jest to, że aplikacja komunikująca sie z użytkownikiem, musi umieć zinterpretować komunikat przesłany przez aplikację obsługującą bazę rezerwacji (danych).

wspolbieznosc420px

Można wyobrazić sobie przykładowe warianty postępowania w ramach systemu obsługi rezerwacji, oznaczonym na powyższym diagramie:

  • wszystkie rezerwacje (dla bazy danych transakcje) przychodzące od użytkowników są umieszczane na kolejce oczekujących do obsłużenia, która jest, co określony czas, sprawdzana, pod kątem istnienia dwóch identycznych rezerwacji. Jeżeli takie są, obydwie odrzuca z odpowiednim komunikatem lub realizuje losowo wybraną.
  • wszystkie rezerwacje (czyli transackje) zapisuje w taki sposób jak przychodzą, a w zależności od ustawień bazy danych i obsługi zakleszczeń, któraś z rezerwacji może zostać odrzucona lub nadpisana. Z punktu widzenia aplikacji obsługującej może ona sprawdzać, czy rezerwacja nastąpiła (powiązanie pokoju, rezerwacji i klienta).

Każde rozwiązanie można sprowadzić z perspektywy użytkownika do jednego z dwóch komunikatów: “zapisana” lub “odrzucona”. Dla procesu biznesowego obsługa współbieżności oznacza wystąpienie wyjątków lub dedykowanych komunikatów dla użytkownika. Proces biznesowy może obsługiwać różne sytuacji a sama aplikacja może krokowo sprawdzać w tle, czy pokoje o definiowanej przez użytkownika konfiguracji są dostępne. Powyższe zachowania aplikacji można bardzo łatwo zaobserwować korzystając z mechanizmów/procesów udostępnianych i wykorzystywanych przez szersze grono użytkowników.