Upravljanje zahtjevima

Što je upravljanje zahtjevima?

Upravljanje zahtjevima je sistematski pristup:

  • analizi i razumijevanju problema koji se novim sustavom rješavaju
  • prikupljanju, organiziranju i dokumentiranju zahtjeva
  • upravljanju promjenama zahtjeva

Čemu služi upravljanje zahtjevima?

Upravljanje zahtjevima na sistematizirani način omogućuje izradu transparentne specifikacije sustava koja omogućuje postizanje i kontinuirano održavanje dogovora s korisnicima oko toga što točno budući sustav treba raditi.
Svrha upravljanja zahtjevima:

  • Uspostavljanje i održavanje suglasnosti s korisnicima i drugim interesnim stranama što sustav treba raditi
  • Omogućavanje razvojnom timu bolje razumijevanje zahtjeva na sustavu
  • Definiranje jasnih granica sustava
  • Omogućavanje osnove za planiranje tehničkog sadržaja pojedinih iteracija razvoja sustava
  • Omogućavanje osnove za procjenu troškova i vremena za razvoj sustava
  • Omogućavanje podloge za definiranje korisničkog sučelja sustava fokusiranog na potrebe i ciljeve korisnika

Kako upravljati zahtjevima?

Naš pristup upravljanju zahtjevima u velikoj mjeri je utemeljen na Rational Unified Process-u (RUP), svjetski priznatom IBM-ovom procesnom ‘frameworku’ za razvoj softvera te popularnoj Use Case metodologiji specificiranja softverskih zahtjeva.

Bitno obilježje RUP-a kao procesnog ‘frameworka’ je iterativni i inkrementalni pristup razvoju softvera, što pojednostavljeno znači da se razvoj sustava provodi kroz odabrani broj vremenski ograničenih iteracija. Svaku iteraciju karakterizira prolazak kroz sve discipline uključujući upravljanje zahtjevima, analizu i dizajn, implementaciju, testiranje itd. Za razliku od ‘big bang’ i ‘waterfall’ pristupa u kojem se discipline primjenjuju vremenski slijedno, a integracija sustava se događa samo na kraju razvojnog projekta, u iterativnom i inkrementalnom pristupu svaka iteracija uključuje integraciju svih novih dijelova sustava implementiranih u toj iteraciji sa svim dijelovima implementiranim u prethodnim iteracijama. Drugim riječima, svaka iteracija rezultira izvršnim kodom, a time i konkretnom dodanom vrijednošću korisnicima.

U kontekstu iterativnog pristupa, disciplina upravljanja zahtjevima treba omogućiti podjelu ukupnog posla razvoja sustava na diskretne jedinice posla (Use Case-ove) koje se mogu rasporediti po pojedinim iteracijama. Nadalje, prioritiziranjem Use Case-ova stvaraju se preduvjeti za planiranje takvih iteracija kojima se sustavno i ciljano napadaju prepoznati rizici te kontinuirano poboljšava kvaliteta sustava višestrukim doradama korisniku najbitnijih funkcionalnosti.

Opis aktivnosti upravljanja zahtjevima mogao bi se sažeti na sljedeći način. Zahtjevi korisnika (stakeholder requests) koji predstavljaju odraz njihovih potreba prikupljaju se iz različitih izvora. Zajedno s korisnicima i ostalim dionicima zahtjevi se analiziraju s ciljem pronalaženja i rasvjetljavanja stvarnih problema u njihovoj pozadini. Na temelju analize se specificiraju konkretni softverski zahtjevi. Softverski se zahtjevi klasificiraju po tipu (funkcijski, nefunkcijski) te se dokumentiraju u prikladne artefakte – npr. većina se funkcijskih zahtjeva specificira Use Case-ovima.

Use Case metodologija predstavlja glavnu polugu efikasnog upravljanja zahtjevima. Za razliku od klasične funkcijske dekompozicije i deklarativne specifikacije funkcijskih zahtjeva iz pozicije sustava, Use Case-ovima se funkcionalnosti sustava sagledavaju i dokumentiraju iz perspektive ciljeva krajnjih korisnika.

Ovakav pristup koncentrira napore razvoja sustava na isporuku konkretnih vrijednosti njegovim korisnicima. Ukratko, Use Case predstavlja interakciju sustava i njegovih aktora koja rezultira nekom vrijednošću za aktora. ‘Aktor’ se može definirati kao netko ili nešto što je izvan granica sustava, a u interakciji je sa sustavom. Osnovni elementi Use Case modela su Use Case dijagram i Use Case specifikacije.

 Use Case dijagramom se prikazuju svi aktori i njihovi ciljevi (Use Case-ovi) čime se ujedno i definiraju granice sustava.

Tekstualne Use Case specifikacije služe za detaljiziranje interakcije sustava i aktora, odnosno konkretnog načina na koji primarni aktor Use Case-a ostvaruje svoj cilj definiran imenom Use Case-a.

Važan aspekt upravljanja zahtjevima je praćenje međusobnih veza (eng. traceability) između softverskih zahtjeva različitih razina i tipova kao i veza s elementima drugih disciplina. Npr., specifikacije softverskih zahtjeva služe kao podloga za izradu artefakata analize i dizajna, testiranja te izradu korisničke dokumentacije. Praćenje takovih veza je podloga za analizu utjecaja promjena (Impact analysis) te praćenje pokrivenosti zahtjeva (Coverage analysis). Veliku pomoć u provođenju dosljednog praćenja velike količine zahtjeva i brojnih veza među njima pružaju specijalizirani alati za upravljanje zahtjevima (npr. Rational RequisitePro).

Zašto povjeriti upravljanje zahtjevima CROZ-u?

CROZ-ov tim poslovnih analitičara sastoji se od certificiranih stručnjaka za upravljanje zahtjevima s bogatim praktičnim iskustvom u specifikaciji zahtjeva različitih kategorija informacijskih sustava (upravljanje dokumentima (DMS), upravljanje zapisima (RMS), upravljanje odnosima sa strankama (CRM), workflow sustava, portala, data warehouse sustava itd.) razvijenih kao podrška različitim poslovnim domenama (bankarstvo, osiguranje, arhiviranje, pravosuđe, mirovinsko osiguranje, porezni sustav, carinski sustav itd.).

Osnova karakteristika našeg pristupa upravljanju zahtjevima leži u težnji za efikasnim transformiranjem modernih teoretskih znanja u smislene i korisne artefakte koji u konačnici omogućavaju razvoj sustava visoke vrijednosti za njihove korisnike.