Efikasnost – riječ sa kojom se dosta srećemo u poslovnom svijetu: od ponuda i potražnji za poslove do željenih efekata kampanje.
Nerijetko možete naići na oglas za posao u kom se traže stručni, brzi i efikasni programeri. Šta zapravo podrazumijeva efikasnost, kada je u pitanju opis nečijeg rada? Najjedostavnije bi se moglo reći da efikasnost predstavlja nivo na kom ste uspješni u radu i postižete željeni rezultat. Efikasnost, dakle, neminovno uključuje uspjeh.
Ako želite da postanete jedan od tih efikasnih, odnosno, uspješnih programera, pred vama su neki od korisnih savjeta koji vam u tome mogu pomoći.
1. Naučite da pravilno procjenjujete
Dobra procjena je važan dio svakog posla. Pouzdana procjena u kodiranju bi trebalo da tačno prognozira kada će rad na nekoj aplikaciji, kodu ili softveru biti završen. Problem je što to dovodi do sljedeće nedoumice – kada je programerski rad završen? Da li je to trenutak kada je završen kod, ili kada se završi testiranje? Ili kada se softver ili aplikacija pokrenu?
Većina programera pravi grešku kada povezuje pisanje koda sa završetkom procesa ispitivanja ili implementacije. To objašnjava proizvoljne procjene poput: "Završiću to za 2 sata". Takve procjene obično dovode do propusta koji se vide tek kada se sagleda šira slika ili se pokrene aplikacija, odnosno, softver.
Uzmimo jednostavan primjer. Programer dobija vest da u softveru ili programu postoji greška odnosno „bug“. Programer čita opis greške, postavlja svoje okruženje i kreće u rad. Identifikuje uzrok, ali uz to radi i neka dodatna istraživanja kako bi pronašao sve povezane greške. Programer prepravlja kod, a zatim implementira popravku. Dobija povratne informacije o kodu, a zatim provjerava da li sve funkcioniše kako treba.
Bilo koji od ovih koraka može da potraje duže nego što se procjenjuje (npr kod identifikacije uzroka bi mogao da otkrije niz nedostataka u samom kodu, niz povezanih grešaka itd). Drugim riječima, svakim korakom postaje sve teže dati ispravnu procjenu. Zbog toga je važno da svakoj procjeni pristupate analitično. Ne potcjenjujte popravke, ma koliko djelovale „sitno“, sve dok ne otkrijete uzrok. Kad god vidite da neki od koraka traje predugo, potražite pomoć ili razmotrite drugačiji pristup problemu. Upamtite da efikasnost nije brzina, već uspjeh.
2. Sagledajte širu sliku
Čovjek koji trči u krugovima pređe velike razdaljine, ali pravi suštinski malo pomaka. Slično je i sa pisanjem kodova. Možete da radite danima i satima i nemate nikakvog pomaka u rješavanju problema. Upravo zato što se vrtite u krugu.
Ukoliko radite na nevažnim stvarima ili niste pogodili „suštinu“ problema, nećete biti ni efikasni, ni efektivni. Još jednom, efikasnost se ne mjeri ni brzinom ni utrošenim vremenom već uspjehom u rješavanju problema. Naravno, ukoliko provedete dovoljno dugo vremena baveći se određenim problemom, sigurno ćete „zagrebati površinu“. Ali to nije dovoljno da bi se problem riješio.
Za rješenje je potrebno sagledati širu sliku. Ipak, rješavanje problema u kodu, nije jedina stvar gdje kao programer treba da sagledate širu sliku. To važi i za vaš cjelokupan rad. Uz puno posla i stalno „popravljanje“, lako možete da počnete da trčite u krugovima, odnosno upadnete u rutinu rada koji vas više ne ispunjava. Zato je dobro da povremeno provjerite da li su vaši prioriteti usklađeni sa ciljevima kompanije u kojoj radite.
Zaustavite se na trenutak i pogledajte opet širu sliku. Ovdje vam mogu pomoći pitanja poput: Šta su ciljevi kompanije? Da li je vaš trenutni rad usklađen sa tim ciljevima? Da li vam ti ciljevi omogućavaju i lični napredak i sticanje novih vještina ili samo upotrebu onih koje već imate, a koje zasigurno zastarijevaju? Možda ste efikasni u rutini, ali ta rutina svakako nije efikasna za vašu karijeru.
3. Učite stalno
Sportisti moraju redovno da prolaze kroz najrazličitije vrste treninga kako bi održali kondiciju i efikasnost u igri. Slično je i sa programerima. Efikasnost nije samo stvar koju treba postići, već se mora i održavati. Na „terenu“ razvoja softvera, gdje se okruženje brzo razvija i mijenja, to je još i važnije i zahtjevnije.
Zato programeri moraju stalno, kontinuirano i neumorno da „treniraju“ odnosno uče kako bi ostali relevantni. A ostati relevantan znači pratiti trendove u industriji, čitati i pisati blogove, pohađati konferencije i skupove, sticati profesionalne IT certifikate. Danas postoji zaista mnogo resursa, i nemoguće je pratiti svaki od njih.
To nije ni potrebno. Dovoljno je da odaberete nekoliko kvalitetnih izvora. Naravno, uvijek je preporučljivo i da savladate neke od novih vještina, bilo da je to neki novi programski jezik ili rad u novom radnom okviru.