Zašto programeri vole raditi u gaćama

Za početak, moram priznati da me interes kojeg je potakao moj prethodni post potpuno iznenadio, i premda imam desetak tema koje želim pretvoriti u postove na ovom blogu, nikako uloviti vremena i koncentracije…

U zadnje vrijeme sam svjedokom jednog neobičnog trenda. Naime, kao što neki od vas već znaju, trenutačno se bavim organiziranjem developerskog tima u tvrtki za koju radim. Moj plan je malo-pomalo skupiti nekoliko kvalitetnih developera raznih profila i specijalizacija — za početak jednog (uz mene), a onda postupno dodati i ostale kako će se projekti razvijati.

Znao sam da će ljude biti malo teže naći jer dolazi ljeto, oni koji su već zaposleni žele iskoristiti godišnji, pa mjesec dana otkaznog itd, ali naletio sam na jedan problem koji nisam očekivao.

Postupak je bio klasičan: od pristiglih životopisa probrali smo one zanimljivije, te tim ljudima poslali testni zadatak. Odgovori su, naravno, varirali u kvaliteti, no nakon kratkog dopisivanja s kandidatima ispostavilo se da svi do jednog žele raditi honorarno, od kuće, radije nego dolaziti u ured i raditi u timu.

S jedne strane, razumijem način razmišljanja koji stoji iza takvih preferenci — i sam sam dosta vremena proveo razvijajući razne sajtove u fušu od doma, a jedno vrijeme mi je to bio i temeljni izvor prihoda. I baš zato dobro znam sve prednosti i mane takvog načina rada, i znam zašto telecommuting može samo iznimno biti koristan u ozbiljnom softverskom developmentu.

Koje su prednosti telecommutinga? Prije svega, prednosti su na strani developera — može si organizirati radni dan prema volji, raditi usred noći ili rano ujutro, na balkonu ili u gaćama, može sjesti za računalo kad ga ulovi inspiracija ili se izvaliti pred televizor ako mu se ne radi. Također se štedi vrijeme putovanja na posao i s njega, za ručak je dovoljno otići do kuhinje i tako dalje. Između ostalog, vješt developer može na ovaj način raditi paralelno za nekoliko poslodavaca, čime uz malo više truda može ostvariti veći prihod.

Postoje prednosti i za poslodavca, i to prije svega u smanjenim troškovima, jer telecommuter ne treba radni stol u uredu, a u domaćim uvjetima često niti računalo, jer mnogi developeri koje znam kod kuće imaju jači stroj nego im tvrtka daje na korištenje.

No, postoje i nedostaci, i to također na obje strane. Gore opisani način developmenta može se primijeniti isključivo na mlade programere, koji ili žive sami ili s uviđavnim roditeljima koji ga puštaju na miru, te koji imaju dovoljno energije da mogu kodirati petnaestak sati na dan i tako “opsluživati” dva-tri poslodavca. Developeri koji imaju vlastitu obitelj, a posebno ako ta obitelj uključuje malu djecu, suočavaju se s konstantnim prekidima koncentracije, a dokazano je da svaki prekid zahtjeva 15-30 minuta za povratak na istu razinu koncentracije kao prije njega; dakle, ako vam klinac pet puta upadne u sobu s pitanjem “Tata, a cto jadis?”, to predstavlja gubitak produktivnosti od dobrih dva sata.

Na strani poslodavca nalaze se veći problemi, iako često poslodavci njih nisu svjesni. Naime, kod razvoja kompleksnih aplikacija — uključujući i Web aplikacije — vrlo je rijetko slučaj da jedan developer samostalno razvija cijelu aplikaciju, pa čak i jedan njezin segment. U pravilu to rade timovi, koji stalno trebaju međusobnu koordinaciju i komunikaciju, a da ne govorim o tome da je poanta tima u bliskosti i međusobnom poznavanju developera. Svakome zainteresiranom za tu temu svakako preporučujem knjigu Peopleware, koja kondenzira brojne rezultate istraživanja i pojedinačna iskustva.

Timovi osiguravaju još jednu važnu stvar, a to je konzistentnost arhitekture i koda. Svi članovi tima trebaju se pridržavati zajedničkih standarda, tako da svaki od njih može uskočiti na mjesto nekog drugoga u slučaju potrebe, kao i da se olakša kasnije održavanje aplikacije. To posebno vrijedi za velike kompleksne aplikacije, gdje nije praktično iznova napisati dio koda ako se pokaže nerazumljivim.

Gdje telecommuting ima smisla? Prije svega kad pojedini developer samostalno radi određenu programsku cjelinu — idealno cijelu aplikaciju — a posebice kad interna arhitektura i kvaliteta koda nisu bitni, te se ne očekuje preveliko održavanje nakon što je posao jednom završen. U domaćim uvjetima to u praksi znači manje ili više jednostavne Web sajtove, obično pogonjene nekim CMS-om kućne izrade ili prilagodbom Joomle, Typa3, ezCMS-a ili nekog sličnog FOSS rješenja.

Kod izrade ozbiljnih, kompleksnih aplikacija, telecommuting nije posebno korisna opcija. No, nije potpuno isključena: moguće je zamisliti situaciju gdje jedan član tima treba raditi na udaljenoj lokaciji: npr. ako iz privatnih razloga mora ostati kod kuće ili se preseli u drugi grad, ili ako se nalazi u dislociranom uredu tvrtke. Ova prva dva slučaja kod nas se obično rješavaju prekidom radnog odnosa, no gubitak vrijednog člana tima zbog takvog razloga nema puno smisla, i onda je telecommuting idealno rješenje da vuk (ne Vuk :) ) bude sit a koza ostane cijela. Rands (kojeg i inače preporučujem) je u siječnju 2006. imao odličan post na tu temu (s gomilom odličnih komentara).

Dakle, da sažmem: kod velikih, složenih aplikacija nužno je imati dobar, cjelovit tim developera koji rade na istoj lokaciji; konzistentnost tima važnija je od tehničkih i prostornih problema i ograničenja, a telecommuting tu može odigrati veliku ulogu u zadržavanju cjelovitosti tima. Zato prvo treba izgraditi dobar tim, a onda se tek može raditi na daljinu.

No Comment

No comments yet

Leave a reply