Uloga:
Head developer
Stinky je bio 22-godišnji mladac koji je mislio da je vrhunski
programer, zapravo Visual Basic programersko božanstvo i da samo iz
sažaljenja i dobrote komunicira s ostalim smrtnicima s kojima je
prisiljen raditi. Često je ponosno isticao da otkad zna za sebe
programira i da se iskušao u nebrojenim tehnologijama, od C-a, Unix-a,
HTML-a preko VB-a i dalje. Kad mu je Bojan u jednom razgovoru
sramežljivo izjavio da web poznaje već dosta dugo tj. od 1994 kada je
nabavio prvi modem i Mosaic browser, Stinky se samo nadmoćno nasmijao
i rekao: "Tako kasno si počeo?"
Faks? Certifikat? Ma neeee, Brainbench!
Stinky je završio geodetsku školu i nije nikad studirao, pogotovo
ne FER ili neki sličan faks. On bi to objasnio time da je on očito
prepametan za faks i da tamo ne bi mogao pokazati sav svoj raskošni
talent. Također nije nikad položio niti jedan stručni certifikat kao
npr. MCSD ali je zato ponosno isticao da je jedan od najboljih Visual
Basic programera po Brainbenchu.
Zgoda koja najbolje oslikava koliko je ustvari Stinky malo znao o
programiranju i da ustvari nikad nije stekao bazična znanja niti pročitao ijednu knjigu iz tog područja je
ona u kojoj je u jednom trenutku pitao Bojana da mu pomogne riješiti
sljedeći problem:
|
"Imam funkciju koja mi vraća boolean vrijednost. E
sad, ja bih htio da neka varijabla poprimi obrnutu vrijednost od onog
što vrati funkcija. Ja bih to kodirao tako da napišem
If
Funkcija()=true
Then varijabla =
false Else varijable =
true.
Ali imam
feeling da se to može i jednostavnije napisati. Možeš li mi reći
kako?" |
Kad je Bojan zabezeknuto odgovorio da je dovoljno napisati
varijabla = Not Funkcija() Stinky je marljivo krenuo provjeriti i onda
je nakon par minuta veselo uskliknuo: "Pa to radi!". Bartol je sve to
gledao sa strane i samo dobacio Bojanu "Vidiš kolega, jebeš svu
edukaciju, godine programiranja, pročitane knjige i teoriju Booleove
algebre. To ti uopće ne treba da budeš programer šampion. Dovoljno je
da znaš propertie Janus grid i ActiveBar kontrole i programirati
copy-paste metodom i sva ti se vrata otvaraju."
Higijena se ne polaže na Brainbenchu Inače, svoj nezavidan nadimak Stinky je zaradio kada je Bojanu
postalo jasno da ne zaudara samo spaghetti kod kojeg je Stinky
svakodnevno stvarao već i njegov autor, i to gadno. Očito Stinky nije
prao niti sebe niti odjeću koju je nosio na sebi, osim možda kad bi se
počela lijepiti na njemu. To je bilo tim čudnije jer je Stinky živio s
curom i to dosta dugo. Legendarna je zgoda kada je Stinky prišao Bojanu i počeo mu nešto
objašnjavati a pritom je stao ispred ventilatora koji je radio jer je
bilo ljeto a firma nije imala klimu. Dok je Stinky veselo gestikulirao
i pričao o nekom svom rješenju, Bojan je samo kolutao očima i
zadržavao dah da ne osjeti grozni smrad koji je pomoću ventilatora
tukao od Stinkya ravno prema njemu. Druga anegdota koja isto dovoljno
govori o Stinkyevim higijenskim navikama je ona u kojoj je Bartol
jednog jutra veselo krenuo na WC da se istovari i kad se sagnuo nad
školjku imao je što vidjeti veliki smeđi zavijutak i par papira kako
ponosno strše iz otvora. Genijalac Stinky je zaboravio pustiti vodu!
Stinky code convention ili "Da kokoš pretrči preko tastature nastao bi
ljepši kod" Ipak, da se ne bismo zadržali samo na Stinkyevoj higijeni i bahatosti,
koju riječ treba reći i o njegovom kodu i načinu rada. U par riječi to
bi bilo vulgarno, herojsko Visual Basic programiranje bez ikakvih
standarda ili lijepih običaja koji bi nekom drugom olakšali čitanje
takvog koda i održavanje. Obožavao je Stinky globalne varijable,
varijable kratkih i kriptičnih imena (npr. umjesto rstCustomers ili
rstProjects svaki recordset je jednostavno nazivao trs), hardkodirane
numeričke i string konstante, ogromne strukture, SQL querye upisane
direktno u kod od kojih su se neki protezali na desetke linija, indent
je postavljao na dva znaka umjesto na standardna četiri i da dalje ne
nabrajamo sve te užase. U razgovorima uz kavu bi Stinky znao reći da
"ne voli klase jer su nekako preglomazne, već da više preferira
strukture." Također nije imao dobro mišljenje o COM komponentama. "Ma
da, mi smo na početku nešto probali s COM komponentama, Patrik je tu
nešto forsirao, ali stalno je bilo problema s ovim ili onim
compatibilityem, nova verzija aplikacije se rušila sa starim
komponentama ili obrnuto, pa sam ja odlučio olakšati stvar i sad nema
komponenti, sve je unutar jednog exe-a". Da ubogi Visual Basic
Brainbench šampion nije uopće shvatio COM komponente i što je binary
compatibility, a o IDL-u i GUID-ima da ne pričamo, to se nije smjelo
ni pomisliti. Stinky i slični njemu su izmislili novu verziju
gordijskog čvora umjesto da si daš malo truda i pokušaš shvatiti ili
naučiti ono što ne znaš, presiječeš stvar i napraviš ono što znaš,
makar je to lošije rješenje i zaudara do neba. Pokazati da ne znaš je
znak slabosti! Code reuse je Stinky shvatio kao primjenu copy-paste metode, što je
vrlo lucidno primijetila Senka kojoj je to strašno išlo na živce jer
je vrlo često morala debuggirati Stinkyevo smeće nastalo opisanom
metodom. Ako je trebalo napraviti novu formu u aplikaciji, Stinky je
jednostavno iskopirao staru i promijenio malo funkcionalnost. Na taj
način je source kod aplikacije imao gomile ponavljajućih fragmenata i
funkcija što je kasnije održavanje činilo pravom noćnom morom. Ali
Stinky nije mislio na ljude koji će nakon njega morati ispravljati
njegov kod to su obični looseri koji se nisu plasirali na vrh
Brainbench liste i kojima mora biti čast debuggirati remek-djelo
njegovog veličanstva. Njegova bahatost bila je obrnuto proporcionalna
njegovom znanju. Brzina je šampionska vrlina Jedini kriterij koji je Stinky priznavao kod programera je brzina. Što
brže naštancaš kod, to si veća faca. Nije bitno kako je on napravljen
i koje je kvalitete, bitno je samo da što prije bude gotov kako bi
aplikacija bila napravljena u roku i kako bi Žakro a posredno i Erich
bili sretni. Nije čudno da je zbog takvog pristupa Stinky postao de
facto head developer u Dodoniju, makar ga nitko službeno nije time
proglasio. Ali iz odnosa njega i Žakra vidjelo se da je to tako. Druga
je priča što se i uz takav pristup rokovi nisu stizali i što su
klijenti bili nezadovoljni zbog buggovitih aplikacija pa su se neki
accounti samo tiho ugasili. Ali, dok god je gazda Dodoni uz pomoć
svojih poznanstava nalazio nove poslove, stvar je funkcionirala. Bilo
je još dosta prilika za novo brukanje. O Stinkyevom poslovnom moralu i etici Bojanu je jednom posvjedočio
Bartol: "Jednom sam bio nasamo sa Stinkyem i valjda je mislio da mi
čini milost pa mi je pričao svoju životnu filozofiju. Ukratko, rekao
je da je njegov motto radim koliko mi plate. Ako daju više, on će se
više potruditi, a ako ne, onda će on raditi nabrzaka i bez grižnje
savjesti stvarati smeće". Na stranu što je Stinky za svoje znanje imao
sasvim solidnu plaću, on je bahat kakav već jest smatrao da je tih
legalnih 1700 DEM ništa prema njegovom talentu za kojeg bi se otimale
druge firme. Navodno je čak pred kraj svog boravka u Dodoniju tražio
plaću od 3000 DEM ali čak ni Žakro i Erich nisu bili toliko ludi da mu
to daju. Primjeri koda za "coding horror"
kolekciju Kasnije je Bojan shvatio da je Stinky preuzeo način
programiranja od Patrika i da je, ograničen kakav je već bio, mislio
da je to jedini način kako treba programirati. Patrik je očito mogao i
bolje ali mu se očito nije dalo, ali za ubogog Stinkya je to bio sav
svijet. Uzalud je Bojan pokušavao uvesti neke drugačije standarde kao
npr.
Engine-Class-Collection arhitekturu ili ljepše i preglednije
pisanje koda, Stinky bi uvijek radio po svom. Još i sad Bojana prolaze
srsi kad se sjeti kako je Stinky napisao jedan modul u Bojanovom ASP
projektu. Taj kod je toliko odudarao od ostatka aplikacije da Bojan
jednostavno nije imao želuca da ga ostavi već ga je obrisao i napisao
otpočetka. Taj "coding horror" kako bi rekao Steve McConnell u svom
klasiku Code complete, imao je i ovakvih konstrukcija:
|
for x = -1
to c
if trs.EOF =
true or x > 100
then
exit for
end if
c = c + 1
(neka business akcija)
next |
Dugo je Bojan mozgao što je pisac htio reći s takvom nelogičnom
konstrukcijom da bi na kraju shvatio da je Stinky prolazio kroz
recordset od prvog do zadnjeg recorda i sa svakim radio istu business
akciju. Kad ga je pitao zašto je umjesto jednostavne i svima
razumljive Do until petlje za prolaz kroz recordset koristio ovu
totalno čudnu i nelogičnu petlju u kojoj se brojač for petlje povećava
unutar nje, Stinky je samo lakonski odgovorio, svojim pičkastim,
iritirajućim sopranom: "Pa for petljica mi se u tom trenutku
učinila zgodnijom". Da, i Bojanu se brisanje tog užasa i pisanje
ispočetka isto činilo zgodnijim za mentalno zdravlje i za kvalitetu
koda.
Nažalost, ne bi imalo koristi niti smisla da je to tražio od
Stinkya. Stinky je mislio da je potpuno legitimno napisati nerazumljiv
i teško čitljiv kod iz najmanje dva razloga:
- Postaješ važan i nezamjenljiv jer nitko drugi ne shvaća što kod radi
- Što kompliciraniji kod pišeš to si bolji programer. Onaj tko ga
ne može shvatiti je looser.
U ovakvom shvaćanju posla i programiranja Stinky nije bio usamljen.
Osim svog duhovnog oca Žakra, imao je još jednog vjernog sljedbenika u
liku Tihomila Nikotinovića zvanog Maddog.
|