Boli ova izjava zar ne? I treba da boli rekli bi mnogi programerima direktno u lice širom svijeta. Međutim, ako se ovo izjavi u realnom svijetu s realnim očekivanjima poput:
Niko nije u stanju napisati savršen softver
tada izjava dobija drugu dimenziju – onu realnu, stvarnu.
Prije svega programer mora prihvatiti da nije u stanju napisati savršen softver, a to je programerima veoma često problem. Za bilo koji propust koji se nađe u kôdu, programer okrivljuje druge, veoma rijetko sebe. Kod takvih programera uvijek su opravdanja “ali to nije moguće! to apsolutno nije moguće!”, jer oni uopšte u svom kôdu ne provjeravaju niti ulazne podatke, niti povratne informacije pozvanih metoda i funkcija niti same izlaze koje trebaju da dobiju – sve im se nekako podrazumijeva jer se vode tzv. happy path-om.
S druge strane imamo paranoične programere koji nikada ne vjeruju ni u jednu liniju svojeručno napisanog kôda. Još uz to ako se trude da budu pragmatični programeri stvar dobija veću i značajniju dimenziju. Kôd takvog programera sadržava na stotine uslova koji pokrivaju moguće probleme (if, try/catch, …), a u osnovi bi se mogli riješiti na mnogo bolje i jednostavnije načine upotrebom raznih olakšica koje nude programski jeziki ili programski okviri (frameworks).
Neki od načina su korištenjem principa DOC – Design by Contract, zatim korištenjem events ili hooks mehanizama i tako dalje.
Previđanje budućnosti
Posao programera je da predviđa budućnost, a to je svi znamo izuzetno teško. Zato neki od nas na budućnost gledaju kao na nešto što ćemo prebroditi brzo, lagano i bez posljedica na bilo koga, posebno onih životno važnih, dok neki drugi među nama gledaju na budućnost izrazito pesimistično.
Kada vozač vozi automobil noću krivudavom cestom na kojoj sipi kiša vidiljivost je smanjena. Ako sleti s ceste, prvo što će policajac ili inspektor na uviđaju reći je da nije bila prilagođena brzina. A zašto nije bila prilagođena? Pa zato što je bila smanjena vidljivost, a i cesta je bila mokra i klizava, zbog toga su svjetla koja su vozaču pomagala u kretanju bila ograničenih mogućnosti. Ne znaju svjetla da li je kiša, da li je mokro, da li je negdje veća ili manja krivina. Za takvo nešto postoje saobraćajni znakovi da bi vozač znao da ih prepozna i u skladu s njima reaguje.
Put kojim se kreće programer u razvoju softvera je uglavnom potpuna nepoznanica, zato je osnovno pravilo svakog pragmatičnog programera:
Kreći se polahko – korak po korak.
Crni labud i historija
Prema N.N. Talebu ljudi često puta veoma svjesno zapostavljaju događaje koji mijenjau svijet iz temelja vodeći se principima prosječnosti. Tako se u odnosu na prosječnost prave planovi za budućnost. Pa se prave krivulje na kojima se pokazuju razne “pravilne” oscilacije upakovane u tzv Gausovu krivulju. Međutim, o skokovima i udarcima se ne raspravlja gotovo nigdje. A zašto? Pa zato što ih je nemoguće predvijeti kada će se dogoditi, ali problem je veći što se za njih ne priprema niko.
Ako gradimo kuću uvijek bi trebali da vodimo računa da bi moglo doći do udara groma koji može da zapali cijelu kuću, ili poplave koja bi je u potpunosti uništila, ili klizišta ili zemljotresa ili neke druge prirodne nepogode na koju apsolutno ne možemo uticati, ali koja bi se relano na terenu na kom se kuća pravi mogla dogoditi – za 100 godina, za sto godina, ali možda i sutra! To ne znači da trebamo praviti bunker umjesto kuću, ali trebamo poduzeti radnje kojima ćemo sačuvati živote i najvažnije od imetka koji će se u kući nalaziti.
Ni dva dana nisu ista
Njemačka poslovica
Historija može biti dobra učiteljica ako se zna pravilno čitati i pravilno na osnovu nje planirati budućnost. Svakako, prečesto puta to nije jedino do pragmatičnog programera ma koliko on želio da bude pragmatičan nego i do menadžmenta koji upravlja projektom (upravlja projektom, a ne ljudima!), a to u osnovi uvijek znači vrijeme i finansije.
6Hits: 175