Pragmatični programer

Nakon što smo (pro)čitali knjigu autora brazilskog porijekla sa sjedištem u Ujedinjenom Kraljevstvu Sadra Mankuza (Sandro Mancuso), Sofrverski obrt (The Software Craftsman), red je i da nastavimo s nekom drugom. Knjigom koja će nam dati neka nova saznanja i neke nove spoznaje. Knjiga koju pišu ljudi s “bojnog polja”, a ne iz “komandi”, odnosno ljudi iz prakse, a ne oni koji vole “samo” teoretizirati.

Za ovaj put, odabrali smo čini se najpopularniju knjigu u posljednje dvije godine u svijetu Informacionih tehnologija, posebno razvoja softvera – Pragmatični programer (The Pragmatic programmer) i to drugo izdanje na 20-u godišnjicu prvog izdanja. Prvo izdanje iako pisano davne 1999. bilo je veoma popularno i opšte prihvaćeno, posebno među onima koji se bave razvojem softvera. Idemo skupa vidjeti šta to piše i šta nam se nudi u drugom izdanju.

Predgovor

Primijetili smo da veoma mali broj ljudi čita predgovore, pa čak i oni ljudi koji relativno mnogo čitaju. Smatramo da je pročitati predgovor veoma značajano. U njemu se osim raznih zahvala koje znaju biti itekako dosadne zna naći i veoma interesantnih informacija. Kada je u pitanju knjiga koju upravo čitamo, predgovor je veoma simpatično i interesantno napisan i to na nekoliko stranica iz različitih perspektiva, pa preporučujemo da se pročita.

U predgovoru se između ostalog kaže i:

U svakom slučaju, ova knjiga je rezultat. Molim vas uživajte. Možda usvojite neke nove prakse. Možda uvidite da su neke stvari koje predlažemo pogrešne. Uključite se u svoj zanat. Pošaljite nam povratne informacije.
Ali, najvažnije, ne zaboravite to učiniti zabavnim.

Kao i porijeklo i značenje riječi pragmatik:

Riječ pragmatik dolazi od latinske riječi pragmaticus – „vješt u poslu“ – što je pak izvedeno iz grčkog πραγματικός, a što znači „pogodan za upotrebu“.

Filozofija pragmatizma – Prvo poglavlje

Za danas ćemo predstaviti samo prvo poglavlje, obzirom da ono sadrži nekoliko desetina stranica što nam se čini sasvim dovoljno za predstavljanje.

Kao što se već iz naslova može primijetiti poglavlje govori o samoj filozofiji ili značenju i smislu pragmatizma u svijetu razvoja softvera.

Interesatno je da ovo poglavlje ustvari počinje veoma značajnom, čak i u samom tekstu potpuno izdvojenom rečenicom:

Ova knjiga je o tebi.

Kasnije se veli također, a što može da nam da veoma slikovit uvid u to o čemu doista poglavlje govori:

Pragmatično programiranje proizlazi iz filozofije pragmatičnog mišljenja. Ovo poglavlje postavlja osnovu za tu filozofiju.

A onda se kroz poglavlje govori o raznim aspektima života jednog programera, s fokusom na one bez ikakva iskustva ili one s iskustvom ali bez posebno izraženog socijalnog, komunikativnog života. Programiranje je odavno prestalo biti “samo” buljiti u monitor dok se piše izvorni kôd u omiljenom programskom jeziku.

Pragmatični programer, kao i softverski zanatlija (u osnovi se, čini se, misli na isto samo su dati različiti termini iz dvije različite knjige – perspektive) ne razmišlja samo o svojoj stražnjici, nego razvoj softvera posmatraju holistički*. I baš zbog toga, ali možda i nekih drugih razloga programeri su veoma otporni na promjene. Kao što često puta znamo reći, postaju fanatici teži i gori od religijskih fanatika, osim što se, srećom, još uvijek, ne raznose bombama.

Također u ovom poglavlju viđamo i nešto što Nasim Nikolas Talib (Nassim Nicholas Taleb) objašnjava u svojoj drugoj veoma popularnoj knjizi Koža u igri (Skin in the Game), a koja se oslanja na njegovu prvu, svjetski popularnu knjigu Crni labud (The Black Swan), tj, da pragmatični programer uzima na sebe odgovornost i rizik kako uspjeha tako i neuspjeha. Ne ponaša se kao ljudi bez kože u igri koji kada dobijaju sebi pripisuju sve zasluge i sve dobiti ostavljaju sebi, a kada gube, onda taj gubitak dijele sa svima.

Dovoljno dobar softver

U potpoglavlju nazvanom dovoljno dobar softver govori nam se da ne treba tražiti perfekciju, jer traženje perfekcije uništava sve dobre stvari, ali i nemoguće ju je postići. Čovjek je nesavršen, pa stoga ne može napraviti ništa savršeno. Samo Savršeni je u potpunosti savršen!

Vrijeme, tehnologija i temperament su urote protiv nas (programera).

Vaš skup najboljih i najreprezentativnijih znanja (portfolio)

Na vlastiti život, a posebno onaj profesionalni trebalo bi da svaki čovjek gleda kao što gleda bilo koji finansijski investitor. Investitori veoma vode računa o diverzifikaciji*, pa bi to trebali i programeri, u čijim životima se tehnike i tehnologije razvijaju i mijenjaju veoma brzo.

Zatim autori daju par savjeta, uz naše komentare, kao što su:

  1. Ozbiljni investitori redovno ulažu – to im je kao navika.
  2. Diverzifikacija je ključ dugoročnog uspjeha – poznavati razne tehnike i tehnologije koje se i ne koriste uopšte u trenutnoj firmi ili na trenutnom projektu.
  3. Pametni investitori uravnotežuju svoj portfolio između konzervativnih i visoko rizičnih investicija s visokim nagradama – preuzmi rizik za novu tehnologiju na određeno vrijeme, pokazaće se je li zlatna koka, ali izgubiti se ništa ne može, jer se ne gubi novac ili imetak, “samo” vrijeme.
  4. Investitori pokušavaju kupiti jeftino, a visoko prodati za maksimalan povrat – učenje nove tehnologije dok je još u povojima, a koja bi mogla postati značajna na tržištu.
  5. Portfelje treba periodično pregledavati i rebalansirati – stvari koje su zastarjele izbaciti, ali i prilagođavati dizajn, sve što kupujemo kupujemo zato što lijepo izgleda i iz prirode kao voće i povrće, ali i ono upakovano, kao što je mlijeko, slatkiš, …

Izazovi

Unutar ovog poglavlja ima nekoliko izazova koji su postavljeni čitaocu poslije određenih potpoglavlja. Neki od njih su doista interesantni, pa očekujemo da će biti još takvih u poglavljima koja slijede. Za ovu priliku smo odabrali jedan koji glasi:

Počni učiti novi programski jezik još ove sedmice!


Holistički – holizam predstavlja ideju da sistem, bilo da se radi o biološkom, hemijskom, društvenom, ekonomskom, lingvističkom ili nekom drugom sistemu sa svim svojim karakteristikama, predstavlja cjelinu i kao cjelinu ga je potrebno razmatrati, proučavati i tretirati a ne kao zbir pojedinačnih elemenata.

Diverzifikacija – Sposobnost i vještina prilagođavanja na slične, srodne, ali i u potpunosti različite i nesrodne grane u slučajevima krize ili izvlačenja maksimuma iz trenutnog stanja na tržištu.

6

Hits: 370