Kristijan Trbojević
Autor:
Kristijan Trbojević

Analitičar

Slika govori tisuću, a prototip više od milijun riječi

Koliko smo se puta susreli s činjenicom da su korisnikove prvotne želje i zahtjevi suprotni implementiranom rješenju? Imamo korisnika koji je izrazito „vizualan“ tip, s naglaskom na raznoraznim bojama te „šarenilu“ na ekranu. Developeru ili testeru nije u potpunosti jasno kako se funkcionalnost opisana u specifikaciji treba ponašati u pojedinom trenutku? Kako se najbolje postaviti u toj situaciji, koje tehnike primijeniti? Poslovna analiza korisničkih zahtjeva je u današnjici nezamisliva bez skica ekrana. Dani kad se sve temeljilo isključivo na tekstu funkcionalne specifikacije su (nadam se) daleko iza nas jer navedeni princip može doprinijeti dvosmislenosti, nejasnoći te diskrepanciji između korisničkih zahtjeva te samog shvaćanja istih od strane razvojnog tima. Iz te spoznaje, na površinu proizlaze prototipi aplikacija, čija je svrha simbolizirati krajnji produkt zahtijevan od strane korisnika. 

Kada i zašto?

„Životni ciklus“ prototipa počinje u ranoj fazi poslovne analize, već prilikom prikupljanja korisničkih zahtjeva, odnosno identificiranja cjelina budućeg sustava. Grafički prikaz istog nalazi se na sljedećim slikama kao BPMN notacija koja pomaže kod vizualizacije procesa. 

Vrijedi napomenuti da je sam prikaz procesa podijeljen u dva dijela isključivo zbog jasnijeg uvida na pojedini dio istog ovisno o ulozi pri izradi prototipa.

Situacije u kojima bismo trebali primjenjivati razvoj (što detaljnijih) prototipa su sljedeće:

1. Sustav razvijamo „iz nule“.
2. Sustav razvijamo na način da outsourceamo development dio razvoja.

U oba slučaja informacijski sustav implementiramo iz samih početaka ili nadograđujemo određeni dio istog većim brojem funkcionalnosti. Razlika između navedenih, odnosno velika otegotna okolnost je ta da pri outsourceingu nemamo developere „u kući“, što bi moglo prouzročiti krivu percepciju vanjskih suradnika o funkcioniranju sustava u pojedinom trenutku. 

Ključ uspjeha - komunikacija

Na jednom od projekata surađujemo s developerima koji se nalaze van Hrvatske, osobna iskustva su takva da je potrebno skicirati te prikazati ponašanje i najmanje moguće funkcionalnosti, bez obzira jesu li one nadogradnja ili izmjena postojećih. Razlog je otklanjanje mogućih rupa u komunikaciji, odnosno razumijevanju zahtjeva. Važno je da razvojni tim bude uključen za vrijeme analize korisničkih zahtjeva kako bi analitičar mogao na vrijeme ažurirati ekrane uzimajući u obzir zahtjev korisnika, u odnosu s načinom na koji će se funkcionalnost razviti. Dolazimo do najbitnijeg segmenta u fazi izrade ekrana, a to je komunikacija. Ukoliko radimo agilno slijedeći metode poput Scruma, vrijedi istaknuti da je na „ceremonijama“ kao što su grooming i planning izuzetno korisno prikazivati prototipe aplikacija kako bi developeri i testeri mogli dati što bolju procjenu svojih taskova.

Razglabajući o prototipima, čuo sam komentar: „Mana prototipa je što su tim načinom rada ponekad programerima „zavezane ruke“.“ Ne bih se složio s navedenim, cilj izrade ekrana je kroz poslovnu analizu sustava kreirati prototip sustava koji je prihvatljiv korisniku, pod uvjetom da je isti proizašao iz poslovne te naposljetku zajedničke analize razvojnog tima. Analitičar neće ponuditi korisniku rješenje za koje je razvojni tim utvrdio da je nemoguće napraviti, odnosno da nije izvedivo u definiranom vremenskom roku.

Alati za izradu prototipa

Kao što sam spomenuo u uvodu, način kojim ćemo pristupiti izradi ekrana vezan je uz tip korisnika čiji sustav razvijamo. Ukoliko isti „ne pati“ za bojama, izgledu ikona i sl., dovoljno je crtati ekrane u alatu koji će nam osigurati da prikažemo funkcionalnosti s minimalnim naglaskom na dizajnu. Za crtanje ekrana u ovoj situaciji dovoljan je i Pencil, iako, vjerujem da će se većina koja je crtala ekrane u istom složiti kako je vrijeme da taj (uvijek besplatni) alat ode u „zasluženu mirovinu“. S druge strane, za zahtjevnijeg korisnika te ako imamo dizajnera u timu, potrebno je koristiti alate koji će uz ponašanje funkcionalnosti detaljnije dočarati i vizualne segmente sustava.

Alati koje najčešće koristim su:

Mockplus -> izrada ekrana,
Invision -> povezivanje ekrana u prototip.

Od alata za izradu ekrana mogu se još spomenuti Affinity, Balsamiq, Sketch za MAC korisnike i sl., ovisno o tome što se u konačnici želi postići. Koristim Mockplus iz razloga što isti omogućava (čak i s free verzijom) širok spektar komponenti dovoljnih da se korisniku i razvojnom timu detaljno prikaže ponašanje sustava. U nastavku je primjer skupa komponenti za izradu prototipa mobilnih aplikacija.

Nakon izrade ekrana, potrebno je iste povezati u cjelinu koja simbolizira krajnji rezultat zahtjeva korisnika. Iako određeni alati za crtanje ekrana podržavaju i „publish“ prototipa na web, svrsishodnija opcija za isto se pokazao inVision zbog niza featurea koje sam program donosi. Korištenjem inVisiona prilikom prezentacije budućih funkcionalnosti korisniku, odnosno kasnije razvojnom timu, do sad mogu iznijeti samo pozitivne dojmove.

Primjenjivost kod korisnika; razvojnog tima

Gledajući korelaciju poslovnog analitičara i korisnika, glavna akcija manifestira se slanjem prototipa (linka) korisniku nakon čega isti može potvrditi ponuđeno rješenje ili zatražiti određene dorade. Prilikom pregleda prototipa korisnik može ostavljati komentare te povratne informacije o pojedinim dijelovima sustava. Dakako, također je i dalje preporučljivo dogovoriti sastanak/prezentaciju kod korisnika zbog toga što ćemo raznorazne nedoumice brže i detaljnije riješiti uživo. Prednosti inVisiona dolaze do izražaja na više načina istaknutih u tekstu ispod.

Korisnik ima jasan uvid u to kako će sustav izgledati, odnosno kako će se ponašati u pojedinim trenucima. U ovoj fazi je moguće otkloniti sve potencijalne probleme te nejasnoće koje bi mogle proizaći iz netočno shvaćenih/definiranih zahtjeva,
Korisnik na prototipu ostavlja komentare koji automatski stižu kao notifikacija analitičaru,
Korisnik ima mogućnost potvrđivanja/odbijanja ekrana kroz activity projekta,
Developeri prilikom razvoja koriste prototip kako ne bi imali nedoumica prilikom implementacije,
Testeri nakon deploya aplikacije pomoću prototipa mogu imati uvid radi li sustav kako je definirano.

Na sljedećoj slici vidljivo je glavno sučelje inVisiona u kojem se izrađuje sami prototip te su istaknute funkcionalnosti na kojima je moguće:
pratiti workflow pojedinog ekrana,
pratiti activity u kojem se nalaze zapisi tko je i kada ažurirao/dodavao ekrane,
pregledavati komentare koje je korisnik (ili netko iz razvojnog tima) ostavio na prototipu.

Kao jedan od zanimljivih featurea izdvojio bih integraciju sa Slackom koji koristimo kao alat za komunikaciju na većini projekata. Updateom ili dodavanjem ekrana u prototip, automatski svima koji su na Slackovom channelu povezanim s inVisionom, dolazi notifikacija o promjeni pojedinog ekrana. 

Kao primjer prototipa, kreirao sam jedan demo projekt koji prikazuje kako opisani proces izgleda u praksi. Radi se o mobilnoj aplikaciji čija je glavna svrha slanje podataka liječnicima od strane pacijenata prilikom nošenja holtera – uređaja za snimanje i kontrolu rada srca kroz 24 sata. Prototip se nalazi na sljedećem linku, „klikabilni“ dijelovi prototipa označeni su plavom bojom.

Sigurnost

Naposljetku, još jednom bih istaknuo kako su prototipi aplikacija „must have“ današnjice, adekvatni su za bilo koju fazu razvoja softvera te nam uvelike pomažu pri što preciznijem identificiranju i definiranju zahtjeva korisnika. 

Popularne teme
.NET ABAP ADFS Agile Always On Anemic Model Angular Azure Backbone benchmark BI BI projekti Bootstrap building people business inteligence Business Intelligence Change Chrome CI CITCON Claims compile Continuous Delivery continuous deployment Continuous Integration CSR d3js data data visualization Data visualization alati DDD dekompozicija dependency injection dinamička forma dinamički parametri dinamički query distribuirani razvoj Domain-Driven design DOP društvena odgovornost edge-based video analytics Eliminating waste enkapsulacija enterprise razvoj softvera ERP ETL Excel FIORI Frontend game Geopackage GPKG GIS Git Groovy heat map HICCUPS Hichert HTML IBCS interoperability invision IoT IPSO izvještavanje java JavaFX Javascript Jazz Build Engine JBE Jenkins jquery jqueryui jsfiddle JVM Kaizen Kanban king KING ICT Kingovci Knockout kvaliteta lambde leadership Lean legacy code M language Management Maven Metodologija microservices Microsoft mobile Mobility mockups moć monday game NetWeaver network nodejs oblikovni obrasci OGC OKR open source optimizacija organizacija organizacijska struktura OutOfMemoryError outsourcing overengineering paginacija Performance performanse PERT PMI PMP; Agile; Project management; Scrum; KING ICT; razvoj; metodologija podatkovni skup pouzdanost Power BI Power Map Power Pivot Power Query Power View pretraga proces procjena Product Owner programming proizvod Project manager projektni plan radar Rational Team Concert razvoj tima refaktoriranje Release resize responsive charts REST retrospektiva Rich-Domain model Roko Roić rolling wave planning RTC SAP scale scatterplot chart Scrum scrum team scrum tim service boundaries single responsibility principle Single Sign-On smart metering SoapUI social responsibility softver Software software prototyping Software Testing Club Spring Boot SQL standard sustav videonadzora svg tdd Team team building team development Team Foundation Server tech tehnologije terminski plan Testing tim timesheet timovi Toggl.com touch transakcijski nadzor tražilica underengineering unit testing Uspjeh Visual Studio vodstvo vodstvo leadership moć društvena odgovornost DOP social responsibility CSR vođenje projekata WBS Web Zagreb STC

PRIJAVA NA NEWSLETTER

Najnovije novosti iz ICT svijeta