Novi sprint je stigao. O tome je već bilo diskusije. Znali ste da će biti teško, ali ste rekli sebi ‘Misliću o tome kada za to dođe vreme’. I sada je došlo vreme da se uhvatite u koštac sa tim novim velikim projektom koji vas u isto vreme i uzbuđuje i plaši. Ali, šta je sledeće?
Kako započeti novi projekat? Hoćete li biti u stanju da svarite sve što je za njega potrebno? Mi smo već bili u toj situaciji i uspeli smo da prevaziđemo sve probleme.
Hajde da vidimo kakav je proces razmišljanja našeg tima i predstavimo neke od najboljih praksi kada je reč o radu na projektima velikog obima. Do kraja teksta nadam se da ću uspeti da vam eliminišem strah.
Šta je tačno veliki projekat?
Verovatno vam je poznat kvadrant vrednost-složenost. Ako nije, to je jednostavna matrica koja prikazuje odnos značaja feature-a (ili proizvoda) i njegove složenosti. Feature-i koji su laki za implementaciju i značajni za poslovanje se obično prvi implementiraju. Ako zadržite veliki značaj za biznis, ali dodate složenost u implementiranju, onda ste ušli u svet velikih projekata.
Biznis vrednost feature-a obično dolazi sa visokim prioritetom. Visok prioritet neretko dolazi i sa kratkim rokovima za implementaciju. Ako se na to doda i nedostatak ljudskih resursa, onda se dobija savršen kandidat za sledeći značajni release. Ali, kako se izboriti sa ovim?
Iznutra ka spolja
Čest razlog poteškoća obično leži u zabuni, a ona se javlja kada dođete do tačke razmišljanja gde ne znate kako dalje. U tom trenutku počinju da se vrzmaju razne misli po glavi. Počeli ste putovanje, došli do jedne tačke, ali od tog trenutka ne znate kako dalje. Krenuli biste jednim putem, ali niste sigurni da li on vodi do destinacije. Onda preispitujete svoju odluku, pa vas misli odvedu na drugi put. Kako se mogućnosti nagomilavaju, tako i zabuna postaje sve veća. U ovom trenutku je najbolje da zastanete, napravite predah. Krenite ispočetka sa donošenjem odluke, ali ovog puta se usmerite na jednu, i samo jednu stvar.
Započnimo jednim primerom. Dat vam je zadatak da dizajnirate automobil. Našli ste olovku i list papira i počeli ste da crtate svoj automobil iz snova. Posle mnogo pokušaja, napravili ste pravo remek delo. Ima prelepu sportsku liniju, koja odiše elegancijom. Posvećeno je toliko pažnje detaljima da bi izmena samo jednog od njih upropastila ovo umetničko delo. Razgovarali ste sa proizvodnjom i oni su vam potvrdili da je moguće da napraviti automobil tačno tako kako je nacrtan. To je to! Nema razloga za brigu. Višemesečni trud i znoj se isplatio! Svi su oduševljeni dizajnom i samo je pitanje vremena kada će biti predstavljen javnosti. I onda, baš kada treba da se započne projekat izrade, tim inženjera dolazi do zaključka da po nacrtu nema mesta za motorni pogon i da moraju da se naprave određene izmene da bi vozilo moglo da funkcioniše. Pravite izmene, ali svaka izmena dovodi do toga da je automobil manje privlačan.
Kako se to desilo? Da li je moguće da se onoliki trud nije isplatio? Odgovor je krajnje jednostavan. Možda ne i očigledan, ali je krajnje jednostavan. Radovi na automobilu su počeli spolja ka unutra, a ne obrnuto. I upravo u tome je poenta. Često kada radimo neke stvari, razmišljamo kako da krenemo sa nekim poslom, a tek kasnije razmišljamo da li smo krenuli dobrim putem. Ako počnete iznutra i radite ka spolja, bićete u stanju da bolje razumete sve poteškoće oko projekta i na kraju ćete moći da se rešite zabuna i raščistite put koji vas vodi ka cilju.
Počnite sa radom iznutra ka spolja i spoznajte najvažniji deo.
Kada počnete da razmišljate o projektu iznutra ka spolja, lako ćete primetiti da su neki delovi projekta važniji od drugih i to će vam mnogo pomoći da preusmerite fokus na stvari sa većim prioritetom. Naš mozak je u stanju da skladišti tek ograničenu količinu informacija u svojoj radnoj memoriji. Sa ograničenjima naše memorije, lako je zaboraviti nešto što je važno i napraviti greške. Ako pokušate da radite više stvari odjednom i sve obavite u jednom dahu, postoji veća verovatnoća da ćete prevideti neke detalje – detalje koji vas mogu koštati mesece dodatnog rada.
Ono što je česta pojava u svetu inženjerstva, pa tako i razvoja softvera, jeste da se u istom trenutku razmišlja o svim delovima jednog složenog projekta. Umesto toga što se istovremeno razmišlja o svemu, potrebno je raščlaniti projekat na jednostavne celine. Kada budete imali celine, moći ćete lako da definišete njihovu međusobnu zavisnost i da definišete prioritete implementacije. Na ovaj način, drastično ćete umanjiti količinu radne memorije koja je potrebna da se zapamte sve trenutno relevantne informacije o projektu i samim tim, umanjujete verovatnoću da se zaborave neki detalji.
Prepoznajete se u ovome? Sjajno! Sada imate osnovni alat za raščišćavanje puta ka uspešnoj implementaciji složenog projekta! Šta je sledeće? Zaronićemo još dublje u svet praktičnih tehnika za lako pronalaženje rešenja datih problema.
Pet Hoće li? (5 Wills?)
Delovi projekta su jasno definisani i prioritizovani. Došlo je vreme da se nađu tehnička rešenja za svaki od njih. Fokus je na onom najbitnijem delu. Imate nekoliko ideja za rešenje. Svaka od ideja ima svoje prednosti i mane. Pokušavate da opravdate svaku opciju, ali nedostaju vam kvantifikatori. Zabuna opet stupa na scenu. Kako se ovo opet desilo? Lako. Počeli ste sa rešenjima, a onda postavljali pitanja da opravdate rešenja.
Kada razmišljate o najboljem pristupu pronalaska rešenja, važno je da definišete grupu pitanja na koja to rešenje mora da odgovori. Uvek je lakše pronaći rešenje ako znate koje tačno probleme rešavate, zar ne?
Pre nego što nastavimo, želim da vas upoznam sa konceptom Pet zašto (5 Why’s). Ako niste upoznati sa Pet zašto, to je metod koji pomaže timu ili pojedincu da odredi uzrok bilo kog problema. Kao što možete pretpostaviti, ona počinju pitanjem Zašto je došlo do problema? Svaki odgovor vodi do razloga koji postaje deo novog zašto. Ovom tehnikom možete od generalnog doći do konkretnog razloga.
Dok se Pet zašto koristi da definiše uzrok problema, Pet hoće li? se koriste za smanjenje obima, pa čak i eliminaciju problema. Pet hoće li? je set pitanja na koja rešenje mora dati pozitivan odgovor da bi bilo prihvaćeno. Baš kao i u slučaju Pet zašto, u ovom setu pitanja može biti i više od pet, ali morate postaviti makar ovih pet ključnih pitanja:
- Hoće li ovo rešenje biti lako da se implementira?
- Hoće li ovo rešenje biti skalabilno?
- Hoće li ovo rešenje biti lako za održavanje?
- Hoće li ovo rešenje biti održivo?
- Hoće li ovo rešenje biti razumljivo?
Pitajte sebe “Pet hoće li?” da biste se uverili da je rešenje odgovarajuće!
Što više pitanja imate, lakše će vam biti da pronađete najbolje rešenje.
Čestitamo! Sada ste definisali tehničko rešenje vašeg problema i spremni ste da definišete korake za njegovu implementaciju. Ali, sačekajte. Može li se bilo koji njegov deo dalje podeliti u segmente koji će biti još razumljiviji, još lakši za implementaciju i lakši za prezentovanje? O, da!
Chunk it up!
Razumeli ste projekat, definisali delove, pronašli najbolje rešenje i onda uvideli da će njegova implementacija i dalje zahtevati mnogo resursa i vremena. Na kraju dana, u pitanju je veliki projekat. Ali kako ga možemo još pojednostaviti i učiniti razumljivijim drugima? Podela na komade – rasparčavanje – chunking! Komadi su grupe značajnih informacija ili posla koji su međusobno povezani. Neki poslovi su laki za razumevanje i pamćenje, ali ima i onih koji nisu. Razlika između njih je često u prezentaciji. Ne zaboravite da je na vama da predstavite sve ovo ostatku vašeg tima.
Komadi su skupovi značajnih informacija ili posla koji su međusobno povezani.
Da biste bili u stanju da prezentujete posao, morate biti spremni. Morate prethodno znati kako se posao može podeliti. Iskreno, to može da bude teško i neke delove posla nekada nije ni moguće podeliti. Ali to je u redu, uvek ima izuzetaka.
Čak i sa delovima posla, uvek počnite jednostavno. Pronađite jedan deo posla koji je dobar kandidat da bude komad i zapitajte se sledeće:
- Mogu li ovo još podeliti?
- Da li je ovaj deo lako implementirati?
- Hoće li implementacija ovog dela blokirati druge?
Ako ste uvideli da se jedan deo može dalje podeliti, imate nov komad posla. Ako se deo ne može implementirati na lak način, budite uvereni da ga je moguće podeliti. Takođe, ako je implementacija problematična i blokira druge, onda je sigurno dobar kandidat za još jednu podelu. Sa druge strane, neki delovi posla mogu da blokiraju ostatak tima, ali se brzo implementiraju. To je potpuno u redu.
Pripremite se
Još uvek ste tu? Sjajno! Stigli smo do poslednjeg dela. Preduzeli ste sve korake, pronašli značajne delove, podelili ih u manje delove koje je lako implementirati i sada je vreme za akciju. Bili ste temeljni, dokumentovali ste vaše specifikacije, napravili prezentaciju sa grafikonima i dijagramima. Spremni ste da prezentujete vaš rad svom timu. Sada je vreme za to!
Napravili ste prezentaciju u kojoj svaki slajd poseduje informaciju o određenom delu projekta. Prezentacija je počela i sve ide glatko. Kako slajdovi prolaze, uvećava se količina informacija, ali vi znate da je sve tu. Međutim kada ste na pola puta, postave vam ono dobrodošlo pitanje:Izvinite, mogu da vas zaustavim na trenutak? Zadovoljni ste što ljudi prate ono što govorite i jedva čekate to pitanje.
- Član tima 1: Nisam siguran da razumem ovo.
- Vi: Bez brige, to je posledica onog dela koji smo pominjali na prethodnom slajdu. Evo, sad ćemo da se vratimo korak unazad.
- Član tima 1: Aha, vidim. Ali, zašto to uopšte radimo?
- Vi: Pa, ovaj servis mora na neki način da komunicira sa drugim servisima. Bez ovoga, ne možemo da omogućimo komunikaciju.
- Član tima 2: Kakve to veze ima sa feature-om?
- Član tima 3: Da, ni ja ne razumem taj deo.
U tom trenutku, uviđate da postoji zabuna kod kolega u pogledu organizacije projekta i počinjete da sumnjate u svoje odluke. Ali, molim vas da pauzirate. Ovo je složen projekat. Ako neko ne razume šta ste im rekli, onda je došlo do loše transakcije informacija. Na vama je da ustanovite koji delovi su shvaćeni, a koji su i dalje misterija. Verovatno ćete morati da razgovarate sa kolegama kako biste otkrili koji deo projekta nije jasan. Polako, korak po korak, ustanovićete koji deo projekta je izazvao konfuziju.
Verovali ili ne, ove situacije se mogu svesti na minimum kroz dobru pripremu. A ona se najčešće sastoji od jednostavnih koraka koje treba da obavite pre prezentacije:
- Izvedite zaključke iz svakog dela prezentacije,
- Uvek podsetite ostale šta ste već pokrili,
- Objasnite sami sebi projekat.
Kada vam neko drugi nešto objašnjava, to obično znači da dobijate nove informacije. Stičete pristup podacima koje ranije niste imali. Pokušajte da stavite sebe u položaj osobe koja nema nikakvo znanje o projektu i zabeležite sažete zaključke za svaki deo prezentacije. Nemojte se fokusirati na detalje, osim ako oni sami nisu deo zaključka. Napravite beleške za prezentaciju da ne biste zaboravili važne informacije.
Koristite jednostavne izraze da bi svaka transakcija komunikacije bila uspešna. Izdvojite vreme da sami sebi objasnite projekat! Objašnjavanje sebi će vam omogućiti da sagledate stvari ispod površine i nađete bolje načine za objašnjavanje pojedinosti projekta. Ovakvo preslišavanje će vas dovesti do mesta koja mogu biti uzroci zabune. Ako prođete ove korake, sigurno ćete pamtiti ovaj projekat i nakon njegovog završetka!
Mogu li ja to?
Kako ja da se nosim sa važnim, složenim projektima? Nikada ranije nisam radio/radila ništa slično”. Zapamtite jedno – treba to da uradite! Ako niste sigurni oko nečega, pitajte! Uspeh tima kreće od saradnje, timskog rada, odlučnosti i koordinacije poslova. Saradnja znači razmenu informacija, dok timski rad omogućava razvoj ideja. U projektima velikog obima, pre nego što odredite put ka sledećim koracima, saradnja i timski rad su obavezni. Komunikacija je lepak na kojima su izgrađene ove vrednosti i ona čini da se projekat izvede uspešno i bez poteškoća – bez obzira na to koliko je zahtevan.
Sa ovim na umu, reći ću vam jednu stvar – VI TO MOŽETE! I zbog toga, u Florence-ovom development timu svako vodi projekat – ELAP. Po završetku projekta, doći će vam taj eureka momenat koji će poboljšati kvalitet vašeg rada i samim tim vaše sposobnosti!