Problemi sa kojima se suočava svaki programer

Fleksibilno radno vreme, rad sa bilo koje geografske lokacije, visoki honorari, mogućnost samostalnog rada na nezavisnim projektima, sve su to dobre strane programerskog posla. Ipak, svaka profesija sa sobom nosi mnoštvo izazova, pa tako i programiranje nije izostalo u tom smislu.

Programeri se susreću sa nekim nezaobilaznim komplikacijama i otežavajućim okolnostima u radu, za koje bi se moglo reći i da su već postali elementi prirode posla. Ovaj blog bavi se upravo temom sa kojom će se svaki programer bar u nekom delu povezati i u kojoj će se prepoznati.

problemi-programera_.jpg

Hardware 

Svaki programer kojeg su nekad pozvali da reši problem sa serverom zna kako su ovi problemi bolni. Radi se o rak-rani svakog programera, koja je neizbežna, jer softver ne može bez hardvera, na njega se oslanja u najvažnijoj funkciji. Koliko god se neki inženjeri trudili da izbegavaju hardver, pre ili kasnije biće suočeni sa specifičnostima hardvera i s povezanošću problema koje pokušavaju da reše na softveru.

Zato iskusni programeri preporučuju juniorima da se dobro upoznaju sa hardverima i sistemima, jer će njihovo kodiranje od toga umnogome zavisiti.

Debagovanje

Čak i najbolji, najpažljivije izrađen kod može imati greške. Naravno, tada programeri moraju da posvete neko vreme pronalaženju i popravljanju nedostataka na softveru. Dok se neke greške mogu brzo naći, druge mogu biti „neuhvatljive”, što dovodi do gubljenja dragocenih sati koji su mogli biti iskorišćeni za razvoj.

Loše dokumentovani kod

Rad sa kodom koji je kreirao drugi programer može biti frustrirajuć, ali to je manji problem ako je kod dobro dokumentovan. Nažalost, to nije uvek slučaj. Potrebno je puno više vremena za rešavanje problema kome nedostaje dobro pismeno objašnjenje o tome kako se bug uklanja.

Povezivanje kodova

Sistemi za kontrolu izvora koda, kao što su Git ili Subversion, odlični su alati koji omogućavaju da više programera radi istovremeno u istoj bazi, bez komplikacija.
Međutim, kod promene kodova može se pojaviti tačka sukoba ako, recimo, dva programera izmene isti fajl. U tom slučaju, te promene moraju da budu spojene. Takvi konflikti se uglavnom mogu rešiti jednostavno, ali se lako može dogoditi da se proces oduži i ponese nove komplikacije.

Nerealna očekivanja

Za programere se obično pretpostavlja da su prilično inteligentni. Nažalost, ta činjenica često dovodi poslodavce i menadžere projekata do nerealnih očekivanja. Oni izgube realnu predstavu o tome šta programer, ili tim njih, može da proizvede do određenog datuma. Zbog toga je inženjer izložen ogromnom pritisku, koji ometa radni performans.

Razbijanje kodova

Svaki programer, u nekom trenutku, susretne se sa kodom koji su napravile kolege;
bilo da je neki deo softvera u pitanju, alati ili druge aplikacije. Nijedan programer nije „nedodirljivo ostrvo”, a to znači da programeri greškom, u žurbi, lošoj komunikaciji, ili jednostavno nemarom, mogu „razbiti kod” drugog programera. Ova greška nastaje u trenutku, ali se na popravljanju načinjene štete radi daleko duže.

Rad u tuđem kodu

Kao i kod loše dokumentovanog koda, ovaj zadatak može biti veliki izazov za programere. Pre ili kasnije, nađu se u situaciji u kojoj su primorani da nastave tamo gde su kolege stale; da izvrše popravke ili unesu poboljšanja u funkcionalnosti. Uglavnom, to može biti nasleđeni posao prethodnika, neke izmene u organizaciji ili jednostavno asistencija koja preraste u zaduženje.

Nedovoljno vremena

Za sve je potrebno vreme, tako i za izgradnju dobrog softvera. Međutim, viši menadžment i klijenti uglavnom nisu dovoljno strpljivi i spremni da sačekaju na rešenja. Kao rezultat toga programeri su često izloženi pritisicima što, naravno, dovodi do grešaka u programiranju i samim tim do produžavanja procesa, povećanja obima posla i probijanja rokova.

Ljudi ne razumeju čime se programeri bave

Uprkos sve većem broju programera i konstantnom porastu tržišne potražnje za ovom profesijom, mnogo ljudi ne razume čime se programer bavi. Shvataju da se posao vezuje za tehnologiju, ali vrlo malo pažnje posvećuju razlikovanju softvera i hardvera. Programeri su često u situaciji da im ljudi iz okruženja postavljaju pitanja o tome šta oni tačno rade na poslu. Iako su ta pitanja česta i mogu biti naporna, svaki programer zna da to nije važno – najvažnije je da njega taj posao čini srećnim i uspešnim.

  • 26.08.2016 14:25

Komentar