Junior, mid, senior ilitiga Charmander, Charmeleon, Charizard

U IT struci oduvijek se lome koplja oko rangiranja developera po kategorijama navedenim u naslovu.

Također, velik broj developera koji rade u IT struci ne razumije ili pogrešno shvaća junior, mid i senior pozicije. Počesto nisu sasvim sigurni ni na kojem se nivou sami nalaze.

Za početak, riješimo jedan mit:

Pozicije nisu striktno uvjetovane godinama života i staža!

Primjerice, junior developer može biti stariji od mid-level developera. Sve se svodi na vještinu.

To ne znači da senior developer mora biti stručnjak u svemu, ali zasigurno nećemo pogriješiti ako ustvrdimo da su senior developeri mnogo vještiji od junior i mid developera.

Ipak, uz neizostavnu razliku u kvaliteti programskog koda, postoje i drugi kriteriji i elementi koji razlikuju senior developera od juniora i mid developera. Gdje su, dakle, granice i u čemu su točno razlike?

Kako bi stvari bile nešto jasnije, poslužit ću se analogijom iz Pokemona. U nastavku ću pokušati ilustrirati što točno podrazumijeva određena pozicija kako biste lakše mogli titulirati sebe i druge te time odrediti položaj u strukturi.

Junior (Charmander)

charmander

Charmander je pokemon koji očajnički treba pravog trenera kako bi evoluirao. Slična je situacija i s junior developerima. Svaki od njih treba svog Asha Ketchuma.

Juniori su najčešće osobe koje su tek završile fakultet i imaju manje od dvije godine radnog iskustva.

Zadaju im se što jednostavniji zadaci uz povećan nadzor.

Uz nadzor, svakako je preporučljivo obasipati ih pažnjom, iznova ih motivirati i davati im korisne savjete koje će oni upijati i dalje primjenjivati.

Ulaganje u dobrog juniora još je bolja investicija.

Juniori općenito znaju oko 10% onoga što misle da znaju. Primjerice, misle da su eksperti u pojedinom programskom jeziku jer su položili predmet na fakultetu, koji ih je zapravo podučio osnovama rada tog jezika.

U pravilu nisu prošli cijeli razvojni ciklus neke aplikacije ili projekta pa znaju donijeti “prvoloptaške” odluke ukoliko im se pruži mogućnost izbora.

Jedan od “simptoma” junior pozicije jest nemogućnost sagledavanja šire slike. Nerijetko previde zahtjev zadatka i konačni cilj te se u potpunosti posvete pisanju programskog koda “po svome”.

S obzirom na to da pogrešku ne uzimaju kao mogućnost, nedostaje im i vješina ispravljanja pogreški.

Mid (Charmeleon)

charmeleon

Charmeleon je pokemon koji je jači od Charmandera, pomalo tvrdoglav, neposlušan prema svom treneru, obavlja stvari na svoj način i bez previše razmišljanja o posljedicama. Ipak, u odnosu na Charmandera puno je sposobniji i bolji u borbi.

Na mid poziciji zaglavi većina developera jer je to, metaforički rečeno, živo blato IT svijeta.

Mid developeri najčešće imaju više od dvije i uglavnom manje od deset godina iskustva, iako neki mogu cijelu svoju karijeru ostati na ovoj razini.

Sposobni su proizvesti programski kod s manje nadzora, sve dok su im dodijeljeni relativno rutinski zadaci. Zadaci mid-level developera uglavnom ne iziskuju visoku razinu dizajna, kao ni duboku razinu znanja. Možda će im biti zadatak dizajnirati dio aplikacije, pogotovo jer su na putu da postanu seniori.

Dobri su u zadacima održavanja ili zadacima u kojima se mogu usredotočiti samo na svoj dio slagalice, ali obično se ne očekuje da aplikaciju razmotre kao cjelinu osim ako ne rade s iskusnijim kolegama ili ako nisu korak do više pozicije – one seniora

Uredno rješavaju probleme i ispravljaju pogreške, ali ne prije negoli se dobrano namuče dok ih otkriju i pronađu način kako ih popraviti. Još nemaju dovoljno iskustva da vide obrasce u problemima koji ih upućuju na vjerojatno mjesto na kojem se događaju. Ipak, trudom i radom stječu vještine i rijetko kada traže pomoć kod uklanjanja pogrešaka.

Za razliku od juniora, oni su barem jednom prošli cijeli razvojni ciklus i vidjeli rezultate dizajnerskih problema te uče kako ih izbjeći u budućnosti.

Hrabriji su i spremniji prihvatiti nove zadatke po nominalnoj vrijednosti, nisu skloni odbijanju zadataka koji su naizgled teški i hvataju se u koštac sa svim novim i nepoznatim.

Dosta su naučili iz iskustva, znaju što ne znaju i počinju skupljati to znanje.

Oni su radni konji IT svijeta, isporučuju vjerojatno 80-90% rutinskih zadataka i otprilike 10% vrlo teških zadataka.

Senior (Charizard)

charizard

Charizrd je veličanstven pokemon, može letjeti, bljuvati vatru, zadati udarac repom i krilima. U potpunosti osposobljen za borbu, naučen najboljim potezima koje jasno i precizno izvršava. Charizard je prava metafora za senior developera.

Seniori su stručnjaci u svojim odabranim tehnološkim domenama.

Dodijeljeni su im Zadaci – i to oni od kojih ostale kolege zaziru i od straha ih ni ne spominju.

Također, često uz poziciju dobivaju i odgovornost za dizajn i arhitekturu projekta. Rade neovisno jer imaju dokazane isporuke svog rada.

Od njih se očekuje da će mentorirati juniore i mid developere.

Njihova efikasnost rješavanja problema neupitna je. Ranije su naišli na iste probleme i imaju vrlo dobru ideju gdje ih prvo potražiti. Obično imaju najmanje deset godina iskustva i gotovo su uvijek bili na barem jednom „maršu smrti“ pa točno znaju zašto neke stvari treba izbjegavati.

Znaju isporučiti proizvod koji radi i ispuniti zadani rok. Oni znaju koji prečaci štede vrijeme, a koji vode u krivom smjeru.

Znaju barem jedan, a često i nekoliko programskih jezika na stručnoj razini. Vidjeli su da mnoštvo „vrućih novih tehnologija“ dolazi na radno mjesto i nestaje, zbog čega s oprezom pristupaju sljedećem pozivu na regrutaciju za rad na novom projektu u uzbudljivom frameworku ili programskom jeziku.

Treba naglasiti da nisu u potpunosti skloni odbijanju promjena – to bi bili stariji intermedijarni developeri koji nikad ne čine skok u senior kategoriju, tzv. uhljebi developeri, koji su jako dugo u firmi, napisali su neke projekte u starijim tehnologijama, ponosni su na to, ne žele to mijenjati pa odbijaju promjene i time koče i razvoj firme.

Pravi seniori razumiju da je njihov posao isporučiti softver koji radi ono što korisnici žele, a ne da se igraju sa zabavnim alatima.

Često su izbirljivi oko toga gdje će raditi jer su iz prve ruke vidjeli koliko radna mjesta mogu biti loša. Oni traže radna mjesta koja imaju najzanimljivije zadatke i kvalitetne projekte. Često znaju više o projektima svoje tvrtke nego bilo tko drugi, čak i ako su na tom projektu radili samo nekoliko mjeseci.

Znaju da im treba više od samog znanja programiranja i dobri su u stjecanju znanja o poslovnoj domeni koju podržavaju. Često su svjesni potencijalnih problema u pristupima, koje juniori nikada ne razmatraju, a mid developeri često ne razmišljaju regularno i unaprijed o njima.

Oni mogu i odbiti zahtjev za neki zadatak jer znaju koji problemi dolaze s njim i, što je najvažnije, mogu to lijepo i argumentirano objasniti laicima i informatički nepismenim ljudima.

Zaključak

Očito je da seniori imaju puno više znanja od junior i mid developera. Poznavanje obrazaca dizajna, arhitekture, automatizacije testiranja, performansi, sigurnosti itd. samo su neki od koncepata koje je potrebno poznavati kako biste se smatrali seniorom.

Napisani programski kod mora imati smisla za druge programere koji će u budućnosti raditi na njemu. Novi tim koji nikad prije nije vidio taj programski kod trebao bi biti u mogućnosti shvatiti ga i započeti raditi na novim značajkama ili modifikacijama postojećih. U tom segmentu tj. sposobnosti ostvarivanja prethodno opisanog, ponajveća je razlika između junior i senior developera.

Neću izostaviti mid level developera u ovoj usporedbi jer je ova skupina neka vrsta sivog područja kad je u pitanju vještina kodiranja. Očito je da je negdje između juniora i seniora, a vjerojatno više naginje prema seniorskoj strani. To uglavnom ima veze s iskustvom jer su mid developeri barem jednom prošli kroz cijeli razvojni ciklus. Napravili su puno jednostavnijih pogrešaka i naučili se na njima.

Pored svega nabrojanog, seniori posjeduju i nešto što se zove „soft skills“. Taj termin obuhvaća način na koji pristupate poslu, vaše ponašanje, komunikaciju, trud, odnos prema drugim kolegama, spremnost na pomoć, samostalnost u učenju, efikasno upravljanje zadacima u svrhu postiizanja što veće produktivnosti itd.

Da biste rasli kao junior, trebali biste se usredotočiti na pisanje jednostavnijeg i elegantnijeg koda, primjenu dobrih praksi uočenih od iskusnijih kolega te prolazak kroz više razvojnih ciklusa.

Da biste napravili iskorak iz mid-a u seniora, trebali biste se usredotočiti na učenje, čitanje stručne literature, izradu projekata u svoje slobodno vrijeme, stjecanje što više praktičnog iskustva i obavljanje zadataka kojih se plašite. Trebali biste biti spremni za najteže zadatke i biti gospodar tehnologija i programskih jezika koje koristite.

Za kraj, ostavit ću vam citat Martina Fowlera:

“Svaka budala može napisati kôd koji računalo može razumjeti. Dobri developeri pišu kôd koji ljudi mogu razumjeti. “

Podijeli

O autoru

Mensur Duraković