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)
  Tihomil Nikotinović Maddog
 
  Tihomil je s izuzetkom Žakra bio najdulje u firmi i često je običavao pričati o prvim danima firme i o ljudima koji su otišli. Njegove priče su potvrđivale tezu da je u Dodoniju fluktuacija kadrova bila nevjerojatno velika.

Nekontrolirani napadi bjesnila

Tihomil je bio već dobrano zašao u tridesete, izgubio praktički svu kosu pa je one reliquie reliquiarum redovito brijao. To mu je davalo pomalo zastrašujući izgled pa se Bojan i danas sjeća njihovog prvog susreta kada je Tihomil banuo u firmu nakon godišnjeg odmora i počeo pričati dogodovštine s mora. Onako ćelav, duboka glasa i bahatog nastupa izazvao je u Bojana pomisao: "Bože, kako li će biti raditi s ovim bikom. Ako mu nešto krivo kažem, istući će me bez da razmisli."

I zaista, Tihomil je imao čudnu narav. Znao bi iz čista mira eksplodirati i izderavati se na kolege a nedugo nakon toga smiriti se i biti prijazan i smješkati se. Npr. ako bi mu zasmetao propuh umjesto da kaže: "dečki ja bih zatvorio vrata sobe jer mi puše. Je li to u redu?" Tihomil bi najednom počeo bjesniti i vikati: "Pa ja ću jednog dana nekog razbiti ako vidim da ostavlja vrata otvorena. Meni smeta propuh, je li to vama ulazi u glavu?"

Druga neugodna osobina mu je bila da je volio glasno komentirati ama baš sve, od sadržaja neke zabavne web stranice koju je upravo gledao do problema koje ima u kodu. Ako bi to nekom zasmetalo i lijepo bi ga upozorio da drugi rade i da im treba tišina, Tihomil bi pobjesnio i uzvratio: "A kad vi međusobno pričate to meni isto smeta ali baš vas briga. E pa neću šutjeti!" Zbog takvih nekontroliranih napada bjesnila Bojan je Tihomilu nadjenuo nadimak Maddog, inspiriran nazivom računalne igrice Maddog McCree. Nadimak je osim Bojanu bio poznat samo Bartolu koji je često bio žrtva Maddogovih izljeva bjesnila. Odlučili su da zbog duševnog mira ne upoznaju Tihomila s njegovim novim nadimkom jer se to njemu vjerojatno ne bi svidjelo.

Bilo je zanimljivo da su te neugodne osobine smetale jedino Bartolu, Bojanu i Senki. Kad je Bartol jednom pitao Žakra zašto kao šef ne ukaže Tihomilu da zašuti i ne smeta kolege dok rade, ovaj ga je čudno pogledao i pitao: "A Tihomil puno priča? Nisam primijetio." Očito se pravio Englez, možda zato što je sjedio u susjednoj sobi pa nije morao direktno trpiti Maddogove komentare ili zato što mu se nije dalo bosti s divljim bikom za dobrobit svojih ljudi i njihove produktivnosti. Žakru nikad ljudi nisu bili važni, uvijek je prvo gledao sebe i svoju komociju. Što se tiče Stinkya, on isto nije pokazao da mu smetaju Maddogovi neprestani komentari što je možda objašnjivo time da su oni bili dobri pajdaši i često su išli zajedno pušiti u sobicu za pušenje. Kasnije su Bartol, Bojan i Senkin nasljednik Rudi problem riješili nabavkom slušalica i puštanjem muzike, a Maddog je i dalje pričao i pričao, ali u prazno.

Veliki stručnjak i još veći jebač

Nakon što ga je malo bolje upoznao, Bojan je shvatio da je Tihomilov nastup ustvari dobra fasada koja prikriva njegovu unutarnju nesigurnost, kako privatnu tako i stručnu. Naime, iako je Tihomil volio pričati kako je na moru karao strankinje koje su samo čekale da uskoče u njegov rabljeni Daewoo, objektivnom promatraču je iz više razloga bilo očito da su to samo lovačke priče.

Što se tiče stručne nesigurnosti, prvu najavu je Bojan imao od Bartola, dok još nije ni upoznao Tihomila. Bartol je jednostavno rekao: "čuj, što se tiče Tihomila, on ti jednostavno nije stručnjak." I zaista, iako u početku nisu radili na istom projektu, Bojan je brzo shvatio kolike su Tihomilove stručne kvalitete. Kod koji je radio bio je u najboljoj maniri Stinkyeve škole programiranja – ružan, na brzinu sklepan Visual Basic kod sa hardkodiranim konstantama i SQL upitima, copy-paste metoda za stvaranje novih funkcija i formi, konvencija nazivanja varijabli "što kraće i nerazumljivije ime to bolje" pa je tako njegov kod bio pun samorazumljivih imena kao x, xx, xxx ili x1, x2. Kada bi ga čovjek upitao, riskirajući napad bjesnila, zašto je tako kodirao, Maddog bi prostodušno odgovorio: "tako je brže". Mnogo vremena kasnije Bojan je ponovno čuo tu frazu u kontekstu sljedeće anegdote.

"Tako je brže"

U jednom programerskom društvu začeo se razgovor o najgorim programskim rješenjima za koje je netko čuo. I tako je jedan od prisutnih započeo: "U prošloj firmi za koju sam radio imali smo tipa koji je jednom cijeli program u C-u isprogramirao unutar funkcije Main. Kada je kolega slučajno otvorio taj source, u čudu se pitao gdje su moduli i funkcije i na svoj užas shvatio da je sve u Mainu. Daljnjom analizom je unutar maina našao hrpu ponavljajućeg koda koji je autor tamo nakotio copy-paste metodom.

Ubrzo se to pročulo pa su doveli autora tog horrora i pitali ga zašto je tako isprogramirao. Ovaj je ne shvaćajući pitanje lakonski odgovorio – "pa tako je brže!" Netko je iz društva pitao kako se zove taj genijalac da ga se predloži za neku programersku nagradu. "Tihomil Nikotinović" – odgovorio je upitani. Bojan se tada umiješao: "Da, Maddog, znam, radio sam s tim majstorom". Opisana anegdota se naveliko prepričava u programerskim krugovima i Maddog je još za života ušao u legendu.

Majstor za "Copy-paste" metodu

Da je Maddogu također brže iskopirati hrpu koda i ne razmišljati uopće o posljedicama, Bojan je shvatio kada je jednom naišao na neobičan slučaj u kodu glavne DAMP aplikacije. Naime, u aplikaciji su postojale dvije forme za unos podataka koje su nevjerojatno sličile jedna na drugu samo su se drugačije zvale. Bojanov zadatak je bio da proširi malo funkcionalnost tih formi. Pomnijim proučavanjem shvatio je na svoj užas da su dvije forme funkcionalno potpuno iste, jedina razlika je što se pozivaju s dva različita mjesta, s dvije različite parent forme na koje se referenciraju u kodu na par mjesta zbog refresha. Problem se mogao riješiti na dva načina:

  • Parent na koji se forma referencira se mogao poopćiti tj. umjesto da se referencira na konkretnog parenta tj. varijablu tipa neke od formi u projektu, trebalo je uvesti generic parenta koji je tipa Object. Na tom generic parentu se onda pozivaju strogo definirane metode koji parent mora podržavati. To je ustvari pozivanje objekta nepoznatog tipa koji podržava poznati interface, situacija toliko česta u objektno orijentiranim aplikacijama. Tako je to riješio Bojan i dobio jednu formu za dva različita parenta. I da se eventualno pojavilo još n mogućih parenta, dizajn bi i dalje funkcionirao.
  • Na prvu formu koja se referencira na prvog parenta primijeni se šampionska copy-paste metoda tj. forma se jednostavno iskopira, zajedno sa kontrolama i svim kodom. U kodu iskopirane forme referenca na prvog parenta zamijeni se referencom na drugog parenta. Ako bi se pojavio treći parent, opet bi trebalo iskopirati formu itd.itd.

I programeru početniku koji imalo razmišlja u duhu lijepog dizajna i optimalnog koda jasno je da je prva varijanta bolja. Ali majstor koji je radio te forme se odlučio za ovu drugu varijantu. Zašto? "Jer je tako brže." Naravno, Bojanu nije trebalo dugo da detektira tko je Speedy Gonzales. Ne budi lijen, otišao je u history verzija formi na Source safeu i našao prvu, inicijalnu verziju druge forme koja je nastala kopiranjem prve. Autor verzije – taraaaam, Maddog!

Stručnjak kakvog bi poželjela svaka firma

Maddog je općenito imao nevjerojatno slabo i površno znanje u gotovo svim tehnologijama. Bojan za cijelo vrijeme rada u firmi nije primijetio niti jedno područje u kojem je Maddog bio dobar. Čega god bi se prihvatio, uspio bi zasrati ili ne dovesti do kraja pa je to morao završiti netko drugi. Sam je priznao da se do 1995 nikad nije bavio programiranjem, ali nikad nije pokazao niti najmanju namjeru da nauči malo bolje taj posao, da se školuje ili da pročita neku knjigu. Kada je Bojan jednom donio u firmu vlastiti primjerak knjige "Code complete" i objasnio Maddogu da je to programerska biblija, ovaj je samo prezrivo odmahnuo: "Pa ja znam sigurno deset puta više nego što piše u toj knjizi!"

Ipak, koliko god pričao, ipak je bio svjestan svojih nedostataka pa je bježao od timskih projekata u kojima sudjeluje više ljudi jer je znao da bi tamo sigurno ispao najslabija karika i da bi njegovo neznanje došlo na vidjelo. Najviše je volio solo projekte u kojima je mogao krasti bogu dane i gazdi Erichu sate a da ga nitko nije pozivao na odgovornost. Tek ponekad bi ga Žakro pitao u kojoj je fazi na što bi ovaj rekao: "Još samo malo ali skoro sam gotov. Nema problema" I nastavio surfati ili skidati mp3-e. Većina takvih projekata su bili katastrofa i samo su brukali gazdu Dodonija. Kad bi ga Erich pitao zašto program ne radi kod klijenta, Maddog bi rekao da kod njega radi i sasuo drvlje i kamenje na glupe klijentove administratore i na njihovu opremu pa Erichu ne bi preostalo ništa drugo nego da mu plati kartu da on sam dođe instalirati program kod klijenta. Maddog se ne bi bunio jer je volio odlaziti u Dembeliju i poslije ljudima u firmi koje to uopće nije zanimalo glasno pričati svoje dogodovštine.

Najčešće anegdote su bile vezane uz prijelazak granice jer je imao dojam da ga carinici više pregledavaju od ostalih putnika i da ga nepotrebno šikaniraju. To što je bio obrijane glave, mrkog izgleda i nosio je crnu kožnu jaknu, crne hlače i čizme vjerojatno nije bio razlog, prije će biti da su podsvjesno znali kakva veličina sjedi pred njima i da su npr. iz čiste ljubomore tražili da pokaže koliko novca nosi sa sobom.

Sistemaš poslije kojeg pomaže jedino reinstalacija

Maddog je također volio sitne sistemaške i administratorske zadatke kojih u svakoj razvojnoj firmi uvijek ima. Instalirati novi server, instalirati novi service pack, instalirati neki novi softver, napraviti setup aplikacije - nikom drugom se to nije dalo osim njemu. Obožavao je iz čista mira preinstalirati neki važan server ili nešto podešavati na svoju ruku bez da ikog išta pita, i u većini slučajeva bi rezultat bio da nešto nakon njegove intervencije više ne bi radilo.

Jednom je tako prčkao po glavnom serveru na kojem je bila razvojna baza i nakon toga je SQL server debugger blago i nečujno preminuo. Bartol je bio ljut i pitao je tko je drkao po serveru na što bi Maddog s aureolom iznad glave uzvratio: "Nemam pojma. Zašto mene pitaš? Zašto svi misle da sam ja kriv ako nešto ne valja na serveru?"

Jednom drugom prilikom je dobio zadatak da napravi minimalni setup koji bi na web serveru instalirao potrebne komponente Crystal reportsa jer je web aplikacija generirala neke reporte pomoću tog popularnog enginea. Nakon nekoliko dana prčkanja i popratnog vikanja i izderavanja na glupi server, glupi crystal reports i sve drugo glupo (osim njega, naravno) uspio je napraviti setup koji je za divno čudo radio ali samo na NT4 serveru. Kada bi se isti setup pokrenuo na Windows 2000 serveru, zaklao bi operativni sustav "k'o zeca". Tj. sustav bi nekako radio ali čudno,i rušio bi se ako se npr. otvori control panel.

Poslije je Bojan našao uzrok problema: setup je bio napravljen tako da bezuvjetno instalira određenu verziju MFC dll-a u system direktorij, bez obzira da li na sustavu postoji novija verzija. To je funkcioniralo na NT4 jer je tamo verzija koju instalira setup bila novija od sistemske. Međutim, isti setup bi na W2000 forsirano instalirao stariju verziju tj. pregazio noviji MFC dll i na taj način "ubio" sve funkcionalnosti u Windowsima koji ovise o toj novoj verziji, a takvih je bilo dosta. Bojan nije nikad saznao zašto je setup morao bezuvjetno instalirati određenu verziju dll-a ili ako je već morao, zašto je nije instalirao u neki custom direktorij Da mu je bilo stalo i da je upitao autora, odgovor bi vjerojatno bio negdje između "tako je brže" i "jebi ga, više mi se nije dalo zezati s tim pa sam napravio samo da radi".

Pranje je gubitak vremena.

I za kraj priče o ovoj programerskoj veličini, bilo bi nepošteno ne spomenuti još jednu tajnu vezu koja je povezivala Maddoga i Stinkya, osim pisanja užasnog koda i sklonosti cigaretama. Bile su to higijenske navike. Isto kao i Stinky, i Maddog bi s vremena na vrijeme, vjerojatno smišljajući nove algoritme i u kreativnom žaru, jednostavno zaboravio oprati ili sebe ili svoju odjeću, a često i oboje. Kod njega se to nije osjetilo kao kod Stinkya ali Bojan je imao sreću da je sjedio na takvoj poziciji da struja zraka nije nosila ta isparavanja prema njemu. Rudi, Senkin nasljednik, nije bio te sreće i često bi kolutao očima kad bi osjetio neugodni vonj koji je dolazio s kolege. Jednog dana je čak došao s vonjem koji je Bartol opisao kao "miris zapišanog klošara koji uđe u tramvaj". Jednom drugom prilikom se vjerojatno najeo luka pa je ispustio tako otrovni oblak plina koji se širio brže od vanilije i od kojeg su se skoro svi u sobi pogušili. Kad je vidio poglede pune mržnje uperene prema njemu i začepljene noseve, Maddog je samo procijedio: "Pardon!"

Ni Shakespeare se tog ne bi sjetio

Za razliku od higijenskih navika, stvar koja je povezivala Žakra i Maddoga je bila kvaliteta govornog i pisanog engleskog, koji su obojica bila prisiljena upotrebljavati. Kako zaboraviti tako inovativne zahvate u izgovor poznatih termina kao što su npr. "AdvEnced server" ili "akrobat rAJder". Maddogove mailove i dokumente je zbog mentalnog zdravlja bolje ne spominjati.
 

  Prije (Previous) Nastavak (Next)