Business Process Model and Notation sau pe scurt BPMN este unul dintre cele mai cunoscute standarde de modelare și management al proceselor de business, fiind extrem de util în etapele de definire și aliniere a produselor software. Obiectivul BPMN este acela de a furniza un set unificat de elemente și de notații care să fie ușor de înțeles și de folosit de către toți participanții la procesul de livrare.
Un management eficient al proceselor de business într-un produs software este esențial atât pentru succesul acestuia pe piață cât și pentru cel al relației dintre client și compania prestatoare, relație intermediată de analistul de business. Știm cu toții că beneficiarii și/sau sponsorii produselor software nu sunt familiari cu terminologia specifică domeniului IT, apărând astfel numeroase probleme de comunicare între aceștia și echipele de livrare. Pentru a facilita această comunicare și pentru a aduce un plus de claritate cerințelor funcționale obținute, procesele de business trebuie modelate într-o manieră cât mai elocventă, folosind un limbaj standardizat și pe înțelesul tuturor.
Pentru crearea diagramelor BPMN se pot avea în vedere utilitare precum: MS Visio, Sparx Systems Enterprise Architect sau variante gratuite cum ar fi BonitaSoft, Intalio sau ProcessMaker.
Putem defini un proces de business ca o succesiune de activități de business realizate de către participanți, cu scopul de a-și atinge obiectivele și de a livra valoare. Aceste procese pot fi modelate pe trei nivele de detail, iar BPMN le suportă pe toate:
În analiza de business, procesele - independent de tipul lor (de management, operaționale sau de suport) trebuie modelate pentru a beneficia de următoarele avantaje:
Diagramele oferite de BPMN, numite BPD - Business Process Diagrams sunt similare diagramelor de activitate, fiind însă cu mult mai expresive și ușor de asimilat și putând fi totodată executate de utilitarele BPEL.
Pentru a crea BPD-ul, analistul de business identifică și modelează evenimentul de început al procesului, apoi celelalte evenimente, în ordinea în care se petrec până la evenimentul care încheie procesul. Deciziile de business și căile alternative se modelează folosind blocuri de decizie (engl. gateways). Dacă procesul de business este unul complex, el poate fi descompus în sub-procese, fiecare dintre acestea fiind modelat printr-o BPD aferentă, iar rezultatele obținute vor fi interconectate, pentru a obține vederea de ansamblu.
Prezentarea sintetică a avantajelor acestui standard, care vine atât în ajutorul analiștilor de business cât și al clienților, poate lua următoarea formă:
Un model BPMN poate fi descris ca o succesiune de noduri, conectate prin fluxuri paralele sau secvențiale. Pentru a putea folosi BPMN în analiza de business, trebuie să cunoaștem câteva elemente cheie ale limbajului, care sunt folosite la descrierea majorității proceselor. Mai întâi trebuie să știm că există patru categorii de elemente, după cum putem vedea mai jos:
Chiar dacă limbajul BPMN este flexibil și nu ne impune constrângeri în ceea ce privește modelarea, este bine să respectăm câteva bune practici stabilite în prealabil la nivelul echipei de proiect, al departamentului sau al organizației:
În cele ce urmează vom analiza un exemplu scurt și intuitiv pentru a evidenția modul în care se aplică analiza BPMN în cazul unui scenariu de business concret precum și pașii necesari pentru crearea BPD-ului.
Să studiem procesul prin care un angajat din departamentul IT al unei companii solicită concediu iar superiorul său ierarhic, după o evaluare prealabilă, aprobă sau nu cererea sa. Vom adăuga și cazul în care superiorul ierarhic nu răspunde în timp util la cerere, caz în care se va opta pentru o rută alternativă, cu răspuns automat, trimis de către sistem în numele acestuia.
În situația de față, în primul rând trebuie să punem în evidență actorii implicați în proces și anume angajatul, superiorul ierarhic și sistemul.
La pasul al doilea vom identifica setul de activități desfășurate de fiecare dintre cei trei actori în cadrul procesului, ca de exemplu:
Angajatul: solicită absența - activitate urmată de notificarea superiorului său ierarhic.
Superiorul ierarhic: procesează cererea de absență,iar apoi decide dacă o aprobă sau o respinge. Ambele decizii sunt însoțite de trimiterea unui mesaj de notificare înapoi către angajat.
Sistemul: pune la dispoziție fluxul alternativ care constă în respingerea automată a cererii de concediu, în cazul în care superiorul ierarhic nu răspunde afirmativ sau negativ în timp de o zi (acțiune urmată de trimiterea unui mesaj automat de respingere către angajat).
La pasul al treilea trebuie să decidem tipurile de elemente cu care vom crea BPD-ul. Hotărâm că vom folosi un pool cu două lane-uri, unul pentru angajat și celălalt pentru superiorul său ierarhic. Tot pe lane-ul superiorului vom reprezenta și acțiunile făcute de sistem, care în situația de față îl impersonalizează. Mai avem nevoie și de activități, blocuri de decizie și evenimente de start, intermediare și de stop. Cu rol de conectori utilizăm fluxuri secvență și fluxuri mesaj.
La pasul patru, începem să plasăm elementele BPMN pe BPD și anume - pe lane-ul angajatului vom avea următoarele: evenimentul de start, activitatea de solicitare absență, evenimentul intermediar de notificare a superiorului ierarhic și evenimentul de stop.
Pe lane-ul superiorului ierarhic modelăm evenimentul de start - care constă în primirea notificării trimise de angajat, activitatea de procesare a absenței, blocul de decizie în urma căruia rezultă aprobarea sau respingerea cererii - însoțite de evenimentele intermediare de notificare a angajatului cu rezultatul procesării și din ambele cazuri, evenimentul de stop.
Tot pe lane-ul superiorului ierarhic, la activitatea de procesare a cererii, plasăm un eveniment intermediar de timeout (cu valoarea de o zi) după expirarea căruia se declanșează evenimentul intermediar de notificare a angajatului de respingerea cererii, urmat de evenimentul de stop.
Existența unui standard pentru modelarea proceselor de business, cunoscut și înțeles de către analiștii de business, client și echipele tehnice este de un real folos nu numai în analiza de business ci și în întregul proces de livrare, cu atât mai mult cu cât este vorba despre un standard simplu, intuitiv și care nu presupune cunoștințe tehnice anterioare. Beneficiile majore ale acestuia sunt reprezentate de înțelegerea și comunicarea proceselor de business între părțile implicate și capacitatea modelelor rezultate de a fi executate de BPEL.