Svijet u kojem živimo sve je složeniji. Ekonomija nas je dovela do izbora više od stotine različitih zubnih pasti u samo jednom posjetu lokalnom supermarketu. Ni developerima nije ništa lakše živjeti u okruženju u kojem svakodnevno na ‘policama' mogu naići na drugačiji alat u vidu novog programskog jezika, frameworka ili uređivača teksta. Kako se snaći u šumi informacija i donijeti pravu odluku u pravo vrijeme, na konferenciji Shift otkrio nam je - Borja Burgos, Product Manager tvrtke Docker.

Sunčani dalmatinski dan u ‘najlipšem gradu na svitu’, pozornica impozantnog Hrvatskog narodnog kazališta u Splitu i Borja Burgos, direktor razvoja proizvoda u Dockeru pod svjetlima reflektora s alatom za ‘otparivanje’ lego kockica u ruci. Konferencija Shift Split 2016 dovela je stručnjaka, ne samo za lego kockice, već i za donošenje dobrih odluka u pravo vrijeme. Kroz iskustvo koje je Borja skupio živeći i radeći kao inženjer u 14 gradova na četiri kontinenta, oblikovao je svoj osobni framework za rješavanje problema koji se svodi na tri jednostavna koraka.
Definicija savršenog alata za obavljanje određenog zadatka ili po predavaču, još bolje – lego kockice i alata za ‘otparivanje’ istih. Nažalost, nije uvijek posve jasno za koji se alat treba odlučiti koji bi život učinio lakšim.
Koji je željeni cilj?
Kao prvi korak, uvijek treba jasno definirati željeni cilj. Developeri često znaju problemu pristupiti na jedan od dva načina – ili ga suviše pojednostave ili kompliciraju do krajnje granice. U prvom slučaju, bazen potencijalnih alata koji taj problem rješavaju se ne smanjuje, jer ne postoje dodatni kriteriji koji bi eliminirali neke od postojećih. U potonjem je problem što su vjerojatnosti za pronalazak alata koji savršeno odgovara baš vašem kompleksnom i jedinstvenom problemu vrlo male. Borja ističe:
Svrha softvera nije da doda na kompleksnosti, nego da nam pomogne da se nosimo s njom.
Borja naglašava da je potrebno naći mjeru do koje treba ići, odnosno sweet spot i suziti izbor na prihvatljiv broj potencijalnih alata. Bitno je napomenuti i način na koji gledamo na sam problem. Kako definiramo uspješno izvršen zadatak? Kao primjer navodi hackathon koji se odvijao dva dana prije same konferencije. Sudionicima je cilj isključivo mogao biti pobjeda, ali i da sudjeluju i nauče nešto novo, možda steknu nova poznanstva i kontakte, testiraju svoje trenutno znanje i slično. Potencijalni izbor alata se drastično mijenja kako se mijenja i definicija uspješno izvršenog zadatka.
Tko je kriv za paralizu izbora?

Kao glavne krivce paralize izbora, Borja navodi otvoreni kod i računalstvo u oblaku. Tu imamo na izbor razne baze podataka, alate za testiranje, biblioteke, web servise, čak i operacijske sustave. U oblaku možemo pronaći razna IaaS, SaaS i PaaS rješenja, a tu je i klasični izbor između GitHub, GitLab ili BitBucket sustava za upravljanje inačicama datoteka. Rješenje? Vrijednost koju dobijemo od alata mora daleko premašiti trošak koji nastaje njegovim korištenjem.
Unatoč jasnoj matematici, u današnje vrijeme čak ni ova računica nije dovoljna da se izbor suzi na prihvatljiv broj mogućih rješenja. Četiri su izazova s kojima se svaki developerski tim može susresti.
- Kupiti ili napraviti
Osim kupnje i izrade samih alata, pod istu dilemu spada i odluka isplati li se unajmiti nekog drugog da vodi i održava određeni operacijski dio ili se tvrtka odlučuje na interno rješenje. Borja naglašava kako se na vrijeme treba gledati kao na iznimno ograničen resurs i uvijek se treba osloniti na tehnologije koje već postoje, ako njihovo korištenje ima financijskog smisla.
- Sindrom blještave igračke
Ljudi su bića koje privlače nove i uzbudljive stvari, a developeri nisu ništa drugačiji. Lako se izgubiti igrajući se novom tehnologijom, iako ustaljeni procesi vjerojatno puno brže mogu riješiti probleme. Nove tehnologije su ujedno i daleko od završenog proizvoda te je uvijek dobra ideja pričekati da proizvod ‘sazrije’.
- Dilema stručnosti tima
Na svjetsko prvenstvo u kuglanju je pozvana i najbolja golferska ekipa u svijetu. Trebaju li golferi sa svojim golferskim palicama lupati kuglu za kuglanje ili pak naučiti posve drugačiji sport? Lako je povući paralelu s developerima, gdje bi imali primjerice Python eksperte koji nad svojom bazom podataka trebaju provesti detaljnu statističku analizu. Što ako je za posao optimalno koristiti programski jezik R?
Rješenje ove dileme leži u krivulji učenja i odnosa vrijednosti – troška konačne odluke. Ako su potrebni tjedni za prelazak na novi programski jezik, za tim iz primjera je gotovo sigurno bolje napraviti nešto lošiju analizu u Pythonu.
- Sindrom prekomjernog inženjeringa
Inženjeri često imaju potrebu izgraditi sustav na način da arhitektura i logika zadovoljavaju sve buduće zahtjeve i skaliranja. To je krivi pristup jer zadatak nije udovoljiti svim budućim zahtjevima, već rješavanje konkretnog problema sa zadanim varijablama. Nisu svi Google i ne trebaju svi robusna rješenja.
‘Zlatni’ čekić ne postoji, ali tim – da
U svom predavanju, Borja zagovara konstantno propitivanje alata koji se koriste. Developeri nerijetko počinju gledati na svaki problem kroz prizmu alata s kojim se najugodnije osjećaju koristeći ga. ‘Zlatni’ čekić ne postoji, postoji samo najbolje moguće rješenje u danoj situaciji. Borja je zaključio svoju prezentaciju s jednim od bezvremenskih citata Steve Jobsa:
Tehnologija nije ništa. Ono što je važno je da imate vjeru u ljude, da su oni u osnovi dobri i pametni, i ako im date alate, napravit će divne stvari s njima.
Iako je izbor alata esencijalan dio procesa bilo koje IT tvrtke, u suštini se, naravno, sve svodi na tim ljudi koji tim alatima barata. Dok možda ‘zlatni’ čekić ne postoji, zlatni timovi – itekako da.
Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.
Pravila ponašanja
Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:
Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.
Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.