BPMN To jest mój pierwszy wpis o BPMN. Nie jestem jakimś specjalistą od tych spraw. Jestem studentem, który musi napisać projekt używając modelowania BPMN. Na szczęście moim zdaniem jest to jeden z ciekawszych przedmiotów, jakie napotkałem w trakcie swoje procesu edukacji. Szkoda ,że przedmiot został zdegradowany do tego stopnia ,że odbywa się on raz na 4 tygodnie. W międzyczasie inny gniot, który do niczego mi się nie przyda będzie moją największą zmorą w tym semestrze.
Co to jest BPMN i dlaczego może się to przydać. Logiczne pytanie każdego uczącego się studenta.
Skrót BMPN stoi za Business Process Model and Notation. Jest to kolejny sposób zobrazowania przepływu pracy.
Co oznacza słowo “biznes” w tym skrócie. Biznes w tym kontekście określa wszystkie procesy, jakie wykonuje firma.
Na przykład proces “zatrudniania pracowników”,”wdrażania pracowników” , “rekrutacji pracowników”, jak i ich “zwalniania”.
Po co modelować te procesy czy nawet tworzyć dokumentację, która określa jak krok po kroku niczym algorytm komputerowy wykonać dany proces według polityki danej firmy.
Dla kontroli i solidności samego procesu. Jeśli firma ma określony proces przebiegu rekrutacji to istnieje duża szansa ,że zależy je nawet na tym by osoby tylko starające się o prace w danej firmie miały o niej dobre zdanie. Dany rekruter też nie będzie mógł wyżyć swoim kompleksów na młodym studencie tylko dlatego, że miał zły dzień. Przecież jest dokumentacja określająca jak dokładnie ma się zachowywać i jakie ma zadawać pytania.
BMPN można też wykorzystać w programowaniu. W końcu tworzenie graficznych interfejsów czy tabelek SQL służy jakiemuś celowi. A do celu dochodzimy poprzez proces. Parząc na diagramy BMPN mam wrażenie ,że patrzę na projekt programistyczny napisany w Workflow Foundation.
Osobiście moje pierwsze spojrzenie na BPMN wywoła pozytywne odczucie. Model musi być prosty i czytelny dla przeciętnego człowieka i widać to w tej notacji. W UML mamy do tego też odpowiednie diagramy ,ale one nie mają pewnych symboli, które za to posiada BPMN.
BPMN, mimo iż na pierwszy rzut oka to kolejne prostokąty i strzałki .Daje on naprawdę prawdziwą moc zobrazowania danego procesu.
Po co, czyli jak zobrazować działania firmy
Sama próba zobrazowania procesu w pełni sensie go waliduje.Jeśli klient nie wie czego dokładnie chce to oczywiście wyjdzie to nam przy modelowaniu jego usługi. Modelowanie procesu także pozwoli nam na jego dokładną analizę. Dzięki tej analizie będziemy mogli go ulepszać bądź znaleźć w nim pewne nieścisłości proceduralne.
Celem modelowania jest także ustalenie pewnego porządku. Duża organizacja biznesowa mam swoje działy. Każdy z tych działów ma swoje przypisane cele. W kontekście firmy jako całości działy te są traktowane jak pudełka z który są tylko odpowiednie wejścia i wyjścia.
Co to znaczy?
Znaczy to ,że w dużych organizacjach pojedyncze osoby z danych działów są tak naprawdę tylko trybikami wewnątrz tego pudełka. Nie są one widoczne, ponieważ dla przepływu procesu są ważne rezultaty. Te trybiki są sterowane tylko przez osoby, które nazywamy swoimi szefami . Czy to źle? Trudno ,aby istniała jedna osoba, która byłaby w stanie ogarnąć organizację jako całość. Szefowie i tak tracą pół dnia na spotkania z innymi działami, jak i czytanie tysięcy e-mail od innych działów.
Złożoność struktury duży firmy nie ogranicza się tylko do działów, jak i ich siedzib. Firmy mogą także współpracować z innymi w firmami w celu osiągniecie wspólnego celu.
Mając do dyspozycji cały ten chaos powstaje pytanie jak tym w ogóle zarządzać i mieć nad czymkolwiek jakąkolwiek kontrolę.
Ratunkiem w takiej sytuacji są właśnie procesy sterowane za pomocą odpowiednich dokumentacji.
Jak model może przyspieszyć pracę
Powiedzmy ,że prowadzimy sklep internetowy. Procesem głównym sklepu jest proces sprzedaży.
Modelowanie procesu sprzedaży może zawierać w sobie podprocesy. Podprocesy też są częścią składni BPMN.
- Przyjęcie zamówienia
- Weryfikacja zapłaty
- Realizacja zamówienia
- Kontrola jakości
Aby sklep funkcjonował jak najlepiej każdy z tych podprocesów musi działać jak najlepiej. Proces sprzedaży musi więc być.
- Efektywny
- Wydajny
- Kontrolny wewnętrznie
- Zapewniać realizacje polityki firmy (odpowiednia jakość)
Te cechy łatwo uzyskać, jeśli stworzy odpowiedni modeli procesu.Zatrudniamy więc odpowiednie osoby i przypisujemy je odpowiednie zadania.
W teorii odpowiedni za modelowany odpowiednio proces może zwiększyć wydajność całej firmy. Oczywiście wciąż trzeba pomyśleć o problemach, które nie łatwo zmapować do postaci kwadracików i strzałek.
Pracownik może zachorować i nie ma zastępstwa. Cały proces wtedy się wali.
Definicje
Filozofia BPMN zawiera w sobie także pewne definicję.
BPMN służy do opisywana trzy podstawowych typów procesów:
- proces wewnętrzny – prywatny (procesy, które są wykonywane wewnątrz w firmie)
- proces publiczny – proces, które wyniki są znane każdej osobie
- proces kooperacji – współpracy (procesy wykonywane między firmami)
Sam proces biznesowy musi charakteryzować się następującymi cechami:
- Definiowalność: Proces musi mieć jasno zdefiniowane granice, wejście i wyjście.
- Porządek: Proces musi składać się z działań uporządkowanych według ich usytuowania w czasie i przestrzeni.
- Klient: Musi być odbiorcą rezultatów procesu.
- Zwiększanie wartości: Transformacja w trakcie procesu musi dawać odbiorcy dodatkową wartość.
- Osadzenie: Proces nie może egzystować samodzielnie - musi być wbudowany w strukturę organizacyjną.
- Wielofunkcyjność: Proces może, ale niekoniecznie musi, obejmować wiele funkcji.
Jeśli dany proces nie posiada tych cech możemy mieć problem z jego zmapowaniem.
Program do tworzenia modeli BPMN
Nie znam żadnych alternatyw ,ale program w “Bizagi Process Modeler” w swojej darmowej wersji oferuje wszystko to co nam jest potrzebne do tworzenia modeli jak i dokumentacji.
http://www.bizagi.com/modeler/
W wersji Suit model może być walidowany w swojej logicznej poprawności, jak i uruchamiany niczym aplikacja programistyczna “workflow”.
W wersji płatnej istnieje więcej schematów do tworzenia dokumentacji.
Notacja BPMN
Notacja BPMN zawiera dosyć nie wiele elementów na pierwszy rzut oka. Prawdziwa zabawa zaczyna się, gdy poznajemy rodzaje zdarzeń, rodzaje bramek, jak i rodzajów działań. Ich kombinacja dane sporą paletę możliwości ,która spokojnie pozwoli nam na opisanie każdego procesu.
BPMN pomyślało nawet o pod procesach ,które mogą wykonywać się przykładowo w pętli bądź transakcyjne. Co to znacz transakcyjnie? Jeśli nie damy sklepowej pieniędzy nie powinniśmy otrzymać towaru czyli mimo iż dany proces ma swoją kolejność jeśli nie wykonaliśmy dalszy akcji poprawnie proces powinien się cofnąć do punktu startowego.
W programie “Bizagi Process Modeler” wszystko to co potrzebujesz znajduje się po lewej stronie. Jeśli chcesz umieścić dany element na diagramie to po prostu go przeciągasz. Gdy chcesz połączyć element już z egzystującym wybierasz jedną z ikonek które pojawiają się po najeżdżeniu na dany element i znowu przeciągasz.
Jeśli chodzi o szersze możliwości elementów są one dostępne w menu kontekstowym.
Każdy element powinien też mieć swoją nazwę i opis są one dostępne we “properties” (właściwościach) elementu. Nie wszystkie te meta informacje są widoczne na diagramie ,ale później zostaną one wydrukowane na dokumentacji.
Ostatecznie nie tworzymy tylko diagramu w programie “Bizagi Process Modeler” tworzymy także dokumentację całego opisywanego przez nas procesu.
Szybki przykład użycia Bizagi Process Modeler i BPMN
Będę szczery ,że w tym momencie sprawdzam swoją wiedzę, którą przyswoiłem w przeciągu 4-godzinnego wykładu. Co oznacza ,że ten przykład zawiera także moje przemyślanie dotyczące samego modelowania. Jak się okazuje pewne procesy można zobrazować lepiej i gorzej za pomocą inne kombinacji elementów, mimo iż jest to wciąż ten sam proces.
Na początek umieszczę pojedynczą aktywność i nazwę ją “Szukanie materiałów”.
Moim celem jest stworzenie diagramu, który określi przepływu procesu tworzenia prezentacji na spotkania grupy .NET (grupy programistycznej). Do stworzenia prezentacji nie wystarczy PowerPoint i pozytywne chęci. Trzeba najpierw zebrać materiały na dany temat. Potem dopiero przejść do aktywności pisania prezentacji.
Proste przejście z jednej aktywności do drugiej jest ukazane poprzez prostą strzałkę.
Teraz czas na coś trudniejszego. Jak zobrazować przypadek, w którym nie udało mi się napisać prezentacji. Pomimo znalezionych materiałów mogę stwierdzić ,że dane zagadnienie jest dla mnie za trudne i zrezygnować z prezentowania danego zagadnienia. Gdy to nastąpi powinienem wtedy poinformować o tym e-mail szefa grupy .NET.
Jednym ze sposobów jest bramka logiczna XOR. Jest to domyślna bramka w BPMN może być ona oznaczona iksem bądź bramką bez żadnego symbolu.Bramka ta zadaje pytanie “Czy prezentacja została napisana z powodzeniem?”. Jeśli odpowiedź brzmi “tak” to przechodzimy do aktywności “Zapisanie prezentacji”. Przeciwnym wypadku przechodzimy do zdarzenia (kółko podkreślone dwa razy) z symbolem poczty. Symbol ten określa ,że dane zdarzenie będzie wysłać jakąś wiadomość.
Przy okazji warto wspomnieć ,że cała ta bramka działa poprawnie tylko wtedy gdy zbiór odpowiedzi na pytanie “Czy z powodzeniem” zawiera tylko elementy “tak” i “nie”. Jeśli istnieją inne elementy w zbiorze odpowiedzi wtedy cały ten diagram trzeba uznać ,za logicznie niepoprawny. Z bramki wchodzi jeden token albo jak wolisz przepływ i ten przepływ może podążać tylko za jedną ścieżką. Co oznacza ,że nie mogą tutaj wystąpić dwa razy ścieżki “tak”.
W całym diagramie brakuje zdarzeń początku i końca procesu. Jeśli ich nie mamy takich elementów to zakładamy ,że aktywności znajdująca się najbardziej po lewej stronie rozpoczyna cały proces. Nie zmienia to jednak faktu ,że cały diagram jest mniej czytelny. Zdarzenie początku jest określone zielone kółkiem ,a zdarzenie zakończenia procesu jest określone czerwony kółkiem z podwójnym pogrubieniem.
Pomiędzy aktywnościami dodałem zdarzenie czasowe, które w tym kontekście określa czekanie na spotkanie Grupy.NET.
Zdarzenia rozpoczynające może być wywoływane przez określony wyzwalacz. Na obrazku poniżej dodałem ikonkę listu, jak i jego opis wywołania. Teraz mamy więcej informacji o tym, co w ogóle powoduje ten cały proces tworzenia prezentacji na grupę .NET.
O to przed wami diagram opisujący proces tworzenia prezentacji na grupę .NET. Nie jest to jednak dobry diagram .
Bramka XOR nie zawiera żadnej informacji o tym, dlaczego prezentacja została uznana za nieprawidłową. Zresztą z kontekstu tego diagramu wynika ,że prezentacja została napisana ,a potem ja sam określam czy to co zrobiłem jest warte pokazania na spotkaniu grupy .NET.
A co jeśli prezentacja nie został w ogóle napisana i po prostu w trakcie jej tworzenie minęło tyle czasu ,że stwierdziłem ,że nie ma to żadnego sensu. Ten diagram tego nie ukazuje ,ale można to poprawić.
Do aktywności “Pisanie prezentacji” dodam zdarzenie czasowe. Określa ono ,że jeśli w tracie wykonywania tej aktywności wystąpi to zdarzenie to przepływ procesu przejdzie do innej ścieżki.
Teraz diagram wyraźnie określa ,że jeśli tworzenie prezentacji zajmie mi więcej niż 6 godzin wtedy wystąpi rezygnacja. Dla uproszczenie diagramu pozbyłem się bramki XOR.
Czy można napisać jeszcze lepiej ten diagram? Nie możność napisania prezentacji można potraktować jako wyjątek i błąd. Tak diagram BPMN niczym kod w programowaniu też może być gotowy na wyjątki.
Postanowiłem jednak spróbować czegoś innego. Fakt dokonany jak “Prezentacja stworzona” można potraktować jako zdarzenie. BPMN oferuje także bramki zdarzeniowe. Bramka ta przekieruje przepływ w kierunku zdarzenia, które wystąpiło jako pierwsze.
Niestety ten diagram jest kompletnie błędny.
Zadania (niebieskie prostokąty) mają swoje określone cele. Te cele są już spełnione, gdy przechodzimy dalej.
Co oznacza ,że oczekujemy na zdarzenie “Prezentacja skończona”, które już zaszło po skończeniu tej aktywności. Jest to logiczny błąd tego tego diagramu.
Czy coś jeszcze w diagramach trzeba poprawić? Okazuje się ,że tak. W BPMN niektóre zdarzenia mają dwie opcję przechwytu i wyrzucania.
W przykładzie zdarzenia wiadomości może być ono wysłane, jak i odbierane.
Tworzenie dokumentacji
Stworzenie diagramu to dopiero początek. Naszym celem jest dokumentacja. Jak więc edytować meta dane i wyeksportować nasz diagram do dokumentu?
Sprawa jest naprawdę prosta. Meta dane każdego elementu łatwo z edytować poprzez wywołanie menu kontekstowego i kliknięcie na “Properties”.
Poniżej w programie powinny ukazać się dodatkowe zakładki.
Dla przykładu w zakładce “advanced” dla bramki logicznej XOR dodałem opis wyrażeń logicznych, do których mają wędrować przepływy.
Aby stworzyć dokumentację wystarczy przejść do zakładki “Publish” ,a potem wybrać jedną z opcji.
Przez proces tworzenia dokumentu zobaczysz kilka okienek. Głównie określają jakie diagramy i jakie elementy mają być umieszczone w dokumentacji.
Jeśli wszystkie meta informacje zostały wypełnione dokumentacja będzie wyglądać dużo lepiej niż na załączonym screenie.
Jaki widać elementy metadane, które uzupełniłem pojawiły się w dokumentacji.
Do zobaczenia w następnych wpisach o BPMN. Następnym razem opiszę krok po kroku każdą bramkę , każde zdarzenie, jak i aktywność , które znajdują się w specyfikacji BPMN.