Nagu eelmises postituses mainisin, siis on lüüsid (ingl. gateway) äriprotsessides väga olulised elemendid ja seepärast tuleb neid ka mudelites otstarbekalt kasutada. Miks on siis lüüsid ikkagi olulised? Eks ikka selleks, et suuta võimalikult reaalelu lähedasi situatsioone modelleerida. Päriselus ei ole ka meie tegevused sirgjoonelised, vaid sisaldavad vähemal või rohkemal määral erinevaid otsustuskohti. Otsutuskohad, mida protsessimudelites modelleeritaksegi lüüside kaasabil, omakorda defineerivad protsessi edasise käigu ja loogika.

Võtame näiteks ühe väga lihtsa tööprotsessi – seesama hommikusöögi valmistamise protsess, mida oma esimestes postitustes näitena kasutasin. Ka selline lihtne tööprotsess sisaldab väga mitmeid otsustuskohti – näiteks peab kõigepealt otsustama, mida hommikusöögiks üldse süüa soovitakse (omletti, võileiba, putru vms) ja see otsustuskoht määrab ära protsessi edasise käigu – iga eelnevalt mainitud söögi valmistamine eeldab iselaadi tegevusi . Samuti peab mainitud protsessis näiteks otsustama, kas juuakse musta kohvi või kohvi piima ja suhkruga. Nagu näha, siis võib juba väga iseenesestmõistetav ja lihtne tööprotsess sisaldada mitmeid otsustuskohti.

Ma olen korduvalt erinevaid analüüse, hankedokumente vms lugedes märganud, kuidas lüüse kasutatakse ebaotstarbekalt ja kohati isegi BPMN notatsiooniga vastuolus. See võib olla tingitud sellest, et BPMN notatsioon näeb ette 6 erinevat tüüpi lüüse (Exclusive Gateway, Inclusive Gateway, Paralleel Gateway, Complex Gateway, Event-based Gateway, Parallel Event-based Gateway) ning selline valikute paljusus võimaldab ka kasutajatel palju vigu teha. Või siis võib lüüside väärkasutuse taga olla ka lihtsalt modelleerija teadmatus, millises olukorras mingit lüüsi kasutada ja millised on lüüside kasutamisega seotud reeglid.  Seepärast mõtlesin teile põgusalt tutvustada mainitud kuute erinevat lüüside tüüpi ja kirja panna mõned elementaarsed soovitused lüüside kasutamise kohta.

Erinevad lüüside tüübid

Välistav lüüs (Exclusive Gateway) on kõige enim kasutatav lüüsi tüüp ja selle kaasabil modelleeritakse selliseid situatsioone, kus protsessi voog saab jätkuda ainult ühes voos (selles, mille tingimus on täidetud). Paralleelne lüüs (Parallel Gateway) on vastupidise loogikaga ehk selle puhul jätkub protsessi voog alati mitmes paralleelses voos. Kaasav lüüs (Inclusive Gateway) on justkui kombinatsioon välistavast ja paralleelsest lüüsist – see võib teatud olukordades (nt. kui on täidetud vaid ühe protsessi voo tingimus) käituda justkui välistav lüüs ja teatud olukordades (nt. kui on täidetud mitu protsessi voo kriteeriumit) justkui paralleelne lüüs.

Kompleksset lüüsi (Complex Gateway) kasutatakse tavaliselt väga vähe, kuna see on mõeldud üpris spetsiifiiste olukordade kajastamiseks.  Näiteks võib kompleksset lüüsi kasutada koondava lüüsina olukorras, kus lüüsi siseneb 5 erinevat voogu ning lüüs aktiveerub (st protsess jätkub) juhul kui lüüsi sisenevast viiest tingimusest on kolm täidetud. Sündmuspõhiseid lüüse kasutatakse kombinatsioonis BPMN-i sündmuste notatsiooniga ning nende idee on selles, et teatud sündmuste realiseerumisel, kas käivitub protsess (juhul kui sündmuspõhist lüüsi kasutatakse protsessi algatamiseks) või jätkub protsessi voog. Tavalist sündmuspõhist lüüsi (Event-based Gateway) kasutatakse juhul kui protsessi võivad käivitada või seda jätkata küll mitu erinevat sündmust aga need ei pea realiseeruma sama-aegselt. Paralleelsest sündmuspõhist lüüsi (Parallel Event-Based Gateway) kasutatakse juhul kui protsessi peavad käivitama või seda jätkama mitu sündmust korraga. See tähendab, et kõik sündmused peavad realiseeruma, enne kui protsess käivitub või jätkub.

Soovitused lüüside kasutamisel

Soovitus nr 1 – Tasakaalusta lüüside kasutamist

Üldiselt on protsesside modelleerimisel reegel, et kui kasutatud mingit tüüpi lüüsi protsessi voogude jagamiseks, siis tuleb sama tüüpi lüüsi kasutada ka protsessi voogude koondamiseks. Miks ma kasutasin sõna üldiselt? Seda sellepärast, et BPMN notatsiooni järgi ei pea tegelikult koondama välistavat lüüsi. Mina koondan enda poolt loodud protsessimudelites isegi välistavat lüüsi, sest siis on kõik lüüsid mul mudelites kasutatud ühtse loogika järgi ja see jällegi aitab protsessist paremini aru saada.

Soovitus nr 2 – Kasuta lüüse asjakohaselt

Olen näinud selliseid protsessimudeleid, kus lüüsi on sisenenud või sealt väljunud ainult üks voog – sellised lüüsid on tegelikult üleliigsed ja see näitab, et lüüse pole kasutatud otstarbekalt. Lüüsi “idee” on kas tekitada ühest voos mitu (ehk voog hargneb) või koondada mitu voogu üheks (ehk voog koondub). Kui mudelitel esineb ebaotstarbekat lüüside kasutamist, siis võib sellised lüüsid mudelilit eemaldada.

Soovitus nr 3 – Minimeeri kaasava lüüsi kasutamist

Protsessides saab väga palju olukordi modelleerida tegelikult kahe enimkasutatava lüüsi – välistava ja paralleelse lüüsi abil. Seega on esimene soovitus alati mõelda, kas saabki äkki hakkama ainult neid kaht tüüpi kasutades. Kui ikkagi ongi keerukam protsess, mis “nõuab” kaasava lüüsi (Inclusive Gateway) kasutamist, siis palun tee endale selgeks, kuidas seda lüüsi õigesti kasutada! Siinkohal soovitus nr 1 – kõikidel kaasavast lüüsist väljuvatel voogudel peab olema peale kirjutatud tingimus, millisel juhul mingi voog realiseerub! Soovitus nr 2 – kaasavast lüüsist väljuvaid voogusid peab alati koondama!

Soovitus nr 4 – Kasuta võimalikult vähe erinevat tüüpi lüüse

Protsesside modelleerimisel võiks järgida seda printsiipi, et kasutatakse nii vähe kui võimalik erinevaid tüüpe lüüse. Modelleerija ei peaks oma oskuste demonstreerimiseks (vahepeal tundub, et just sel eesmärgil on kõikvõimalikke lüüsi tüüpe kasutatud 🙂 ) kasutama protsessimudelil võimalikult palju erinevaid lüüsi tüüpe. Pigem raskendab erinevate lüüsi tüüpide kasutamine protsessist arusaamist. Samas on teatud keerukamad protsessid, mis “nõuavad” ka väga eriliste lüüside või lüüside kombinatsioonide kasutamist. Üldine soovitus – vali erinevaid lüüsi tüüpe sõltuvalt oma mudeli tarbijast! Kui mudeleid tarbib ettevõtte juhtkond, siis tuleks protsessi lihtsustada ja kasutada vajadusel ainult välistavat lüüsi. Kui mudeleid tarbib teine modelleerija, arendaja vms, siis võid kasutada ka keerukamaid lüüse ja nende kombinatsioone.

Soovitus nr 5 – Jaga ja ühenda voogusid ühetaoliselt

Viimane soovitus on selle kohta, et protsessis voogude jagamiseks ja ühendamiseks ei tohiks kasutada sama lüüsi. Kui protsessis esineb olukordi, kus on vaja näiteks kusagilt protsessi teisest kohast voog uuesti protsessi varasemasse kohta suunata ja kohe mingi järgmise tingimuse alusel voogusid jagada, siis tuleks kasutada kahte järjestikust lüüsi.

Koostöös IT koolitusega olen läbi viimas äriprotsesside kirjaoskuse teemalist koolitust – https://koolitus.ee/koolitused/9756/koolitus-ariprotsesside-kirjaoskuse-koolitus. Koolitusel tutvustan juhiseid heade protsessimudelite loomiseks, sh räägime ka lüüsidest ja nendega seotud reeglitest. Samuti proovime enda modelleeritud mudeleid vastavalt toodud soovitustele parandada.

Kui sind kõnetavad teemad, mida oma blogis kajastan, siis võta minuga julgelt ühendust!