Naslovna > Konzalting > IT Governance & IT Management > Izrada tehničkih specifikacija za razvoj informacijskih sustava
Izrada tehničkih specifikacija za razvoj informacijskih sustava
Što su tehničke specifikacije za razvoj informacijskih sustava?
Kako bi se što efikasnije moglo procijeniti vrijeme razvoja nekog informacijskog sustava (IS) te izračunati troškove provođenja samog projekta, na početku je potrebno definirati normativni okvir koji će nam pomoći u definiranju opsega projekta s regulatornog (zakonskog, tehničkog, poslovnog ili drugog) aspekta te je uz to potrebno puno savjetovanja sa svim zainteresiranim stranama, odnosno prije svega s naručiteljem informacijskog sustava (IS). Sam klijent ne mora nužno biti i korisnik
sustava, ali mora moći opisati problem koji želi riješiti, što mu odgovara, a što ne i slično.
Proces komunikacije s klijentom, odnosno naručiteljem informacijskog sustava, zapravo je iterativan proces. U praksi klijent često mijenja svoje ideje i manevrira od osnovne zamisli dogovorene na inicijalnim sastancima. Takve stvari je često nemoguće izbjeći pa ih treba imati na umu od samog
početka, budući da troše vrijeme i iziskuju dodatne napore i energiju. Također, u
kompanijama koje rade po SCRUM metodologiji razvoja softvera, u svakoj razvojnoj iteraciji
(tzv. sprintu) postoji vrijeme određeno samo za dorade značajki na temelju iskomuniciranih
potrebnih modifikacija s klijentom. U kontekstu početnih dogovora s klijentom i prvih koraka u projektiranju novog informacijskog sustava, treba spomenuti ulogu korisničkih priča, slučajeva korištenja, funkcionalnih i nefunkcionalnih specifikacija i nužnosti dokumentiranja dogovorenih procesa, izmjena i značajki kao i tehničke infrastrukture. Sve te aktivnosti zajedno rezultiraju tehničkim specifikacijama za razvoj nekog informacijskog sustava te je takva dokumentacija temelj razvoja informacijskog sustava .
Što je funkcionalna specifikacija?
Ugrubo, ova specifikacija predstavlja opis kako informacijski sustav (IS) treba raditi, odnosno što ne bi trebao raditi. To nije dokument napisan isključivo za tehničke stručnjake, već i za ostale članove tima koji moraju biti upućeni u ono što informacijski sustav obavlja. Izrada funkcionalne specifikacije je nužna ne samo za one koji razvijaju informacijske sustave, već i za klijenta, odnosno naručitelja, osobu koja specificira svoje zahtjeve, kako bi se u bilo kojem trenutku poznavao smjer kretanja razvoja IS-a. Zahvaljujući postojanju funkcionalne specifikacije, mogu se raspisati troškovi projekta,
ugrubo predvidjeti vrijeme razvoja pojedinih značajki, procijeniti nastanak eventualnih
problema te za razvojne inženjere ono najbitnije, mogućnost uvida u smjer razvoja u bilo kojoj fazi
projekta. Naime, često se u IT kompanijama (pogotovo manjim), zanemari ovaj aspekt razvoja,
pa onda novopridošli programeri troše vrijeme analitičara, testera, drugih programera ili pak
samih voditelja projekata, kako bi im objasnili ulogu i svrhu postojanja pojedinih dijelova
sustava, a to sve samo zato što funkcionalna specifikacija ne odražava trenutno stanje
informacijskog sustava (nije ažurirana prolaskom vremena i dolaskom novih značajki) ili je nepostojeća (pogotovo u manjim tvrtkama koje ne mogu odvojiti resurse za izradu tehničkih specifikacija. Najčešće u funkcionalnu specifikaciju idu i procesni dijagrami toka, koji dodatno (grafičkim prikazom), pomažu definiciji projektnog zadatka. Sastavni dio funkcionalne specifikacije novog informacijskog sustava koji podrazumijeva postojanje barem jednog ili više aplikativnih rješenja (korisničke aplikacije) su „wireframes“, žičani okviri kojima se definira (UI/UX) dizajn korisničkih sučelja.
Što je nefunkcionalna specifikacija?
Nefunkcionalne specifikacije informacijskog sustava odnose se na:
- Korisničko sučelje i ergonomija aplikativnih rješenja koje mora biti prilagođeno potrebama korisnika što znači da mora biti intuitivan i jednostavan način korištenja. Posebnu pažnju treba posvetiti brzini sustava što je ključno za brzinu obavljanja radnih zadataka i poslovnih procesa.
- Razinu dostupnosti i sigurnosti sustava, a to znači da sustav korisnicima mora biti dostupan konstantno tijekom cijele godine uz iznimke vezane uz održavanje koje će se dogovoriti s Naručiteljem. Pristup sustavu treba biti ograničen odnosno omogućen samo osobama koje imaju dodijeljeno pravo pristupa. Sustav ne smije pohranjivati korisničke lozinke već se treba moći oslanjati na vanjske servise za autentifikaciju. Sustav mora imati mogućnost administriranja prava korisnika što uključuje dodavanje korisnika te upravljanje njihovim ulogama i pravima.
- Modularnost i skalabilnost informacijskog sustava, po kojem sustav mora imati mogućnost dodavanja novih modula funkcionalnosti (engl. plugin) razvijenih od trećih strana i/ili samog proizvođača bez potreba za gašenjem sustava i bez zaustavljanja poslovnog procesa te istovremeno biti skalabilan ovisno o broju istovremenih korisnika informacijskog sustava.
- Interoperabilnost i povezivost na vanjske (druge) informacijske sustave putem API servisa.
- Zahtjeve za višejezičnošću korisničkih sučelja informacijskih sustava.
- Sigurnosna kopiranja podataka (backup), a to znači da je potrebno osigurati aktivnosti i infrastrukturu vezane uz pohranu sigurnosnih kopija podataka, kao i ispravnu strukturu i čitljivost podataka spremnih za izradu sigurnosne kopije.
- Zahtjeve za softverskom i hardverskom infrastrukturom (baze podataka, procesorska snaga, diskovni kapaciteti, propusnost mreže).
- Zahtjeve za sustavnim nadzorom i logiranjem aktivnost korisnika na informacijskom sustavu.
Tehnička specifikacija je dokument namijenjen tehničkom dijelu tima, odnosno programerima, administratorima baza podataka ili čak sistemskim inženjerima, a njen cilj je opisati
tehničke aspekte aplikacije kao što su struktura baze podataka (relacije između tablica),
arhitektura sustava, tehnologija (programski jezici) i radni okviri (engl.Framework), programi
za razvoj, mrežne specifikacije i slično. Ona je izrazito bitna razvojnim inženjerima, a ne toliko ostalim članovima tima koji nisu direktno uključeni u tehnički aspekt oblikovanja informacijskog sustava. Svrha njenog postojanja najviše dolazi do izražaja prilikom početka rada na nekom novom projektu, kada je potrebno definirati tehnologije i alate koji će se koristiti za razvoj ili kada dođe novi programer u tim, pa ga treba upoznati s kodom u pozadini. Tada ta osoba može u detalje proučiti napisanu tehničku specifikaciju, te ako je ona koherentno i precizno napisana, lako shvatiti ideju iza koda koji čini aplikaciju. Tvrtke obično drže do nekih standarda i konvencija u pisanju koda, a
postojanje tehničke specifikacije kao dokumenta koji opisuje tehničku stranu razvoja
aplikacije tome još više doprinosi.
Što je Enterprise arhitektura?
Ključni segment funkcionalne / nefunkcionalne i tehničke specifikacije (kao jedinstvene projektne dokumentacije za razvoj informacijskog sustava) je Enterprise arhitektura. Osnovna prednost pristupa modeliranju informacijskih sustava putem tehnika Enterprise Arhitekture (EA) je cjelovitost pogleda na sve aspekte arhitekture informacijskog sustava, kao i povezivanje informacijskog sustava sa svojom okolinom. Pri tome Enterprise Arhitektura zapravo modelira stvarni svijet, gdje objekti strateške razine kao što su strategije, politike i zakoni utječu na poslovnu domenu, a objekti iz poslovne domene kao što su poslovni procesi, elementi organizacije i poslovni objekti (npr. predmet, pismeno, klasifikacijska oznaka) utječu na podatke i funkcionalnosti informacijskog sustave. Postoji niz notacija za EA modeliranje, pri čemu se model arhitekture sustava definira kroz nekoliko međusobno povezanih i isprepletenih pogleda, odnosno razina:
- Strateška i pravna razina, koja prikazuje modele međusobnih odnosa pojmova koji sa strateške razine utječu na arhitekturu sustava. Na toj razini se prikazuju uglavnom elementi pravne podloge kao što su zakoni i pravilnici, te strateške motivacije kao što su načela interoperabilnosti.
- Poslovna razina, koja modelira poslovne koncepte i njihove odnosa koji imaju ključan utjecaj na arhitekturu informacijskog sustava. Tu se prije svega ističu poslovni procesi i elementi ustrojstva (ustrojstvene jedinice i radna mjesta – role ključne za dizajn IS-a). Pored toga, poslovna razina identificira i ključne poslovne funkcije, ali i ključne poslovne objekte (npr. pismeno, predmet) koji moraju biti implementirani u informacijskom sustavu. Pri tome cilj poslovne razine nije precizno dokumentirati poslovne procese (za to služe druge tehnike i notacije kao npr. BPMN), već identificirati koncepte sa poslove razine koji moraju biti podržani u semantičkom ili aplikacijskom modelu.
- Semantička razina modelira podatkovne entitete koji su nužni za ostvarivanje poslovnih funkcija, procesa i objekata identificiranih na poslovnoj razini. Pri tome Enterprise arhitektura definira samo odnose tih podatkovnih entiteta kako međusobno, tako i s drugim elementima arhitekture, dok specifičnosti tehničkog dizajna kao što su kardinalnosti, tipove podataka, relacije itd. ostavlja notacijama za tehnički dizajn kao što je UML.
- Aplikativna razina modelira organizaciju informacijskog sustava, na način da identificira ključne aplikacijske komponente, njihove funkcionalnosti, procese, servise, sučelja te interakcije i međuovisnosti s ostalim elementima arhitekture.
- Tehnička – implementacijska razina, koja identificira fizičke elemente kao što su poslužitelji, mreža, te druge informacijski sustavi u okruženju s kojima se ostvaruje interakcija itd.
- Tranzicijska razina se bavi modeliranjem stavljanja sustava u produkciju i podrške sustavu.
Osigurava da su svi modeli sustava međusobno usklađeni: da funkcionalnosti aplikacije
pokrivaju sve ključne koncepte poslovne razine, da model podataka odgovara modelu aplikacije i
poslovnom okruženju, a da svi zajedno ispunjavaju zadani strateški i pravni okvir.
Zašto su važne tehničke specifikacije za razvoj informacijskih sustava?
U razvoju informacijskih sustava moguće je primijeniti metode i tehnike koje su razvijene u samim informacijsko-komunikacijskim znanostima, ali one nisu dovoljne. Formalizacija podrazumijeva niz neprihvatljivih pojednostavljenja, kao što su gradnja sustava od početka, ograničavanje budžeta, zamrzavanje tehničkih zahtjeva u jednom trenutku i sl. No, takav pristup nije realan te nije prihvatljiv na tržištu, a onda ni organizacijama koje se sa softverskim rješenjima na njemu pojavljuju. Pritisak tržišta često otvara nove probleme u razvoju softvera te se do rješenja ili proizvoda nastoji doći što prije. U prvi plan stavlja se fokus na proizvod za tržište pa se s raspoloživim metodama, tehnikama i pomagalima započinje razvoj. U tom se slučaju zaboravljaju nove metode, tehnike i pomagala te takav pristup rezultira problemima pa je potrebno zastati, promotriti problem istraživanja i razvoja softvera iznova i sveobuhvatno, ne zaobilazeći organizacijske aspekte. Može se zaključiti da je softver najčešće kritičan element nekog informacijskog sustava, a razvoj softvera mnogo je više od programiranja. Softverski proizvodi su softverski sustavi koji su različite veličine i kompleksnosti te koji su isporučeni korisniku zajedno s dokumentacijom koja opisuje npr. kako ga instalirati, koristiti, održavati i sl. Izrada projektne dokumentacije koja uključuje funkcionalne i nefunkcionalne specifikacije te tehničku specifikaciju softverske i hardverske infrastrukture informacijskog sustava, jedini je jamac da neće izostati razumijevanje između naručitelja i izvođača razvoja informacijskog sustava te da će budući korisnici IS dobiti funkcionalnosti i nefunkcionalne karakteristike, baš onakve kakve im trebaju u izvršavanju njihovih poslovnih procesa. To bi ukratko značilo da će s tako specificiranim, razvijenim i implementiranim informacijskim sustavom, dobiti
- Jednostavnost korištenja;
- Mogućnost podržavanja (održavanja) rada informacijskog sustava u budućnosti, neovisno o promjenama tehnologije i starenju sustava;
- Pouzdanost, dostupnost i željene operativne performanse IS-a;
- Jednostavnu upravljivost i osmotrivost IS-a;
- Sigurnost, otpornost na greške IS-a;
- Skalabilnost;
- Mogućnost testiranja, modularnost, proširivost, prilagodljivost IS-a;
- Interoperabilnost s drugim sustavima i otvorenost za povezivanje;
Informacijski sustav s ovakvim karakteristikama, vlasnicima procesa koji ga koriste donosi viši stupanj učinkovitosti i produktivnosti rada te uštede na operativnim troškovima poslovanja.
Kako Vam ZIH može pomoći?
ZIH u svom radu na projektima oblikovanja suvremene IT organizacije i upravljanja ljudskim resursima koristi vodeće metode za ovo područje, organizira radionice s menadžmentom te individualiziranim pristup i vođenjem pomaže organizacijama ostvariti njihove ciljeve. U ovom području ZIH nudi sljedeće konzultantske usluge:
- Snimanje i analiza postojećeg stanja IT organizacije te identifikacija slabosti
- Izradu GAP analize u odnosu na potencijale mogućih poboljšanja i preporuka za potrebna unapređenja
- Oblikovanje prijedloga nove IT organizacije
- Simulacija potrebnih organizacijskih promjena, RACI modeliranje odgovornosti i pronalaženje optimalnih organizacijskih rješenja
Poduhvat oblikovanja suvremene IT organizacije i unapređenja upravljanja ljudskim resursima ZIH realizira samostalno, ili po potrebi, u uskoj suradnji s našim poslovnim partnerima: Fakultetom organizacije i informatike Sveučilišta u Zagrebu, Ekonomskim fakultetom Sveučilišta u Zagrebu i drugim partnerima.
Možda Vas interesiraju i ove naše usluge i edukacije:
Zašto ZIH?
ZIH ima bogato iskustvo u pripremi i izvođenju projekata izrade projektne dokumentacije za razvoj informacijskih sustava, izradi konceptualnih rješenja IS-ova, funkcionalnih i nefunkcionalnih specifikacija, pripreme natječaja javne nabave za tako projektirane informacijske sustave te provođenje nadzora u razvoju, testiranju i implementaciji različitih informacijskih sustava.