|
Pobedničko geslo
- Glavno geslo šampionske organizacije glasi: "Mi smo svi svetski
šampioni". Neki koriste i naziv "igrači". Sve daljnje natuknice su
samo daljnje objašnjenje osnovnog gesla.
Šampionsko znanje
- Pred drugima šampion nikad ne govori da nešto ne zna. On
zna sve. Ne treba mu nikakvo učenje i usavršavanje. Ako prizna da
nešto ne zna, pregazit će ga konkurentski šampion koji takvu grešku ne
čini. Reći "ne znam" je znak slabosti, nesigurnosti i manjka
samouvjerenosti.
- Ustvari, ako nešto ne zna a treba naučiti, to će napraviti potajno
tako da nitko ne zna i onda će se kasnije s tim praviti važan kao da
to zna već godinama.
- Pravi šampion se može baviti svačime. Po mogućnosti, s onim što u
tom trenutku donosi najviše profita (popularnosti) uz najmanje rada.
Jučer VB, danas ASP, sutra .NET – sve se da lako skužiti i onda
iskoristiti.
- Šampionsku organizaciju je najlakše prepoznati baš po tom
kriteriju. Ako naiđete npr. na organizaciju u kojoj:
-
Ima 6 zaposlenih i svi vode projekte
-
Na projektima radi ili samo jedan čovjek ili
jedan iz firme + vanjski suradnici
-
Nitko od onih koji ne sudjeluju u projektu nema
pojma što se u tom projektu događa
-
Svi rade u svih tehnologijama i uopće nije u
pitanju da li netko od dotičnih zna neku tehnologiju već ako je na
raspolaganju daje mu se posao
-
Ne postoji nikakav standard rada, proces niti
dokumentacija zajednički bar dvojici a da ne govorimo o svima skupa
(tj. svatko radi po svome)
onda budite sigurni da ste definitivno među šampionima.
Šampionske vrline i mane
- Ono što neznalice i nešampioni nazivaju skromnost ili
istinoljubivost je nešto što je strano pravom šampionu. U svakoj
prilici i na svakom mjestu šampion treba uzdizati svoje "vrline" pred
ostalima, bez imalo lažnog stida. "HTML sam rasturao već 1990", "među
prvih sam 10 VB programera u Hrvatskoj po Brainbenchu", "Ovo rješenje
sam ja zamislio a ostali su došli tek kasnije a sada si prisvajaju
zasluge".
- Dobra šampionska tehnika je pripisivati vlastite mane drugima. Ako
šampion kaže za nekoga da "je pun ego tripova", onda budite sigurni da
je ego dotičnog šampiona veći od Himalaje. Ili, ako kaže "ja ne znam
drugima raditi iza leđa" onda je 100% to jedna od njegovih najvažnijih
tehnika preživljavanja među drugim šampionima.
Profil šampiona
- Pravi profil svetskog šampiona je sljedeći:
- "Zna" sve tehnologije. Rastura Windows, AD i Exchange
administraciju, projektira baze podataka, programira, radi web
stranice.
- Naravno, ništa od toga ne zna detaljno, samo onoliko koliko mu
treba da se proda da to zna.
- Leti s jedne stvari na drugu, nikad ni jednu ne obavi temeljito i
do kraja jer mu brzo dosade.
- Nikad nije čuo za teoriju programiranja ili prošao neku formalnu
naobrazbu već je sve naučio upornim isprobavanjem i pikanjem. Logika,
matematika, Booleova algebra i slični pojmovi spadaju u ropotarnicu
povijesti. Šampionsko pitanje: "ako mi funkcija vraća true ili false,
kako da dobijem obrnutu vrijednost, da li da provjeravam s If ..? "
Nakon što je dobio odgovor da koristi Not, šampion još ne vjeruje i
nakon nekog vremena ozarena lica kaže: "stvarno, pa to radi."
- Objektno orijentirani dizajn i srodne jezike (Java, C++) izbjegava
jer se ne daju tako lako svladati i razumjeti. Ustvari, prezire klase
i objekte jer mu je cijeli koncept previše znanstven i nerazumljiv.
Citat: "ne volim klase jer su mi nekako preglomazne i neoptimalne,
zato radim samo sa strukturama" ili "nemojte mi zbog jednog if-a
napraviti klasu". Sofisticiranje koncepte kao što su npr. Design
patterni nećemo niti spominjati.
- Na Windows platformi, gotovo obavezno programira u Visual Basicu i
VBScriptu.
- Najdraža arhitektura aplikacije mu je monolitna jednoslojna
arhitektura u kojoj u event handlerima forme nakrca brdo spaghetti
koda u kojem miješa hardkodirane SELECT statemente sa business
rulovima i user interface akcijama. Three-tier i slične arhitekture
mrzi jer oduzimaju previše vremena. Citat: "odustali smo od COM
komponenti jer smo stalno imali s njima problema s binary
compatibilitiem. Zato smo sve stavili u jedan exe (od 7.5 MB)"
Naravno, između redaka je trebalo pročitati da dotični šampion nema
pojma o razlici između project i binary compatibility u VB-u i da mu
je umjesto da pročita MSDN ili ne daj bože, pita nekog o tom, bilo
lakše sve strpati u jedan exe.
- Za kompjuterom radi brzo i energično tako da nitko sa strane ne
shvaća što radi
- Druge developere ocjenjuje isključivo po tome kako brzo naprave
neki posao bez obzira na kvalitetu i čitljivost koda. Iz njegovih usta
ćete često čuti komentar: "ah, dobar je on, ali je spor!"
- Da bi postigao tu brzinu, služi se legendarnom šampionskom Copy
and Paste metodom. Uzorke koda koji su radili na jednom mjestu a
trebaju mu na drugom jednostavno će iskopirati, ako treba i sto puta.
Tek ponekad će mu se omaknuti da kod, umjesto da ga kopira, stavi u
funkciju ali to nije prečesto jer je brže iskopirati kod i ići dalje
nego razmišljati o funkciji, parametrima itd. Što će poslije netko
razbijati glavu nad takvim rješenjem nije ga briga – pravi šampion ne
misli na poslije a kamoli na loosere koji će održavati njegov kod. (Primjer)
- Kod ne komentira ili ako ga ipak mora komentirati, onda to radi
preko volje i nemušto. Prvom prilikom prestaje s tom nepotrebnom
djelatnošću uz objašnjenje kako nema vremena za to.
- Dokumentacija? To rade pičkice i knjiški moljci. Ako netko ne kuži
njegov kod, onda je jadnik i looser i bolje da se vrati pod kamen
ispod kojeg je ispuzao. Osim toga, ako bi sve što je radio bilo
dokumentirano i jasno, onda bi netko mogao doći na heretičku misao da
se posao može nastaviti i bez šampiona. A ne, to on ne može dozvoliti!
Sve treba biti isključivo u njegovoj glavi tako da firma jednostavno
ne može bez njega.
Nešampioni
- Ljudi koji se usavršavaju u nekoj djelatnosti i žele maksimalno
kvalitetno raditi taj posao (tzv. stručnjaci ili još gore – inženjeri
i znanstvenici) su budale. Posao treba znati površno, tek toliko da
drugi misle da ga znaš raditi a ako je nešto prekomplicirano, to ćeš
lako delegirati budali koja to zna raditi (još će u najboljem slučaju
biti i sretan i zahvalan zbog toga).
Šampioni i edukacija
- Tečajevi, knjige i slično služe samo zato da šampion može reći:
"da, bio sam tamo i ispravljao predavača" ili "da, naravno da sam
knjigu pročitao makar u njoj nema ništa što nisam znao" ili još, ni ne
pogledavši u knjigu "Ja znam deset puta više nego što piše u toj
knjizi". Ako netko nadobudan kaže "Ajmo primijeniti što smo naučili na
tečaju ili u knjizi", šampion će reći "da, to je zgodno ali nemamo
vremena" ili "daj ti, ja te podržavam". Naime, tečajevi i knjige
najčešće nemaju veliku vrijednost jer uglavnom ne služe promociji i
prodavanju već znanju i kvaliteti, a ovo potonje su pogane riječi u
ušima pravog šampiona.
- Šampion ne primjenjuje tuđa znanja i iskustva, on uvijek stvara
nešto novo i originalno. Primjer: u šampionsku organizaciju dođe
nadobudni nešampion i neuvidjevši da je u firmi već instaliran
šampionski proces rada, predloži da šampioni
u razvoju softvera primijene neki priznati koncept kao npr. MSF.
Naravno, iskusni šampionski kolega mu na to odgovara: "zašto bismo mi
uzimali gotov recept od nekog drugog? Pa izmislimo svoj vlastiti
proces!"
Šampionski project mannagement
- Pravi šampion uvijek ima iza sebe hrpu nedovršenih projekata. Cilj
projekta nije da se dovrši i isporuči već da se na njemu steknu
kontakti, reference i slava. Kada šampion postigne taj cilj, on
napušta projekt a dovršava ga budala koja zna raditi ili projekt
propada, ali naravno bez krivnje šampiona već onih koji su ostali.
- Područje u kojem je šampion nepobjediv je procjena vremena i
težine posla odnosno projekta. Da navedemo samo neke šampionske fraze:
"To je tri linije koda", "To je tri sata programiranja" "znam da vama
treba toliko ali ja bih to napravio deset puta brže" "to je kikiriki
za napraviti", "imam osjećaj da ćemo to začas naštrikati". Ako nešampion na kraju potroši tri puta više vremena ( a i šampion bi
toliko da je radio), šampion će mu reći "još trebaš puno učiti" ili
indirektno "on je spor i ne zna puno, zato mu je trebalo toliko"
- Procjena resursa kod šampiona ide po jednostavnom principu kojeg
je patentirao otac izjave "svi smo mi svetski šampioni" a koji glasi
– "Koliko Kineza toliko zida". Idioti kao F. Brooks ili drugi
teoretičari project managementa koji tvrde da 10 čovjek mjeseci ne
znači da će 10 ljudi napraviti posao u jedan mjesec su naravno u
krivu. Dakle, ako projekt kasni, dodat ćemo više ljudi na projekt i
sve ćemo stići. Ako se to ne desi, naravno, krivi su ljudi jer su
prespori ili jer ne znaju dovoljno. Ako je netko pisao dokumentaciju,
toga naravno treba razapeti jer je to čisto gubljenje vremena.
- Omiljeni specijalitet šampiona je također herojski pothvat tj.
herojsko programiranje. Analogno tome, planiranje, procjena resursa,
kontrola napretka ili (god forbid) kontrola kvalitete su riječi
prljavije od pojmova kao što su incest ili nekrofilija.
- Pravi šampion nikad ne planira. Glavna parola je "Sve ćemo stići"
Ako neki skeptik počne gnjaviti s matematikom u stilu "Pa ima 20 dana
puta 3 čovjeka i čak da ignoriramo Brooksov zakon to ne možemo stići"
pravi šampion će naravno napasti skeptika, optužiti ga da je pesimist,
da ima attitude problem, da ne razumije situaciju itd. Itd.
- Kada se rok približi i šampion u užasu počne shvaćati da je
skeptik imao pravo, posegnut će za omiljenim metodama: dizanje
napetosti, političke parole ("malo je frka ali mi to možemo stići,
vjerujem u nas.."), mobilizacija svih resursa, prekovremeni rad, rad
vikendom, herojsko programiranje bez ikakve kontrole i nadzora itd.
- Šampionski rok isporuke tipično izgleda ovako: pola sata prije
roka još uvijek se završava kod, testira se u hodu i ako se baš ne
ruši, smatra se istestiranim i spremnim. Tek tada počinje integracija
pojedinih dijelova. Vlada velika nervoza i panika, svatko sa svakim
razgovara, gube se dijelovi koda, odjednom iskrsavaju duhovi, otkriva
se da su neki developeri radili po svom jer nije bilo jedinstvene
specifikacije, počinju optuživanja, (Primjer)
- Ako nekim čudom ipak nekako skrpaju stvar da kako tako radi,
raspoloženje se mijenja i šampioni si počinju čestitati, odlaze na
piće, od panike najednom nastaje euforija, samohvala, svi su
neprirodno zadovoljni. Naravno, to traje samo do trenutka kada klijent
započne testirati ili koristiti proizvod. Nakon toga proces
optuživanja i prebacivanja odgovornosti počinje ponovo. Naravno,
krivnja treba pasti na nešampione i na skeptike koji "nisu vjerovali
od početka".
Šampioni i dokumentacija
- Pravi šampion ne piše dokumentaciju. To je za pičkice i knjiške
moljce koji nemaju pojma o ekstremnom, šampionskom programiranju.
- Pravi šampion je također nepismen. On kraj svih svojih obaveza i
pothvata nema vremena za takve trice kao što su č i ć, ije i je ili
nekakvi stilovi i struktura rečenice. To mu je tako beznačajno da ga
nije briga da li će i svoje ime u dokumentima napisati točno.
- Šampion također površno zna strane jezike jer to nije bitan faktor
koji ga čini šampionom. Bitno je da zna VB i VBScript a engleskim neka
se bave nešampionske gnjide. Tko ne zna da je umjesto "Throw" šampion
htio napisati through nije ni zavrijedio čitati šampionske dokumente.
- Ako šampion mora pisati dokumentaciju, najčešće zbog više sile,
onda on naravno ne piše da bi od toga netko imao koristi već da se
zadovolji forma. Ovdje do punog izražaja dolazi nemjerljiv pokušaj
šampiona da dokažu Marxovu teoriju o prelasku kvantitete u kvalitetu –
nastaju tone i tone dokumenata koje naravno nitko ne čita a kamoli da
radi po njima. Ipak, ako jednog dana netko potegne pitanje "pa gdje je
to specificirano?", šampion će sa smiješkom reći: "pa mi to imamo
odavno u dokumentima".
---------------------------------------------------------------------------------
Šampionski proces rada odgovara CMM
level1 (capability maturity model level 1) što je vrlo sofisticirana
klasifikacija za nešto što se jednostavnim riječima može opisati kao anarhija ili
kaos. Taj proces je nažalost dominantan ili jedini poslovni proces u
većini organizacija. U programiranju se to također opisuje kao
"beskonačni code-debug-test ciklusi". Većina projekata koji slijede taj
proces propada ili stvaraju gubitak ali svejedno proces se i dalje
naširoko koristi, najviše zbog toga što naizgled najbrže dovodi do "koda
koji radi".
Otac izraza šampioni je sam
vlasnik
firme u kojoj je ponikao naziv šampioni i koji je još
tvrdio "nas pet radi posao koji bi u nekoj drugoj firmi radilo 15
ljudi". Nije nikad otkriveno da li je mislio na 15 mentalno retardiranih
makar bi i oni možda mogli naučiti programiranje bolje od nekih
šampiona.
Primjer iz života sa šampionima: Looser
dobija zadatak da dopuni formu koju je radio šampion s dodatnim
funkcionalnostima. Slučajno primijeti da postoje dvije takve forme u
aplikaciji s gotovo identičnim funkcionalnostima ali se svaka poziva s
drugog mjesta (detail forma koja se otvara s master forme koja sadrži
grid). Dalje istražujući kod, looser s užasom shvati da su dvije forme
potpuno identične osim što se referenciraju na različite master forme s
kojih se pozivaju. Pitanja koja se nameću looseru su: Zašto programer
koji je radio detail formu nije napravio par manjih modifikacija tako da
se ona može pozivati s bilo koje master forme tj. da bude neovisna o
pozivatelju? Kako je moguće da je duplicirao formu i 99% njenih
funkcionalnosti otežavajući time njene daljnje modifikacije i
zagorčavajući život drugima koji će tu formu održavati? E moj looseru –
pa odgovor na ta pitanja je jednostavan. Zato što je taj programer
Svetski šampion. Nema on vremena za nekakve ideje o lakoći održavanja,
code reuseu, univerzalnosti tj. on to ni ne zna napraviti. On dobije
zadatak i obavi ga brzo tako da može ići raditi druge stvari a što
njegovo rješenje nema veze s mozgom i što je koma za održavanje njega
nije briga. Ako netko i postavi pitanje o takvom rješenju i zašto je
tako napravio, on će naći sto načina da se opravda i izvuče ali nikad
neće reći: "da, imaš pravo, mogao sam to i bolje napraviti"
Primjer šampionske isporuke korisniku: sat
prije isporuke kod se kompajlira, radi se setup i na testnom stroju se
instalira aplikacija. Po pokretanju aplikacija se ruši jer je developer
hardkodirao drugačiju putanju do report fajlova nego što je na ciljnom
stroju. Head developer o tom nije imao pojma i cijelo vrijeme je mislio
da će ovaj koristiti standardnu putanju. Naravno, standardna putanja
nije nigdje spomenuta osim u glavi head developera. Dokumentacije
naravno nema (još jedna prljava riječ, možda i gora od planiranja jer se
planiranje može glumiti ali dokument ne, ali više o tome na kraju). Na
kraju sve završava odgodom isporuke i velikim brukanjem gazde pred
klijentom.
|