Alternativni karijerni izbori ili — šta kada ti dosadi programiranje?

Alternativni karijerni izbori ili — šta kada ti dosadi programiranje?

Ono što je super u programiranju, i softveru generalno, je što ne može da se ostane u istom mestu — može ili napred ili nazad. Da bi išli nazad, dovoljno je da ne radimo ništa, a da bi išli napred, ako smo izgubili entuzijazam, moramo da promenimo igricu.

Srđan Bajić
24/10/2019

Šta raditi kad dođe do toga da je ono što je nekada bila vrhunska zabava, izvor mnogih neprespavanih noći, zečja rupa znanja i eksperimentisanja… postane samo kuckanje i zatvaranje JIRA tiketa? Kad već tri godine radiš jednu istu stvar i pitaš se „ok, je l’ to stvarno to“? Kad uveče više ne čitaš novi tvit ili blog post alfa-kodera iz tvog domena, ne otpakuješ novu biblioteku, a nezavršen problem zatvaraš za danas jer je već šest sati i treba se u prodavnicu? Ono što je super u programiranju, i softveru generalno, je što ne može da se ostane u istom mestu  može ili napred ili nazad. Da bi išli nazad, dovoljno je da ne radimo ništa, a da bi išli napred ako smo izgubili entuzijazam, moramo da promenimo igricu. Ako si jedan ili jedna od onih kojima će programiranje dosaditi kad Đokoviću dosadi tenis, super, blago tebi. Zečja rupa je stvorena za ljude poput tebe, jer takvi kao ti guraju disciplinu napred i postavljaju standarde. 

Ali, avaj, nismo svi takvi. Nekima od nas stvari jednostavno dosade posle nekog vremena. Dakle, šta onda raditi? Neki od čestih dual-klasa za level 85 programera su preduzetnik (iliti osnivač i si-i-o startapa), softverski arhitekta, produkt menadžer ili inženjerski menadžer. Tema preduzetništva je iscrpno i kvalitetno obrađena u mnogo drugih tekstova na ovom sajtu, tako da ćemo u daljem tekstu opisati karijerne izbore koji su vezani za zaposlenje.

Produkt menadžer

Produkt menadžer je osoba koja dobro razume i voli i poslovnu i tehničku stranu određene tehnologije, dobro i jasno komunicira, ima visoku emocionalnu inteligenciju, vodi se podacima i metodologijom umesto pretpostavkama prilikom donošenja odluka i sposobna je da utiče na druge ljude bez direktnog autoriteta nad njima. Ova karijera je takođe odličan izbor za one što žele da steknu praktično iskustvo u razvoju digitalnih proizvoda pre nego što krenu da razvijaju „nešto svoje“.

Šta radi produkt menadžer?

PM najčešće upravlja razvojem jednog segmenta nekog digitalnog proizvoda ili novog proizvoda u okviru veće firme, spajajući tehnologiju i dizajn na način koji rešava korisničke probleme i ispunjava potrebe firme. To je tako u teoriji jer autonomija produkt menadžera u razvoju proizvoda zavisi od same firme u kojoj radi. Kao što sve firme danas kažu da rade agilno, a zapravo i dalje žive waterfall, tako je negde produkt menadžer samo administrativni radnik koji sortira backlog i obezbeđuje izvršenje prioriteta dobijenih s vrha, dok je u nekim firmama ta pozicija pravi mali CEO.

Produkt menadžer treba da bude ekspertski poznavalac korisnika proizvoda, podataka o tome kako se proizvod koristi, okruženja i poslovnih partnera, i industrije u kojoj se proizvod nalazi. – Marti Kejgan, „Kako napraviti digitalne proizvode koje korisnici vole“

Uzmimo za primer razvoj aplikacije za konzumaciju sadržaja (vesti, društvene mreže, onlajn prodavnice…). U tom kontekstu, uspešan produkt menadžer bi imao dve ekspertize domensku i tehničku. Domenska ekspertiza bi tražila da PM bude autoritet za to kako korisnici danas konzumiraju digitalni sadržaj i koja su im očekivanja. Neka od pitanja na koja bi PM trebalo da odgovori s autoritetom su:

Tehnička ekspertiza bi se odnosila na samu disciplinu. Paleta korisnih PM talenata je zaista široka, pa će u timu produkt menadžera svaki ispoljavati različite snage i slabosti. Neko će održavati fantastične odnose sa poslovnim partnerima, neko drugi će imati savršeno organizovan backlog i pouzdan roadmap, dok će neko treći biti poznat po odličnom dizajnu, egzekuciji i tumačenju A/B testova. 

No, svaki PM mora da gaji odlične odnose sa inženjerima i da učestvuje u agilnim ceremonijama. Mora u svakom trenutku umeti jasno da im objasni kako će to što traži da naprave pozitivno uticati na klijente ili korisnike. Svoje šefove mora da ubedi zašto je bolje da tim radi feature A, a ne feature B. Pogotovo ako je B nešto što su oni zamislili u svojim kulama od slonovače. Poslovnim partnerima i klijentima, zašto to što oni traže čeka na red već tri meseca dok „ovi drugi“ dobijaju već treću stvar ovog meseca. Neophodna je stalna evangelizacija ciljeva među partnerima i razvijanje entuzijazma za proizvod, kroz prezentovanje na sastancima i forumima. Poznavanje metodologija poslovnog istraživanja je sledeće kako dizajnirati i izvršiti validan eksperiment ili prototip, saznati očekivanja i naklonost korisnika, uz što manje resursa. 

No, po mišljenju autora teksta, ako postoji jedna odlika koja odvaja dobre od loših produkt menadžera, to je empatija. Empatija za potrebe vaših korisnika, prioritete poslovnih partnera, za frustraciju programera, očekivanja vaših nadređenih, i na kraju, kad dođete kući, za nezadovoljstvo vašeg partnera jer ste rok za isporuku određene funkcije stavili ispred potreba porodice. Posao PM-a je stoga izuzetno emotivno iscrpan i usamljen vi ste ta osoba koja drugima govori „biće sve u redu, ne brini“ i na kraju dana vrati laptop u ranac pitajući se „da li sam danas uradila najvažnije stvari za proizvod“.

Razlozi za: odlična priprema za preduzetnički poduhvat; posao je izuzetno dinamičan i multidisciplinaran, nikad dosadan; nosi visoku karijernu mobilnost; visoka autonomija rada i mogućnost prodaje i sprovođenja sopstvene vizije.

Razlozi protiv: 50-60 sati fizički i emotivno iscrpnog rada nedeljno, veoma visok tempo rada, konkurentna pozicija, konstantan osećaj da nisi završio/la nešto što je trebalo, previše mejlova i sastanaka, visoka odgovornost i vidljivost grešaka, i sve to za najčešće predefinisanu i ograničenu finansijsku nagradu.

Softverski Arhitekta 

Za razliku od produkt menadžera, koji je klasičan RPG multiklaser, pa pored softvera mora da savlada puno lateralnih disciplina, arhitekta kapitalizuje pre svega znanje i iskustvo iz razvoja softvera. Arhitekta je iz prve ruke video razvoj, rast i pad desetine softverskih rešenja, i na predlog određenog pristupa može iz glave da izlista pet stvari koje mogu da pođu po zlu, i da samim tim dizajnira kompletnije i robustnije sofversko rešenje od „običnog“ inženjera.

Šta radi arhitekta?

Posao arhitekte je da posmatra i dizajnira softverska rešenja u kontekstu celog ekosistema u kom ona postoje. Upotrebio sam dve reči: „posmatra“ i „dizajnira“. Zato što arhitekta može da postoji u dve uloge: kao podrška postojećem proizvodu i timu koji implementira rešenja na zahteve produkt menadžera, i kao „dizajner“, ili deo tima koji dizajnira novi proizvod u sklopu postojećeg ili novog sistema. 

U oba slučaja, arhitekta ima ključnu ulogu u sprečavanju kratkovidih rešenja ili rešenja koja se ne uklapaju dobro u postojeći sistem. Samim tim, ako se šest meseci nakon početka razvoja proizvoda ispostavi da proizvod ne može da skalira, prilagodi novim potrebama tržišta ili iz bilo kog razloga mora da se odbaci i radi iz početka (ili značajno promeni), arhitekta treba da „vrati značku“ i oslobodi sto.

U slučaju kada pruža podršku postojećem timu i proizvodu, arhitekta treba da nastoji da obezbedi da inženjerski tim proizvodi rešenja koja služe široj svrsi od konkretne stvari koju je PM tražio.

Na primer, produkt menadžer dolazi na sastanak sa željom da testira različite boje i oblike UI dugmeta. Ako inženjer predloži rešenje za testiranje konkretnog dugmeta, posao arhitekte je da vrati razgovor jedan korak u nazad, i pita „zašto ne bismo napravili rešenje koje omogućava testiranje bilo koje UI komponente“, „da li će to rešenje biti kompatibilno sa našim sistemom za keširanje“ ili „vi ste prvi tim koji će implementirati A/B testiranje u našoj aplikaciji, hajde da uključimo i inženjere iz drugih timova, kako bismo odmah napravili rešenje koje svi mogu da koriste“.

Na nešto višem nivou, posao arhitekte postaje mnogo odgovorniji. Prilikom razvoja nove aplikacije koja treba da živi u ekosistemu povezanih servisa arhitekta mora da ima plan kako će ta aplikacija komunicirati s postojećim i budućim aplikacijama. U primeru razvoja veb aplikacije za front-end rendering, arhitekta treba da razmišlja o softverskoj osnovi, načinu na koji će aplikacija konzumirati podatke iz različitih servisa, kako će se integrisati sa sistemom za analitiku, koje standarde i šeme aplikacija treba da ispoštuje, šta već postoji u okviru firme što može da se iskoristi i kako bi taj kod možda mogao da se iskoristi na nekom drugom kraju aplikacije. Takođe, razmišlja o znanjima i profilima koje tim treba da poseduje kako bi razvio aplikaciju i pravcu u kom će se tim razvijati i skalirati.

Samim tim, jasno je da nekoliko pogrešnih odluka od strane arhitekte može da zapečati sudbinu aplikacije (ponekad i cele firme) još i pre nego što je napisana. Zato je važno da je arhitekta iskusna, metodična, temeljna osoba, koja „triput meri, jednom seče“.

Razlozi za: ne bavi se detaljima, već konceptima; kapitalizuje teško zarađeno iskustvo; ne bavi se ličnim problemima u timu, emocijama i procesima individualac; oskudan kadar, samim tim i vredan; visok autoritet i mesto za stolom i pristupom svima u firmi.

Razlozi protiv: visoka odgovornost i jedan od ključnih uticaja na finalni uspeh proizvoda; treba da bude stalno dostupan za učešće u rešavanju visokoprofilnih problema, u distribuiranim firmama treba da radi sa puno timova u različitim vremenskim zonama; često leže u krevet misleći „nadam se da sam doneo dobru odluku“.

Inženjerski menadžer

Poput sportiste koji je okačio svoje rekvizite o klin i postao trener, inženjerski menadžer (IM) je rad sa mašinama zamenio radom sa ljudima. IM razume kako nastaju (i opstaju) snažni timovi i kakvu ulogu u razvoju inženjera igraju dobro mentorstvo i motivacija, jer je na svojoj koži osetio posledice dobrog, ali i lošeg menadžmenta.

Šta radi inženjerski menadžer?

Uloga inženjerskog menadžera varira od firme do firme, ali u svojoj osnovi ima oformljavanje snažnih inženjerskih timova i kontinuiran rad na obezbeđenju uslova da oni ispunjavaju svoj potencijal. Način na koji IM to radi zavisi od liderskog stila. Nekad su to egoistični mikromenadžeri koji se služe formalnim autoritetom da nadgledaju, kažnjavaju i nagrađuju inženjere. S druge strane, opus akademskog izučavanja liderstva i primeri najpoželjnijih poslodavaca među inženjerima, ukazuju na drugačiji stil onaj koji obuhvata empatiju i brigu o ljudima, osnaživanje, motivaciju, mentorstvo, i rešavanje međuljudskih i individualnih problema u timovima.

Počnimo od oformljavanja timova bilo da IM pristupa postojećoj organizaciji ili učestvuje u stvaranju nove, od njega ili nje će se očekivati da zapošljava i otpušta ljude i premešta ljude iz jednog tima u drugi. IM je često nadležan za više od jednog tima, ali ne bi trebalo da bude nadležan za previše, jer više ljudi znači i manje vremena koje menadžer može da posveti razvoju svakog pojedinačnog inženjera. Primera radi, u Nike Digital IM obično vodi dva do tri tima od četvoro, petoro ljudi. Da bi oformio uspešne timove, IM treba da razume kako različiti psihološki profili (i kulture u multinacionalnim timovima) funkcionišu jedni s drugima, kako bi umanjio potencijal međuljudskih konflikata. Pored toga, treba da proceni koji odnos seniora i juniora, kao i koja tehnička znanja, su potrebna timu da bi bio uspešan. 

Rešavanje međuljudskih konflikta i individualnih problema zahteva poznavanje psihološke teorije ili iskustvo u toj oblasti da li kroz prethodno vođenje timova, rano oformljavanje velike porodice ili interesovanje za psihološku teoriju i liderstvo. I zahteva iskrenu brigu o ljudima, empatiju i strpljenje. U radu sa ljudima, 1+1 nije uvek 2 i IM koji to ne razume će se često naći frustriran.

No, to nije sve što IM radi. Pošto pričamo o inženjerskom menadžeru, a ne o HR-u, IM takođe treba odlično da poznaje osnove razvoja softvera kako bi doprineo razgovoru o formiranju procesa, prihvatanju tehničkog duga i tehničkih investicija, rešavanju bagova i sličnim temama. U slučaju nestabilnosti aplikacije ili ozbiljnih incidenata u produkciji, inženjersko liderstvo firme će se prvo obratiti inženjerskom menadžeru, koji mora da ima spremne odgovore o razlozima problema i rešenje da se slično više ne ponovi. No, kao što Sale Đorđević ne treba da uleće u igru u poslednjoj četvrtini da bi ubacio trojku, tako ni inženjerski menadžer ne treba da kodira i pomaže timu na taj način ako se IM često nađe u situaciji da mora da pošalje, odobri, ili odbije Pull Request, znači da nije baš najbolje uradio svoj posao. 

Na kraju, IM mora da bude snažna osoba koja je spremna da govori sa autoritetom, kritikuje tim kada je potrebno, radi sa produkt menadžerom na rešenjima poslovnih zahteva, ali i da mu se suprotstavlja ukoliko ovaj stavlja preveliki pritisak na inženjere ili prelazi u inženjerski domen, govoreći timu kako da radi svoj posao (što je često slučaj ako tim ima tehnički jakog PM-a).

Najuspešnije timove s kojima sam se susreo je odlikovala bliska i uspešna saradnja inženjerskog i produkt menadžera. – Kris MekGinis, inženjerski direktor, Nike

Razlozi za: pozitivan uticaj na dnevni rad drugih na nivou koji nije dostupan na drugim inženjerskim pozicijama, osećaj zadovoljstva i ponosa kada timovi postižu visoke rezultate, a ljudi napreduju u karijeri i ostvaruju svoj potencijal, mentorska uloga koja kapitalizuje stečeno iskustvo.

Razlozi protiv: rad sa ljudima je težak, potrebno je puno strpljenja i rada sa emocijama drugih, ponekad je potrebno otpustiti ljude koji se trude ali ne postižu očekivanja, teško je vratiti se nazad u inženjerstvo, često manje plaćena pozicija od inženjera koje vodi.

Zaključak

 Iako su ove tri karijere različite, odabir bilo koje od njih znači da verovatno više nećeš kodirati (bar ne na poslu). Ako ti to zvuči malo teško, možeš se utešiti rečima „ma, nastaviću ja da kuckam s vremena na vreme“ (iako se to nikad stvarno ne desi). No, iako je kodiranje možda iza tebe, svaka od ove tri karijere donosi pregršt novih znanja, izazova i zanimljivog učenja sigurno ti neće biti dosadno.

Na kraju, postoje i drugi legitimni izbori za ljude koji se osećaju zaglavljeno u svojoj karijeri. Nema ništa loše u tome da posvetiš vreme porodici i uživaš u svojoj zoni komfora, dok tvoja odluka ne sazri. Ili da svoju teško zarađenu ušteđevinu investiraš, ne u stan ili kola, nego u iskustva i putovanja, koja će ti možda dati novu perspektivu. Svet će i dalje biti tu kada za godinu, dve ili tri, odlučiš da napraviš sledeći korak.


Autor je Srđan Bajićprodukt menadžer za Nike.com. Autor je zahvalan Džejms Kvinu (softverski arhitekta, Nike) i Gustavu Koreadakosti (inženjerski menadžer, Nike) na doprinosu u pisanju ovog teksta. 

Srđan Bajić

Objavio/la članak.

četvrtak, 24. Oktobar, 2019.

IT Industrija

🔥 Najčitanije

Srboljub

utorak, 29. Oktobar, 2019.

Jako smarate u kometarima sa bilo cim vezano za pausalce. U svakoj drzavi se porez placa, ne znam dokle ste mislili da u sustini radite na crno.

Petar

subota, 26. Oktobar, 2019.

Kad ti dosadi programiranje odes i uradis prekvalifikaciju u taksi vozaca...

Milan

petak, 25. Oktobar, 2019.

A moze na primer "Sta raditi kada dosadi blogovanje i unistavanje programerske karijere u Srbiji drugima?"

Aleksandar

četvrtak, 24. Oktobar, 2019.

Aha, sada kada ste izdejstvovali u Vladi ukidanje programiranja kao zanimanja, ukidanje pausalaca i ukidanja outsourcinga sada ste tu kao predvodnik davanja ideja sta naredno kao profesiju da izaberemo? Izostao je jedan konstruktivan predlog...da se lepo svako od nas vrati u selo i da pocnemo da razvijamo poljoprivredu i gajimo stoku po pasnjacim Vojvodine. Hvala gospodo. Zaista vam hvala na svemu.