Wdrożenie NGinn – case study
NGinn nie tak dawno temu przeszedÅ‚ swój chrzest bojowy – mianowicie doczekaÅ‚ siÄ™ wdrożenia produkcyjnego i to na caÅ‚kiem sporÄ… skalÄ™. Ponieważ od wdrożenia minęło już trochÄ™ czasu a system jest ustabilizowany i można spokojnie powiedzieć że dziaÅ‚a, to dziÅ› opowiem nieco o tym jak owo wdrożenie wyglÄ…daÅ‚o i jaka jest w nim rola NGinn.
Krótko o procesie
NGinn został użyty do zautomatyzowania procesu indeksowania dokumentów w firmie telekomunikacyjnej która jest jednym z operatorów komórkowych w Polsce. Indeksowanie dokumentów jest to jeden z etapów procesu obsługi wchodzących do firmy dokumentów papierowych (listów, umów i innych dokumentów dotyczących klientów firmy), który przedstawia się mniej więcej tak:
- Przyjęcie dokumentów w kancelarii
- Sortowanie (wstępna klasyfikacja)
- Przygotowanie do skanowania (rozpakowanie, rozszycie etc)
- Skanowanie
- Indeksacja (klasyfikacja, opisanie dokumentu odpowiednimi danymi)
- Umieszczenie dokumentu w archiwum elektronicznym
- Dalsza obsługa dokumentu już w wersji elektronicznej (dalsze etapy są realizowane w innych systemach, proces obsługi jest różny dla różnych dokumentów)
W skrócie proces ten prowadzi do przekształcenia dokumentu na jego obraz cyfrowy (skan) z odpowiednimi metadanymi, dzięki czemu dalsza obsługa dokumentu może być prowadzona za pomocą systemów informatycznych. Firma dąży do maksymalnego zautomatyzowania tego procesu gdyż obsługuje dziesiątki tysięcy dokumentów dziennie i każda czynność ręczna generuje duże koszty (w obsługę wchodzących dokumentów zaangażowane jest kilkadziesiąt osób).
Celem naszego wdrożenia byÅ‚o zautomatyzowanie etapu indeksacji – czyli etapu w którym osoba skanujÄ…ca dokument opisuje go odpowiednimi metadanymi. Te metadane zależą od rodzaju dokumentu, ale najczęściej sÄ… to podstawowe informacje jak rodzaj dokumentu, data wpÅ‚yniÄ™cia do firmy, data skanowania, identyfikator klienta, nr telefonu tego klienta, nr dokumentu, kod kreskowy, segment klienta i kilka innych atrybutów. Do tej pory musiaÅ‚y być odczytywane z dokumentu (lub wyszukiwane w innych systemach) i wpisywane rÄ™cznie przez pracownika skanujÄ…cego dokument, co miaÅ‚o swoje wady: wydÅ‚użaÅ‚o czas obsÅ‚ugi dokumentu i stwarzaÅ‚o ryzyko wystÄ…pienia błędów w danych. W celu poprawienia efektywnoÅ›ci tego etapu firma opracowaÅ‚a jego wersjÄ™ zautomatyzowanÄ…  w której praca rÄ™czna zostaÅ‚a albo caÅ‚kowicie wyeliminowana, albo ograniczona do minimum. Automatyzacja polegaÅ‚a na zmianie aplikacji skanujÄ…cej tak aby sama wypeÅ‚niaÅ‚a pola które może (datÄ™ skanowania, login osoby skanujÄ…cej, kod kreskowy i kilka innych), zaÅ› reszta danych pozyskiwana jest automatycznie z systemów zewnÄ™trznych. Na przykÅ‚ad: jeÅ›li na dokumencie wystÄ™puje kod kreskowy z systemu sprzedaży to  dane klienta sÄ… pobierane z tego systemu. JeÅ›li kodu kreskowego brak to konsultant ma za zadanie wpisać rÄ™cznie tylko identyfikator klienta – pozostaÅ‚e dane klienta zostanÄ… pobrane z systemu billingowego. Konsultant musi interweniować w sytuacjach wyjÄ…tkowych, np jeÅ›li np kod kreskowy jest nieczytelny dla aplikacji skanujÄ…cej (wtedy albo wpisuje go rÄ™cznie albo nakleja nowy kod i podaje numer dokumentu). Procedura zautomatyzowana obejmuje również walidacjÄ™ danych (wykrywanie brakujÄ…cych lub błędnych numerów klienta/numerów dokumentu/kodów kreskowych). W przypadku wykrycia nieprawidÅ‚owoÅ›ci odpowiedni pracownicy otrzymujÄ… zadanie poprawy indeksów w dokumencie.
OszczÄ™dność na pojedynczym dokumencie jest rzÄ™du minuty-dwóch. Ale po pomnożeniu tego przez ok 10-15 tysiÄ™cy dokumentów dziennie wychodzi nam oszczÄ™dność na poziomie trzydziestu osobo-dni (każdego dnia). Oznacza to trzydzieÅ›ci etatów których nie trzeba tworzyć – czyli niewielkie w sumie usprawnienie w tak masowym procesie daje caÅ‚kiem niezÅ‚y efekt finansowy.
Realizacja
Do zrealizowania tej zautomatyzowanej procedury indeksacji użyliśmy NGinn. Działa to tak że po zeskanowaniu dokumentu jest on umieszczany w systemie EDMS (elektroniczne archiwum dokumentów), który to system powiadamia NGinn o pojawieniu się nowego dokumentu. W tym momencie NGinn uruchamia proces automatycznej indeksacji który odpowiada za uzupełnienie dokumentu o odpowiednie metadane. Oto schemat tego procesu:

- Pobranie dokumentu z systemu EDMS.
Po zeskanowaniu dokumentu i umieszczeniu go w systemie EDMS system ten powiadamia NGinn o pojawieniu się nowego dokumentu przekazując wewnętrzny identyfikator tego dokumentu. Na podstawie tego identyfikatora NGinn pobiera dane dokumentu z systemu EDMS. Pobierane są m. in. typ dokumentu, nr dokumentu, kod kreskowy i identyfikator klienta. - Pobranie danych klienta z systemu bilingowego. Jeśli dokument zawiera identyfikator klienta a nie zawiera kodu kreskowego, odpytujemy system bilingowy o dane klienta na podstawie podanego numeru klienta. Odpytanie odbywa się poprzez wywołanie odpowiedniego web service. Jeśli dane klienta zostaną odnalezione idziemy do kroku 4, w przeciwnym razie do kroku 5.
- Pobranie danych dokumentu z systemu sprzedaży – dokumenty z systemu sprzedaży zaopatrzone sÄ… w odpowiedni kod kreskowy, identyfikowane sÄ… też numerem dokumentu. NGinn odpytuje system sprzedażowy o dane tego dokumentu na podstawie kodu kreskowego lub nr dokumentu, wÅ›ród danych zwracanych przez system sprzedażowy sÄ… również informacje o kliencie. JeÅ›li dokument zostanie odnaleziony przechodzimy do kroku 4, w przeciwnym razie do kroku 5.
- Aktualizacja dokumentu w EDMS. Jeśli dane klienta/dokumentu zostały odnalezione w odpowiednim systemie, NGinn aktualizuje dane dokumentu w EDMS dzięki czemu jest on opisany pełnymi metadanymi.
- Zadanie ‘popraw indeksy’. Jest to zadanie rÄ™czne zakÅ‚adane w systemie obsÅ‚ugi zgÅ‚oszeÅ„. Zadanie to pojawia siÄ™ na liÅ›cie spraw odpowiedniej grupy konsultantów (system obsÅ‚ugi zgÅ‚oszeÅ„ jest uniwersalnym systemem w którym rejestrowane sÄ… zgÅ‚oszenia klientów oraz inne rodzaje spraw, m.in. zadania). Zadanie zawiera odnoÅ›nik do dokumentu w EDMS oraz informacje o tym które indeksy należy poprawić. Po poprawieniu indeksów konsultant zgÅ‚asza zakoÅ„czenie realizacji zadania i proces powtarza siÄ™ od kroku 1. Istnieje możliwość zakoÅ„czenia zadania z opcjÄ… ‘pomiÅ„ walidacjÄ™’, która powoduje przejÅ›cie do kroku 6 bez dalszej walidacji danych dokumentu – jest to potrzebne w wyjÄ…tkowych przypadkach, np gdy dane klienta w na dokumencie sÄ… nieaktualne.
- Poprawny przebieg procesu indeksacji kończy się przekazaniem dokumentu do systemu obsługi zgłoszeń. NGinn przekazuje dane dokumentu do systemu obsługi zgłoszeń, który na podstawie tych danych zakłada odpowiedniej treści zgłoszenie i przypisuje je do Back Office, do grupy konsultantów odpowiedzialnych za obsługę danego rodzaju zgłoszeń. NGinn na kroku 6 kończy swoją rolę i nie bierze udziału w obsłudze zgłoszenia.
W celu zaimplementowania tego procesu do standardowego zestawu zadaÅ„ NGinn musiaÅ‚y zostać dołączone dwa typy zadaÅ„ sÅ‚użące do integracji z systemem EDMS: zadanie “Pobierz dokument z EDMS” (krok 1) oraz “Zaktualizuj dokument EDMS”, czyli krok 4. Zadania te wykorzystujÄ… API integracyjne systemu EDMS. PozostaÅ‚e etapy procesu zostaÅ‚y zrealizowane za pomocÄ… zadaÅ„ standardowo udostÄ™pnianych przez NGinn. Dodatkowo, w systemie obsÅ‚ugi zgÅ‚oszeÅ„ zostaÅ‚ dodany interfejs integracyjny dla NGinn pozwalajÄ…cy NGinn zakÅ‚adać zadania w tym systemie oraz raportować do NGinn zakoÅ„czenie realizacji zadaÅ„ przez konsultantów.
Jak Å‚atwo policzyć, proces indeksacji wykorzystuje funkcje czterech różnych systemów: EDMS, billingu, systemu sprzedażowego oraz systemu obsÅ‚ugi zgÅ‚oszeÅ„. Można powiedzieć zatem ze oprócz funkcji narzÄ™dzia ‘BPM’ NGinn peÅ‚ni też rolÄ™ narzÄ™dzia integracyjnego zarzÄ…dzajÄ…cego przepÅ‚ywem danych miÄ™dzy poszczególnymi aplikacjami.
Przebieg wdrożenia
Projekt byÅ‚ realizowany metodÄ… szybkiego prototypowania. Klient bardzo szybko (w ciÄ…gu 2 tygodni) od rozpoczÄ™cia prac otrzymaÅ‚ pierwszÄ… wersjÄ™ oprogramowania do testów. Podczas testów oprócz pewnej liczby błędów wykryto też rozmaite przypadki nietypowe które nie byÅ‚y przewidziane w wymaganiach. Każdy taki wyjÄ…tek wymagaÅ‚ modyfikacji procesu – praktycznie na bieżąco dostarczaliÅ›my klientowi zmodyfikowanÄ… wersjÄ™ procesu i testy mogÅ‚y być kontynuowane. W sumie testowane byÅ‚o 7 albo 8 wersji procesu, każda kolejna zawieraÅ‚a obsÅ‚ugÄ™ przypadków nie przewidzianych przez poprzedniÄ… iteracjÄ™. Testy trwaÅ‚y okoÅ‚o 3 tygodni, później nastÄ…piÅ‚o przeniesienie funkcjonalnoÅ›ci na Å›rodowisko produkcyjne. W Å›rodowisku produkcyjnym wykryto jeszcze jeden albo dwa ‘nietypowe’ przypadki wymagajÄ…ce pilnego obsÅ‚użenia, co zaowocowaÅ‚o dwiema kolejnymi wersjami procesu.
Podczas testowania niektóre z cech NGinn okazały się bardzo przydatne:
- możliwość używania kilku wersji procesu jednoczeÅ›nie. W przypadku testów ‘na produkcji’ używana byÅ‚a stabilna wersja procesu zaÅ› eksperymentalne byÅ‚y uruchamiane tylko na potrzeby testów. Po przetestowaniu nastÄ…piÅ‚o przełączenie domyÅ›lnej wersji procesu na nowÄ… wedÅ‚ug której byÅ‚y obsÅ‚ugiwane kolejne dokumenty. Nie byÅ‚o potrzeby migracji procesów w toku – dokoÅ„czyÅ‚y one swój bieg wedÅ‚ug starej wersji.
- zmiany definicji procesu ‘w locie’, bez zatrzymywania systemu pozwalaÅ‚y na bieżąco uwzglÄ™dniać uwagi testerów a na produkcji przełączać siÄ™ miÄ™dzy wersjami procesu w sposób niezauważalny dla użytkowników
Po wdrożeniu
Obserwacja systemu po wdrożeniu pokazała kilka faktów:
- Mimo niezbyt rozbudowanej konfiguracji serwera nie ma żadnych problemów wydajnościowych, NGinn obciąża procesor i pamięć w niewielkim stopniu. Baza danych bez problemu radzi sobie z obsługą danych generowanych przez NGinn.
- Po ustabilizowaniu definicji procesu system działa praktycznie bezproblemowo 24 godziny na dobę,  7 dni w tygodniu. Przez ponad miesiąc nie było żadnego problemu technicznego, wszystkie dokumenty zostały zaindeksowane zgodnie z definicją procesu. Mam doświadczenie w pracy z różnymi systemami i naprawdę rzadko zdarza się żeby system działał tak stabilnie zaraz po uruchomieniu produkcyjnym.
- NGinn jest bardzo odporny na awarie systemów zewnÄ™trznych. W naszym procesie indeksacji biorÄ… udziaÅ‚ cztery systemy i dość czÄ™sto zdarza siÄ™ że któryÅ› z nich na jakiÅ› czas ‘wypada’, np nie można siÄ™ z nim połączyć lub zgÅ‚asza błędy. W takiej sytuacji NGinn jest w stanie przeczekać okres niedostÄ™pnoÅ›ci systemu i wznowić procesy kiedy system zewnÄ™trzny zacznie odpowiadać. Dzieje siÄ™ tak dziÄ™ki mechanizmowi ponawiania w NGinn który przez okres max. 3 dni próbuje ponownie wykonać nieudane operacje. Oznacza to też że po ustÄ…pieniu awarii administrator systemu nie musi nic robić żeby obsÅ‚uga procesów w NGinn byÅ‚a kontynuowana.
- Standardowo NGinn przechowuje stan wszystkich zadań w bazie danych. Informacje te nie są usuwane po zakończeniu zadania, dlatego ilość gromadzonych danych jest bardzo duża. Proces indeksacji składa się z 6-ciu zadań, co prawda nie wszystkie występują w każdym przebiegu, ale oznacza to że dla każdego indeksowanego dokumentu zapisywane jest 3-6 rekordów w bazie NGinn, co dziennie daje 50-100 tysięcy rekordów. Konieczny jest jakiś mechanizm czyszczący który będzie usuwał stan zakończonych zadań.
- Przy dużej iloÅ›ci przetwarzanych dokumentów potrzebne jest narzÄ™dzie monitorujÄ…ce pozwalajÄ…ce Å›ledzić pracÄ™ NGinn i wykrywać ewentualne problemy. Dobrze by też byÅ‚o mieć jakieÅ› narzÄ™dzie pozwalajÄ…ce na raportowanie przebiegu procesów. Na potrzeby tego konkretnie wdrożenia zostaÅ‚o uruchomione niezbyt rozbudowane narzÄ™dzie pozwalajÄ…ce Å›ledzić podstawowe informacje – np aktywność w NGinn w ciÄ…gu ostatnich 24 godzin – poniżej obrazek z tego narzÄ™dzia:

Podsumowując, myślę że udało się pokazać że za pomocą NGinn można realizować rzeczywiste wdrożenia i narzędzie to potrafi wspierać procesy biznesowe nie tylko na papierze. Mam nadzieję na uruchomienie kolejnych procesów dla tego samego klienta i myślę że to pozwoli rozbudować NGinn o kolejne przydatne funkcje.
2 Responses “Wdrożenie NGinn – case study”
Grraaaaaaatulaaaaacjeeeee!!!!!
))))
DziÄ™ki. No to teraz muszÄ™ wymyslić jak zrobić z tego produkt… Niestety, wersja open source na tym cierpi bo jej ciÄ…gle nie ma.