Sve su firme šampionske, razlika je samo u kompenzaciji.
 

  Site o šampionizmu i šampionskim firmama na hrvatskoj informatičkoj sceni.            ->Engleski site
  O šampionima i šampionizmu | Novosti i obavijesti | Šampionski manifest | Legenda o šampionima | Vaše priče | Pošaljite svoju priču | Ogledi o šampionizmu | Forum (engl.) | Ankete | Pitanje tjedna | Šampionski biseri
  Legenda o šampionima
  Prije (Previous) Nastavak (Next)
  Projekt Pras - 2.dio
 
 

Voda se polako penje..

Dva mjeseca nakon što je preuzeo Pras Bojan se riješio svih ostalih projekata koje je programirao ili vodio. Nekako u isto vrijeme nazvao ga je Erich i zatražio procjenu vremena kada Pras može biti gotov da to može prenijeti klijentu. Bilo je očito da klijent već lagano kuha jer nema nikakvih rezultata i umjesto aplikacije i njenih ekrana stalno mora gledati Erichovu facu i slušati nove bajke zašto aplikacija još nije gotova.

Bojan je Erichu smireno uzvratio da mu ne može odmah odgovoriti jer bi to bilo neozbiljno već da mora napraviti projektni plan i sve lijepo izračunati. Erich je jedva to pregrmio ali se vidjelo da je nestrpljiv. Nekako u isto vrijeme je Bojan, nakon nekoliko prototipova i desetina mailova s klijentom i Erichovim konzultantima,  uspio pohvatati većinu zahtjeva i steći neku okvirnu sliku koliko tu stvarno ima posla. Iz njegove analize se jasno vidjelo da se stvarna brojka kreće negdje između 10 i 12 čovjek-mjeseci, dakle "samo" šest puta više od inicijalne procjene. U to nije bio uračunat dotadašnji rad koji je već sam premašio onu početnu, šampionsku procjenu.

Iako ga je u početku bilo strah kako će Erich i klijent reagirati kada se suoče s istinom i vide stvarne brojke, uspio se odhrvati napasti i ostavio je u projektnom planu sve "nešampionske" aktivnosti poput pisanja dokumentacije, code reviewa, testiranja i kontrole kvalitete. Znao je da je ovo jedinstvena prilika da se počne raditi pošteno i ako se to njima ne bi svidjelo, potražio  bi sreću negdje drugdje jer je dotad u srcu već raskrstio s Dodonijem i "našim poduzetništvom" (vidi priču o plaći i dobiti).

Kada je klijent uskoro dobio pravi projektni plan u kojem je pisalo da do kraja projekta mora čekati bar četiri mjeseca, prema Erichovim riječima skoro ga je udarila kap. Ipak, kao nekim čudom, prihvatio je i tu novu odgodu ali je zamolio da se rok pomakne mjesec dana prije, jer je tada planirao prezentaciju Prasa za cijelu firmu. "Što im Erich radi da sve to podnesu i ne šutnu ga u guzicu, da li ih možda hipnotizira?" pitao se Bojan ne vjerujući da su šampioni još uvijek u igri i da imaju 3 mjeseca vremena da u miru dovrše Pras.

Idila

Sljedeća dva mjeseca prošla su kao u nekom nešampionskom snu. Do kraja je definirana funkcionalna specifikacija, razriješene su gotovo sve tehnološke dileme i definirana arhitektura, napisani su svi potrebni dokumenti i postavljena sva potrebna infrastruktura za nesmetani rad. I najvažnije od svega, oformljen je relativno solidan tim kojeg su činili Bojan kao voditelj projekta, Bartol kao database developer, novopridošli Petar (vidi priču o drugim šampionima) i suradnik Dražen kao web developeri. Jedino je priču kvario Maddog kojeg je Žakro na silu ugurao u projekt ali za njega su ionako bili rezervirani manji nebitni taskovi (primjer kako je i tako male taskove znao usrati vidi dolje). Dakle, sve ljudi koji su znali raditi i imali dovoljno iskustva da posao privedu kraju, naravno ako od početka do kraja budu full-time angažirani u projektu. Osim dobrog tima ono po čemu se Pras razlikovao od dotadašnjih šampionskih projekata bili su sljedeći faktori:

  • Do kraja definirani i jasni zahtjevi: čitajući Mc Connellovu knjigu Software project survival guide, Bojan je došao na ideju da na samom početku projekta napravi Korisnički priručnik u kojeg je ubacio screenshotove iz prototipa. Na taj način je klijent već na početku imao jasnu sliku što može očekivati od aplikacije i naravno, u ranoj fazi projekta davati primjedbe i izmjene. Nakon što je par puta revidirao i izsecirao priručnik, klijent je rekao da je to OK i da se može krenuti u izradu.
  • Definirana arhitektura i konvencije kodiranja: Pras je bio zamišljen kao n-tier web aplikacija koja se sastojala od data, business, workflow i presentation sloja. Svaki sloj je sadržavao klase koje su obavljale točno određene poslove i komunicirale samo s neposrednim susjednim slojem i nisu znale za ostale slojeve npr. workflow klase nisu imale direktni kontakt sa bazom već samo s business klasama ispod sebe. Iako je početno zamišljeno da data i business sloj budu izvedeni kao COM komponente, od toga se odustalo zbog zahtjeva klijentovog administratora da se na server ne ugrađuju COM komponente već samo čisti ASP. Umjesto COM komponenti, slojevi su implementirani u ASP klasama u VBScriptu.
    Također, cijela arhitektura je dokumentirana tako da je bila dostupna svakom članu tima. Isto tako je napisan code convention dokument u kojem je detaljno objašnjeno kako se trebaju nazivati varijable, funkcije, klase itd.
  • Uvođenje novih tehnologija i edukacija članova tima: Najočitija tehnologija koja je Prasom uvedena u Dodoni inženjering je bio XML odnosno XSLT. Prezentacijski sloj prasa je bio izveden pomoću XSLT templatea koji su prikazivali XML dobiven od workflow klasa. Iako nitko u timu nije imao prijašnje iskustvo s XML-om, Bojan je inzistirao na njegovom uvođenju jer mu je bilo jasno da uskoro neće biti web developera koji ne treba znati XML i da je ovo jedinstvena prilika da ga svi nauče. Zato je i u planu predvidio učenje te tehnologije i nagovorio gazdu Ericha da se preko Amazona kupi dobra knjiga o XML-u i XSLT-u. Koliko je ta odluka bila ispravna, pokazalo je oduševljenje svih članova tima koji su brzo prigrlili XML/XSLT uz komentare: "Kako smo prije mogli živjeti bez toga?". Ne treba ni dodati koliko je to utjecalo na moral i dobro raspoloženje u timu. Možda su po prvi puta neki od njih radili bez osjećaja srama i osjećali da ne stvaraju ili krpaju šampionsko smeće već da stvarno rade nešto dobro i kvalitetno.

Sve pobrojane karakteristike navele su novog člana Dodonija Petra da nakon mjesec dana rada na Prasu kaže da je ovo najbolje organiziran projekt na kojem je ikada radio.

Šampionsko otrežnjenje

U idealnom svijetu bi opisana idila imala sretan završetak, projekt bi bio završen na vrijeme, klijent bi bio zadovoljan i Dodoni bi stekao važnu referencu koja bi mu otvarala vrata za druge projekte. Možda bi se na kraju godine brojala i velika dobit i davale povišice, šampioni bi rasli i zapošljavali nove ljude. Niti ove legende vjerojatno tada ne bi ni bilo.

"OK, stop!", rekao bi Erich na to. "Zaboravili ste na mudro šampionsko vodstvo i njegov talent da uništi dobru priliku i kad nitko ne vjeruje da je to moguće." U redu, Erich, sorry, zaboravili smo na tebe i tvoje nikad do kraja razjašnjene sposobnosti kao poduzetnika. Upravo su te "sposobnosti" dovele do toga da je Pras krenuo sasvim drugim putem nego što su Bojan i ostali u timu zamislili. O čemu se radilo?

Negdje krajem ljeta te godine, kad se Pras zahuktao do maksimuma i kad su klase i XSLT-ovi nastajali kao na tekućoj vrpci, Erich se po tko zna koji put pojavio u Zagrebu s velikim novostima. Okupio je sve prisutne u sobi za sastanke i slavodobitno obznanio da će golema Dembelijska osiguravajuća kuća kupiti DAMP. S obzirom da je firma kćer te kuće već koristila web verziju DAMP-a (vidi poglavlje DAMP na webu), bilo je logično očekivati da će je i firma majka mirisati i ako recenzije budu pozitivne, htjeti uzeti i za sebe. Prema Erichovim riječima, to se upravo i dogodilo,  jedino se naravno neće moći koristiti potpuno ista aplikacija već će trebati napraviti verziju 3 koja bi trebala u potpunosti biti izvedena kao web aplikacija i u koju bi trebalo ugraditi specifične zahtjeve novog klijenta. Da ne ostane samo na tehnikalijama, Erich je odmah počeo mahati i brojkama o par tisuća klijent licenci za DAMP i umjesto zjenica u očima si mu mogao vidjeti $$$. Bio je sav izvan sebe, samo se čekala pobjednička truba i povik "Hura, svi na DAMP!".

Da će novi klijent potpuno obuzeti Ericha i pomračiti mu ono malo razuma što mu je ostalo bilo je jasno kada je Žakro dan poslije pozvao Bojana na stranu i zamolio ga da nekako presloži svoj plan za Pras i resurse jer da će Petar morati prijeći na izradu prototipa za novi DAMP. "Pa, to je nemoguće, Petar je uz mene najviše u Prasu i najiskusniji je developer, to će imati ozbiljne posljedice" s nevjericom je odvratio Bojan. "Znaš ti Ericha, Bojane, kad se on zainati, onda nema rasprave, ovo sa novim klijentom nam je prilika života. Probaj smisliti nešto, ubaci Tihomila i Rudija, svi će maksimalno pomoći. Vidio sam da radite i review koda, to bih i ja mogao raditi, hoćeš li mi pokazati kako, baš me to interesira." gudio je Žakro preneraženom Bojanu kojem se odjednom sav svijet srušio. Jednim potezom uzeli su mu najvažnijeg developera, ugrozili rok projekta i naravno, oni neće biti krivi kad projekt propadne nego on zato što je kenjao s tom dokumentacijom i kvalitetom umjesto da je sumanuto kodirao kao Stinky i lijepo sve stigao bez problema. Sve mu je bilo jasno. Šampionizam je opet pobijedio.  Još uvijek vidno potresen, vratio se daljnjem radu na Prasu za kojeg je sad znao da je osuđen na propast.

Baš mi je žao!

Otprilike u isto vrijeme kada je Pras bačen u pozadinu a novi DAMP postao jedina stvar šampionskog postojanja, Bojan je dobio ponudu od druge firme da prijeđe kod njih. Oprezan kakav je, stavio je na papir sve pros i cons između šampiona i nove firme i na kraju shvatio da se tu nema što razmišljati jer su šampioni gubili na svim frontovima. Nove tehnologije, veća plaća, plaćeni topli obrok, bolja oprema, nova, klimatizirana zgrada, tim stručnih ljudi - sve je izgledalo totalno drugačije od Dodonija pa se počeo pitati zašto je tu i izgubio dragocjenih petnaest mjeseci života.

Sljedeći dan je pozvao Žakra na stranu i uručio mu svoj otkaz. Ovaj je lijepo odglumio da ga je to jako pogodilo. "Baš mi je žao, pa ti si ovdje bio važna karika, pa kako to?" Po tome kako je brzo završio žalovanje i počeo pričati o uvjetima otkaza i obavezama koje Bojan mora izvršiti da bi mogao otići, bilo je jasno da je ustvari odahnuo i da se još jednom, nakon Patrika, uspio riješiti opasnosti za svoju stolicu.

Erich je s druge strane to podnio malo teže, pogotovo što je iznenada počeo jako brinuti što će biti s Prasom i da li će ga Bojan završiti prije nego što ode. Čak ga je počeo ozbiljno nagovarati da ostane još mjesec dana, vidjelo se da ga je frka, nešto što nije pokazivao prije dok je odgurnuo sve projekte osim novog DAMP-a u stranu. Na svoju sreću, Bojan je ostao tvrda srca i inzistirao na točnom datumu odlaska. Obećao je samo da će svog nasljednika dobro uputiti u projekt prije nego što ode. 

Epilog - što je bilo s Prasom poslije?

Da je Bojan dobro procijenio da ne smije obećati ostati u Dodoniju do kraja Prasa pokazalo se u sljedećim mjesecima kad je od Bartola doznao da se Pras pretvorio u beskonačnu trakavicu kojoj se ni ne nazire kraj. Iako je Bojanov nasljednik bio dobar programer i dosta stručan da nastavi tamo gdje je on stao, stvar je opet uprskao Erich jer je pristao na potpuno nebulozne zahtjeve klijenta da se dizajn baze drastično promijeni dva tjedna prije roka isporuke i da se u zadnji čas provedu change requesti za koje bi trebalo duboko zadirati u aplikaciju. Po toj nevjerojatnoj Erichovoj snishodljivosti Pras nije bio nikakva iznimka u odnosu na druge projekte i bio je još jedan u nizu kojeg je mudro vodstvo uspjelo svojom nesposobnošću upropastiti.

Iako se ubrzo riješio šampiona i Ericha, pri pomisli na Pras Bojanu je svejedno bilo žao što je prvi pravi projekt koji je vodio i koji je stvarno mogao biti školski primjer kako treba raditi posao tako neslavno i nesretno završio. Da Pras nije bio usamljen slučaj i da je kasnije još veći i važniji projekt imao sličnu sudbinu, pročitajte u jednoj od sljedećih priča Legende pod radnim naslovom DAMP-ova treća inkarnacija.

Priča za najupornije čitaoce: Maddog protiv A4     

Jedan od rijetkih taskova koji je Maddog dobio u Prasu odnosio se na prebacivanje jednog Word dokumenta u HTML oblik. Vjerojatno bi se Maddog zadovoljio opcijom Save as HTML i ne bi ni pomišljao optimizirati rezultat da nije bilo neugodnog zahtjeva klijenta: HTML dokument mora ličiti na original iz Worda i mora se odštampati na jednoj stranici. Ni u kojem slučaju ne smije prelaziti na drugu stranu!

Kada je Bojan prvi put vidio dokument, kao iskusnom web developeru mu je bilo jasno da se on može uz malo truda prebaciti u HTML, iako je bio prilično nakrcan s informacijama i imao vrlo male margine. Naravno, zadatak nije bio trivijalan i ne bi se dao riješiti samo igranjem u Frontpageu nego je trebalo ući u HTML source i ručno optimizirati.

Prva Maddogova reakcija na dobiveni zadatak je bila tipična: "Ah, koji kurac ja sad to moram raditi, zar ne može netko drugi? Ajde, dobro, daj taj dokument da ga sredim pa idemo dalje." I bacio se delija na ono što je mislio da će biti čas posla. Ubrzo je shvatio da mu ne ide i počeo je divljati. "Pa gle, sranje se stalno isprintava na dvije strane. Klikam i mičem ove jebene tablice ali nikako da ih stisnem", psovao je Maddog glasno i pritom naravno smetao ostale koji su pokušavali raditi. Prošlo je tako par sati i onda je razljućen odustao i vratio se svom solo projektu.

Sutradan je pitao Bojana: "Jesi li siguran da se to može? I oni stvarno hoće da to stane na jednu stranu?" "Da, nažalost, mora biti tako. A u čemu je problem?", odvratio je Bojan.  "Ma ništa, budem ja to već napravio, ionako sad nemam što knjižiti. A i onih 16 sati što si mi isplanirao za taj task nije baš puno, mogao si staviti i više" negodovao je Maddog. "Slobodno ti napiši koliko si radio, nije plan sveto pismo" savjetovao ga je Bojan. "Haha, pa da mi netko poslije prigovara da sam radio više nego što je trebalo. Ostavi ti moje knjiženje meni" završio je konverzaciju šampion i vratio se borbi s HTML-om i prokletim A4 formatom.

Nakon još par sati napikavanja, vučenja Petra za rukav i nekoliko desetina isprintanih stranica, Maddog je slavodobitno bacio papir Bojanu na stol. "Evo ti tvoja stranica, uspio sam!" Bojan je u čudu gledao nešto što je otprilike ličilo na početni formular ali ni u snu nije bilo egzaktna kopija Word dokumenta. Tada se sjetio pitati: "A jesi li provjerio i iz Netscapea?" Maddogov bijes je narastao na još veći nivo kad je shvatio da je uspio u Internet Exploreru, ali da mu se iz Netscapea još uvijek ispisuju dvije stranice. "Prokleti Netscape, tko ga je izmislio?" vikao je. I opet, nakon par sati psovanja i vikanja, ponovno je bacio papir Bojanu na stol uz povik: "Evo ga, i u Netscapeu je sada OK." I time je za njega stvar bila završena, bez obzira što je formular jedva ličio na original i što bi teško prošao kod klijenta.

Bojan se nije ni trudio dalje ga gnjaviti jer je znao da bi izgubio živce i dragocjeno vrijeme. Umjesto toga uzeo je Dreamweaver i uspoređujući s originalnim Wordom krenuo od početka izrađivati formular. Za dva-tri sata formular je bio gotov i kad bi ga isprintao iz Netscapea ili Explorera i stavio na svjetlo ispred originalnog predloška, nije bilo razlike među njima. Čak je mogao ubacivati i razmake jer mu je početna verzija zauzela tek 70% stranice. Kad je nekoliko dana kasnije Maddog vidio Bojanov primjerak, samo se napravio toša i procijedio: "Ah, vidim da si ga ti malo dorađivao."

Ova anegdota koja pokazuje da je Maddog bio najkorisniji kad nije ništa radio još se više puta ponovila u DAMP-u 3 kojeg je vodio Petar i koji je uvijek bio na sto muka kada ga je Žakro tražio da velikom šampionu da nekog posla. Ali o tome u sljedećim pričama.

  Prije (Previous) Nastavak (Next)