Koliko je sati dnevno potrebno izdvojiti za pisanje koda?

Koliko je sati dnevno potrebno izdvojiti za efektivno pisanje koda?

Odgovor na ovo pitanje dajemo vam u razgovoru s dvoje softverskih inženjera, koji su s nama podelili korisne trikove i alate za što efikasnije pisanje koda.

Ljudi koji ne potiču iz tog sveta, programere zamišljaju kao “noćne ptice” koji celu noć provode pred velikim monitorima pišući beskrajne linije koda, nemajući tako vremena za druge poslovne i društvene aktivnosti.

Međutim, istina je sasvim drugačija. Dobro napisan kod je konačni rezultat, iza kojeg stoji dobro osmišljena strategija, temeljno istraživanje i niz veština koje olakšavaju i ubrzavaju sam proces pisanja.

O procesu “od ideje do realizacije”, trikovima i alatima koji omogućavaju efikasno pisanje koda, kao i o ostalim obavezama koje ispunjavaju tokom svog radnog dana, razgovarali smo sa Jelenom Dragićević, inženjerkom softvera u kompaniji Seven Bridges i Acom Gagićem, takođe softverskim inženjerom i suosnivačem kompanije ThinkBig.

Za početak, koliko sati dnevno provedeš u efektivnom pisanju koda?

Jelena: Utrošeno vreme na efektivno programiranje zavisi od mnogo faktora (sastanaka, posla koji se ne odnosi na implementaciju tehničkih rešenja, koncentracije tog dana, itd.) i samim tim varira iz dana u dan. Recimo da je moje prosečno vreme u prethodnom periodu bilo 5h dnevno, nekad je ova brojka mnogo veća a ima dana kada ne uspem da spojim ni sat vremena za kodiranje.

Neko nepisano pravilo ne postoji, ili možda ja još uvek ne znam za njega, svakako je cilj da se vreme procenjeno za određenu količinu posla ispoštuje u dogovorenom roku, kako se posledice ne bi osetile na nivou tima i na višim nivoima u kompaniji.

Aco: Proces razvoja softvera je kompleksan posao gde ne možemo sve aktivnosti uklopiti u pisanje koda, koje se neretko uzima kao jedina validna ili naplativa aktivnost. Kako je većini ljudi radno vreme osam sati, ono se uglavnom uzima kao očekivana osnova, što je i ok — ako prihvatimo da tokom tog vremena rezultati mogu da variraju.

Bitno je da razumemo da pored inženjerskog aspekta u programiranju postoji i kreativni, logički deo na koji mogu da utiču razne sporedne stvari, koje nekad ne možemo da eliminišemo. Svi smo imali dane kada sve rešavamo i dane kada nam jednostavne stvari prosto ne polaze od ruke.

Ranije, dok sam se aktivno bavio programiranjem, isto kao i danas, uvek sam se vodio rezultatima, jer su oni ti koji daju vrednost našem trudu i kodu, shodno tome moji dani su nekada bili duži, nekada kraći.

Koliko procentualno vremena provedeš u razmišljanju i razvijanju strategije, a koliko u samom pisanju koda?

Jelena: U zavisnosti od vrste zahteva i tipa ticket-a (da li je u pitanju bug, refaktorisanje postojećeg koda, nova funkcionalnost, itd) proces od ideje do realizacije je različit. Ukoliko radim na rešavanju bug-a prvo se potrudim da uspešno reprodukujem prijavljenu grešku i lociram u kom delu sistema/koda se nalazi, nakon toga sledi proces debug-ovanja, osmišljavanja rešenja, i na kraju implementacija istog.

U slučaju da je potrebno razviti novu funkcionalnost, sam početak izgleda tako što se prvenstveno upoznajem sa samom funkcionalnošću, proučavam dizajn i u kom delu sistema bi trebalo da se sama funkcionalnost nalazi. Nakon toga, sagledavam trenutnu arhitekturu koda i osmišljavam na koji način je potrebno prilagoditi istu kako bi se novo “parče” koda uklopilo.

U obe navedene situacije ključna je analiza trenutne situacije u kodu i pronalaženje potencijalnog rešenja, što ume da oduzme i po nekoliko dana, ukoliko je ta faza odrađena na pravi način, sama implementacija bi trebalo da predstavlja “lakši deo”.

Aco: Ja lično uvek u početku razmišljam o graničnim faktorima i rizicima, tako validiram neku ideju i ujedno počinjem sa definisanjem prvih koraka, postavci projekta i organizacije. Proces realizacije svakako traje duže, ali ne mogu precizno da kažem koliko zbog raznolikosti projekata na kojima sam radio. To nikako ne znači da trošim malo vremena na planiranje i strategiju, sve je prilagođeno tipu projekta i organizaciji, bitno je da se ne pretera ni u jednom delu razvoja.

Pored pisanja koda, koje sve obaveze moraš da ispuniš tokom dana?

Jelena: Radni dan inženjera ne zahteva samo pisanje koda, iako je to glavni deo posla. Pored istraživanja, debugging-a, testiranja u “logističke poslove” svakako spada i priprema i sprovođenje deploy procesa, uz testiranje svih faza deploy-a, kako bismo izbegli svima neprijatnu situaciju, critical bug-a (ili čak i minorni bug) na produkcijskom okruženju.

Vrlo često se na dnevnom redu nađe i pisanje tehničke dokumentacije kao i spremanje raznih vidova prezentacija. Naravno, neizostavni redovni sastanci sa timom sastavni su deo svakodnevnog rasporeda, kako bismo održali sinhronizaciju i produktivnost tima na visokom nivou

Aco: Istraživanje, testiranje, logistika i razne druge stvari danas troše skoro celokupno radno vreme, jer kao CTO ne uspevam više da pišem kod koliko bih želeo. Ali, dok sam programirao skoro svaki dan sam imao sastanke sa ostatkom tima, vodio sam svoj log aktivnosti kako bi dodatno optimizovao svoje vreme. Debuging i testiranje su svakako bili neizostavni deo svakodnevice, samo na početku svoje karijere sam pisao kod bez testova, što kasnije nikad nije bio slučaj.

Da li imaš neki omiljeni alat i koje su njegove prednosti?

Jelena: Svi alati koji na bilo koji način ubrzavaju pisanje koda i proces implementacije rešenja su više nego omiljeni. Nekad se čini da tih par trenutka koje uštedimo automatskim popunjavanjem koda nema nekog efekta na globalni učinak, međutim kad saberemo sve te trenutke rezultat će biti ozbiljan komad vremena koji se uštedi. Shodno navedenom, svi su omiljeni, samo dok pomažu.

Aco: Integrisano razvojno okruženje (IDE) pored terminala predstavlja nezaobilazni alat svakog programera. Pomoć, odnosno opcije koje dobijamo uveliko olakšavaju manipulisanjem različitih delova koda, projekta i njihovih funkcionalnosti, te značajno ubrzava i olakšava razvoj.

Kako sam uvek obitavao u svetu PHP-a moj omiljeni alat je bio PHP Storm, koji pored navedenih stvari prepoznaje framework koji koristim, mogu da povežem bazu, git i razne druge stvari te kroz njega po potrebi da radim mnogo više sem pisanja PHP-a.

Da li postoje “trikovi” za brže pisanje koda i koja je to razlika između Qwerty i Dvorak tastature?

Jelena: U zavisnosti u kom IDE i, naravno, u kom jeziku pišete kod, trikovi su brojni i različiti u zavisnosti od izbora. Čini mi se da sam vremenom u potpunosti zaboravila na miš i počela da koristim sve prečice na tastaturi, jer mi je utisak da sam brža i efikasnija na taj način. Nikada nisam koristila Dvorak tastaturu, tako da, ne bih znala razliku.

Aco: Dvorak tastatura je brža, efikasnija i optimalnija, tako je barem navedeno u nekim zvaničnim istraživanjima, ali iskreno meni nikad nisu trebale takve performanse. Qwerty je default postavka na većini tastatura i uz dodatno usavršavanje korišćenje može da bude veoma brzo i efikasno, zato je i dalje ona moj izbor.

Sa druge strane postoji jedno istraživanje (ne mogu da nađem referencu do njega) gde su izračunali u satima na godišnjem nivou koliko korišćenje više ekrana i miša usporava rad, zbog rasipanja fokusa na više ekrana i traženje pozcije kursora i gde da kliknemo. Primenio sam i testirao savete koje su naveli, ali sam ih na kraju delimično prihvatio, napravio sam svoj sistem.

Pomoćni ekran koristim ponekad, znači mi da vidim više stvari odjednom. Miš ne koristim odavno, primarno koristim tastaturu ali je dopunjujem touchpad-om kada zatreba. Treba probati različite postavke i izabrati ono što “ti najbolje leži”.


Želiš da podeliš svoje mišljenje o ovoj temi? Komentari su otvoreni na našoj Facebook i LinkedIn stranici!

Popularno

Startapi i poslovanje

Infobip Connect — unapredite svoj startap uz AI tehnologije!

Uz podršku kompanije Tenderly, Infobip u Beogradu organizuje meetup posvećen startapima koji žele da implementiraju veštačku inteligenciju u svoje poslovanje.

Karijere

Sanja Žugić preuzima vođenje studija Playstudios Europe

Zahvaljujući stručnim i sposobnim ljudima, 'game dev' industrija u Srbiji i dalje raste. Donosimo vam još jednu u nizu inspirativnih priča koja dokazuje ovu tvrdnju.

Novost

Domaća aplikacija ‘Vozzi’ za pomoć na putu zvanično prestaje sa radom

Servis 'Vozzi' za pomoć vozačima na putu o kojem je Netokracija ranije pisala, zvanično prestaje sa radom usled komplikacija sa poslovanjem na domaćem tržištu. Saopštenje ove kompanije, prenosimo u celosti.

Propustili ste

Karijere

Galaksija kup: Srednjoškolci iz Srbije prave hardvere koji menjaju živote ljudi!

Pametne naočare za ljude oštećenog sluha, makro programabilna tastatura i daljinski sistem za kontrolu prikupljanja reciklažnog otpada. Upoznajte inovativne projekte učenika koji su osvojili prva tri mesta na ovogodišnjem Galaksija kupu — takmičenju srednjoškolaca elektrotehničkih škola iz cele Srbije.

Intervju

Domaća kompanija Vega IT nastavlja globalno širenje otvaranjem kancelarije u Londonu

Tokom prošle godine postali smo svedoci značajnih turbulencija u IT industriji. Dok se mnoge globalne kompanije fokusiraju na optimizaciju troškova, zamrzavanje plata i masovna otpuštanja, Vega IT, kao domaći igrač, nastavlja sa širenjem na globalno tržište.

Startapi i poslovanje

LavitFlow je ‘alat za sve’ koji koristi 180 programera, product menadžera i web dizajnera

U pitanju je proizvod kompanije Lav IT Solutions koji ubrzava radne procese zaposlenih u savremenom poslovnom svetu. A kako? Pitali smo Miroslava Ostojića, osnivača pomenute kompanije.

Office Talks Podcast

Prodaja IT usluga : Saveti direktora prodaje Hooloova

Gost 185. epizode Office Talks podkasta bio je Đorđe Vukotić, prodajni direktor u kompaniji Hooloovoo koji nam je objasnio kako izgraditi uspešan sales tim u domenu IT industrije.

Startapi i poslovanje

‘Fundraising’ za startape iz ljudske perspektive

Pre nego što započnemo ovaj razgovor, želeo bih da zamislite da smo na jednoj prijateljskoj kafi i sve što ćete čuti tj. pročitati je nešto što bih, lično, voleo da je meni neko ispričao (mnogo grešaka i pristupa) ranije.

Karijere

Social Impact Award program pomaže 10.000 mladih preduzetnika godišnje

Nevladina organizacija Razlivalište već devet godina uspešno sprovodi globalni Social Impact Award (SIA) program podrške društvenom preduzetništvu. Ukoliko imate između 15 i 30 godina i želite da uplovite u preduzetničke vode, sve o programu pročitajte u tekstu koji sledi!