Autor:
Podaci poznati redakciji Kvalifikacije za sampionat Zimska je
vecer, snjezna idila izvan moje sobe. Pager mi zvoni, citam poruku i
na moje zaprepastenje, stize mi mail od Jasenke, sefice firme
MegaBlast u kojoj sam nekoliko mjeseci prije ostavio svoje osnovne
podatke buduci da sam cuo da se preorijentiraju na software. Ljudi su
se, eto, bavili prodajom hardware-a pa su, buduci da im nije islo,
zakljucili da ce sa softwareom zacijelo uspjeti. Koliko tesko moze
biti? Svakako, moj pager je otkrio da me Jasenka jako hitno zeli cuti
pa sam se, vec pomalo osamucen oskudnim studentskim budzetom ponadao
nekakvom poslicu preko SC-a i brzo se nacrtao pored telefonske
govornice gdje sam saznao tek da bih se trebao pojaviti na suprotnoj
strani grada. Kada? Sto je prije moguce. Sada, ako nije problem.
Sutra u jutro sam se pojavio u njihovom uredu - nema smisla govoriti o
njenom uredu buduci da je njen ured bio jedan ugao sobe, a preostale
uglove su popunjavali tadasnja dva developera i stalaze za komponente
preostale iz hardwareskih dana... Uglavnom, prica je slijedeca: radi
se nekakav prezentacijski/propagandni CD koji koristi dvije
tehnologije: jednu za usminkano sucelje, a druga za pristup bazi
podataka (moj dio posla). U nastavku price postat ce jasno da u ovom
trenutku naziv baza koristim ilustrativno, cisto da sugeriram
koristenje nekakvih SQL upita, a nikako zato da bih sugerirao nekakvu
strukturu baze podataka po Coddu i drugim sanjarima koji su knjige
pisali o tamo nekakvim...bravama...ne, ne: kljucevima, da, kljucevima.
Iz ove perspektive, opravdan razlog zasto sefica jedne softwareske
tvornice kalibra MegaBlasta zove tamo nekog studenta koji je prije par
mjeseci bio na polusatnom interview-u u firmi da hitno dodje raditi
zaista je tesko smisliti. Kako je razgovor otkrio, radi se jednostavno
o tome da je za 20 dana trebalo isporuciti proizvod koji je:
- vrlo grubo receno, napravljen do pola
- vise nema razvojnog tima u sastavu jednog covjeka - Merlina -
koji je full time to radio pa onda neocekivano zapalio u jednu
europsku zemlju baviti se vatrogasnim operacijama oko svojih ispita
- nema nikoga u MegaBlastu tko suvereno (ili bilo kako drugacije)
vlada znanjem iti jedne od dviju navedenih tehnologija
Dakle, osnovna Jasenkina ideja je slijedeca:
- naci mahera za Flash (u tome, je, naime, radjeno sucelje -
osnovni uzrocnik mog kompulzivnog poremecaja cupanja kose kad
cujem Macromedijino ime)
- dati nama dvojici (drugi covjek, u tom trenutku, jos nije bio
poznat) ako treba i cijeli dan da pohvatamo konce projekta kojeg
je par mjeseci ranije zapoceo Merlin pisuci u dubokom uvjerenju da
je kompajler u pravu kad ignorira komentare u kodu pa ih, stoga,
nema smisla ni pisati, a dokumentacija nesto sto se pise ako se
bas mora i to mjesec ili dva nakon sto je projekt gotov.
- odrzati osmjeh na licu svog narucioca brzom isporukom gotovog
proizvoda i dobiti The Money (tm).
Sa svojih 20-ak godina i jedva mjesec-dva prakticnog, hands-on
iskustva u stvarnom poslovnom svijetu, prihvatio sam se posla sa zarom
kakav samo student koji je nenadano dao previse ispita odjednom moze
imati. Struktura "baze podataka" Jedna
od stvari koje sam saznao u tokom prvog tjedna bila je struktura
tzv. "baze podataka". "Bazu podataka", naime, Merlin nije imao
prilike vidjeti dok je jos bio i Lijepoj Nasoj tako da je on
poradio vise na ostalim dijelovima projekta (citaj: Flash) i
pripremio sve za dolazak Baze (tm). I dok smo se mi na faksu bas u
to vrijeme zamarali stvarima kao sto su kljuc i njegova
jedinstvenost u relaciji, domenski i referencijalni integritet
podataka, sa mog ekrana prgavo su me gledale tablice. Ogromne
tablice podataka - ne informacija, nego podataka, sa ocito,
naknadno dodavanim poljima kripticnih naziva i jos kripticnijeg
sadrzaja, sa visestrukim potpuno medjusobno jednakim zapisima -
mjestimice po 5 ili 6 njih, sa poljem "telefon" u kojem su ovisno
o zapisu, postojali brojevi tipa "01/3456-789", "33 33 243",
"(01)3123-123", ali ne samo to nego i "tel. 3777-777" i konacno,
kao kruna svega, "mobitel: 098/111-111, tel.:033/123-123" (i po
tri broja u jednom polju). Bolno ocito kaubojsko unosenje podataka
bez ikakve kontrole formata od strane, ocito, nekoliko ljudi.
Svaki pokusaj trazenja nacina automatiziranog ciscenja tih
tablica, strukturiranja u bilo kakav computer-readable format je
kroz sljedeci tjedan propao i nasli smo se u situaciji da podataka
imamo previse za ponovno unosenje i ne mozemo automatski izvrsiti
konverziju u bilo sto normalno pa je ocito, racionalno rjesenje
bilo raditi sa postojecom kolekcijom podataka. Na iskustvu se
ucimo ne raditi takve greske 2 puta.
Vrijeme pokazalo, povijest bezuspjesno nastojala zaboraviti
[dan prije roka predaje]
Nije gotovo. Ne postoje dvije prikladnije rijeci da bi opisale
stanje naseg projekta bolje nego ove navedene. Cak ni "nezavrseno"
ne odrazava dovoljno velicinu rupa u kodu i kolicinu prisilnih
improvizacija u komunikaciji flasha i programa ispod njega zbog
nedostatka covjeka koji barata flashom. Jasenka objavljuje radosnu
vijest: narucioc hoce prezentaciju proizvoda tek za tjedan dana -
na nasu golemu zalost on jednostavno ne stigne bas sad i o tome
brinuti.
[tri dana prije pomaknute prezentacije]
Nastavlja se rad na projektu buduci da je zbog mojih fakultetskih
obaveza bio zapostavljen, a nije bilo nikoga drugoga da se time
bavi u medjuvremenu.
[vecer prije roka predaje]
Naizgled puno manje "ne gotova" aplikacija priprema se od rano
poslijepodne do 3 u jutro za ogranicenu prezentaciju sljedece
jutro - radi se o verziji cije je koristenje nalik na setnju kroz
minsko polje: dati korisniku da klika gdje hoce i kad hoce vodilo
bi neizbjeznoj eksploziji i unistenju aplikacije pa je tok
prezentacije unaprijed odredjen i Jasenkina sigurna ruka dovodi ga
bez problema do kraja. Bilanca: svi se slazu da bi bilo dobro da
se neke stvari isprave - cak i nasem naruciocu je jasno da to bas
nije to, a bilo bi zgodno i dodati jos neke mogucnosti (Jasenka
opet demonstrira svoje diplomatske vjestine kupovanja vremena).
Dobila je jos nevjerojatnih mjesec i pol dana, cime je ukupno
kasnjenje projekta u odnosu na originalnu zamisao poraslo na preko
6 mjeseci.
[narednih mjeseci i pol dana]
Polagano gasenje mog angazmana na racun rastucih fakultetskih
obaveza kako je semestar odmicao dalje nije sprijecilo Jasenku da
jos jednom pokusa naci nekoga tko barata sa tim Flashom...ovaj put
uspjesno. U medjuvremenu sam ja slozio E-R model baze kakva bi
trebala biti da bi stvari radile kako spada, ali je to rijesenje
odbaceno na racun "nedostatka vremena za implementaciju i
neprakticnosti prebacivanja svih podataka iz stare baze u novu".
Svakako, tamo negdje 2-3 tjedna prije roka za isporuku, konacno
nalazimo nekoga tko je prije cuo za ActionScript i ne samo da je
cuo, nego je na "ti" s njim. Crvenobradi me prepao prvi put kad se
pojavio u uredu: relativno krupnom pojavom dominira lebdeci
polusmjesak na licu, tjedana dana stara brada, velika, debela,
zlatna nausnica u lijevom uhu i glas taman malo iznad praga
cujnosti ljudskog uha - ne zbog toga sto je bio tih nego sto zvuci
kao Barry White nakon 15 godina duhana i, pretpostavljam,
alkohola. Vrijeme je pokazalo da je rijec o neobicno razumnom
covjeku koji se cak i trudio, ali ipak kucnom programeru koji je
zakljucio da se sve to ionako da nauciti iz helpa. Jedan od
krunskih detalja njegovog rada na ovom projektu mislim da necu
zaboraviti dok budem znao tipkati. Nase je sucelje, naime, imalo i
glazbenu podlogu - da, glazbenu - koja se mogla ukljuciti i
iskljuciti po volji korisnika. Barem je to bila ideja. Crvenobradi
je, u pravom duhu kucnog programiranja, u ActionScript event
handleru napisao sljedeci kod: <neki kod>
if (not stanjemjuzeoff=false)
<neki drugi kod>
else
<neki treci kod> On je, izgleda, imao statusnu varijablu koja
se zove stanjemjuzeoff pa je onda, u tom smislu gornja petlja
znacila: ako nije istina da nije tocno da nije upaljena muzika,
izvrsi neki drugi kod, inace izvrsi neki treci kod. Ali koliko god
je ta njegova konstrukcija na jedno vrijeme zakocila rad na
projektu, toliko je njen socijalni doprinos bio velik da smo jos
tjednima unaprijed (u odsustvu Crvenobradog i zaista bez zle
namjere) podizali atmosferu na racun stanjemjuzeoff...nesto prije
se, naime, Mario (inache vise nego korektan suradnik/programer),
prihvatio udarnickog posla na The Projektu u svjetlu mog
najavljenog odlaska na racun fakultetskih obaveza tako da sam imao
drustvo s kojim sam mogao podijeliti jad i srecu.
[dan prije roka isporuke]
Dolazim u ured oko 3 popodne. Sesija pred ekranom traje do 9 u
jutro - oko 7 nas je Crvenobradi morao napustiti kako bi otisao na
dnevni posao, a ja sam ostao dok nisam morao na faks. 18 sati u
komadu, s pauzom za veceru. Koji sampionizam...posljedice su,
naravno bile porazne za sve osim za Jasenku i narucioca kojeg je
zarazila svojim beskrajnim optimizmom. Nova odgoda, all in a day's
work. Nisam mogao vjerovati, ali uspjela je progurati novu
odgodu... Dvije, tri rijeci by Mario
Nevjerojatno kasnjenje cijelog projekta nije ostavilo vidljivog
traga na pozitivnosti managementa, iako je gotovo svima bilo jasno
da to tako nece ici - iole naprednije pretrazivanje po Bazi
rezultiralo je ogromnim cekanjem na rezultate pretrage. Krivac je
pronaden u sucelju, cija je brzina eksponencijalno padala s
kolicinom prikazanih podataka. Kao alternativno rjesenje
predlozena je izrada klasicnijeg sucelja u nekom normalnom
programskom jeziku, a kako su vec neke komponente nastale u
Delphiju, to je bio prikladan izbor. Pronadena je i osoba s
znanjem dovoljnim da to slozi i ogromnim entuzijazmom i prve
verzije su pokazale znatno vecu brzinu... No u timu je zbog ocitog
besmisla svega ponestajalo volje da se bilo sta vise radi na
tome... sta se dalje desavalo nije poznato... Nesto prije mojeg
odustajanja pojavile su se ponude da preuzmem mjesto team leadera
novog projekta (mjesto za koje se ni blizu nisam osjecao
sposobnim, a kamoli uz pomoc takvog managementa) u MegaBlastu... s
napomenom da bi novi projekt trebao biti daleko veci od svih
dosadasnjih - i opasno je smrdio na slicnu pricu, ali kako su pri
spomenu Projekta svima su isli trnci, management je odlucio uciti
na temelju svojih gresaka i ne upustati se vise u rad sa
tehnologijama o kojima se nista ne zna u firmi...
Epilog U vrijeme kad je The Projekt neslavno propao, Mario i ja
smo vec bio long gone, desetak ljudi se izmjenilo u "razvojnoj
ekipi", sve to vrijeme su u svojim odgovarajucim uglovima ureda
tiho radili svoj posao jos dva potpuno (za pricu) nevazna covjeka,
a nesto vise od godinu dana kasnije je, unatoc mojoj nevjerici,
dogovorena lova sjela moj racun. Sve do zadnje kune.
Steta je sto ljudi inache pozitivnog karaktera i, ocito,
nevjerojatnih demagoskih sposobnosti nemaju vise managerskih
sposobnosti.
|