Intervju: Jakov Krolo, Director of Engineering u FIVE-u
Kako je izgledao tvoj put do trenutne pozicije?
U Five sam se priključio kao Senior Developer. Nakon nešto manje od godinu dana postao sam Team Lead i preuzeo vodstvo tima od 8 developera. Fokus mog posla tada se promijenio od toga da brinem kako osobno doprinijeti projektu kroz konkretne softverske zadatke prema tome da se posvetim cilju da cijeli tim funkcionira i doprinosi kvalitetnije. Naredne dvije godine još uvijek sam imao nešto vremena za programiranje, no definitivno su mi većinu vremena okupirale neke nove aktivnosti i nove vrste problema. Prvenstveno tu mislim na puno više razgovora, planiranja i utjecaja, ne samo unutar tima nego i sa ljudima van tima sa kojima surađujemo. Kako smo s vremenom ostvarivali sjajne rezultate i stekli veliki respekt klijenta, moj tim se sve više širio i sudjelovao u sve više projekata. Vremena za programiranje osobno više uopće nisam imao, a pojavile su se pak nove aktivnosti i izazovi s kojima sam se počeo susretati. Moja uloga je prirodno prerasla u Director of Engineering. Organizacija timova po projektima, skaliranje timova, mentoriranje i izgradnja novih Team Lead-ova, suradnja sa drugim odjelima (Product, Sales, Support, Operations), utjecaj na plan razvoja produkata, strategije oko metodologije rada i definiranje raznih procesa za kvalitetniji i efikasniji rad i međutimsku suradnju – to su ukratko izazovi koje treba savladati za uspješan rast tima na 50 ljudi.
Kako si se pomirio s time da se mičeš iz developerske role? Je li te bilo strah da ćeš izgubiti programersko znanje, kako gledaš na to?
Kada si developer, teško možeš utjecati na nekoga van svoga tima i u principu ovisiš o svome voditelju – i ako on ne uspijeva riješiti probleme koji te muče, ruke su ti prilično vezane. Na Team Lead poziciju prešao sam prvenstveno jer sam vidio da je to jedini put kako mogu pomoći u rješavanju brojnih problema u načinu rada Development dijela organizacije. Ta motivacija mi je bila toliko velika da me u početku nije ni najmanje mučilo to da više neću toliko programirati kao prije. Tek sa porastom tima i promjenom u direktorsku ulogu sam shvatio da moram kompletno napustiti programiranje. Nisam želio napustiti programiranje pa sam si rekao da je to privremeno, no nisam imao strah da ću izgubiti programersko znanje, iako sam bio svjestan da će dio vještina opadati s vremenom.
Kako ti je bilo postati “lead” dojučerašnjim kolegama, kad si iz ekipe gdje ste svi bili senior developeri ti postao lead?
Postati Team Lead “iznutra” je najbolja stvar koju sam mogao poželjeti. Točno sam poznavao probleme koje su mučile tim, pričao sam o tim problemima sa kolegama, skupa smo se “bunili” na probleme i onda sam dobio priliku raditi na rješavanju tih problema. Bez muljanja, transparentno, jer ipak smo bili kolege i imali praktički prijateljski odnos, nije bilo potrebe za politikanstvom niti sa moje niti njihove strane. Odmah od početka sam svoju voditeljsku ulogu zasnivao na servant leader filozofiji i ljudi u timu su to jako cijenili.
Nedostaje li ti programiranje? Kako ostaješ u toku s novim tehnologijama?
Nadam se da nisam rekao konačno zbogom programiranju. No, ne radi samog programiranja kao aktivnosti ili bijega od mnoštva komunikacijskih kanala koje čovjek mora održavati u direktorskoj ulozi.
Ne, nego ima nešto u izazovnim kompleksnim tehničkim problemima koje je teško riješiti i kada ih riješiš osjetiš zadovoljstvo i ispunjenje jer si sam svojim intelektom i trudom to uspio. Što sam duže van programiranja, to mi je teže ostati u korak sa novim tehnologijama iz perspektive programiranja. To znači da definitivno nisam više među prvima u timu koji su uočili neki novi library ili probali novi framework. No i dalje sve nove tehnologije ispratim na način da pročitam i saslušam o njima da ih shvatim i razumijem koji novi problem rješavaju ili zašto neki postojeći problem rješavaju bolje. Ta razina je u konačnici ono što mi je bitno u mojoj ulozi da mogu donositi strateške odluke po pitanju tehnologije.
Osjećaš li ponekad da nisi produktivan kao prije, sa puno češćim sastancima i prekidima…? Kako sada pratiš svoju produktivnost?
Mislim da se dosta voditelja to zapita u počecima svoje nove uloge. Sa novom ulogom ne prestaju tvoji zadaci, samo su drugog tipa, ne vode se više na JIRA boardu. Svaki sastanak, prekid, diskusija ili razmišljanje može rezultirati sa nekim zadatkom kojem se treba naknadno posvetiti. Vrlo brzo sam počeo popisivati svoje zadatke u VSCode i Trello. Imam tri liste u koje smještam zadatke prema prioritetu, ugrubo se svode na “danas”, “ovaj tjedan” i “ovaj mjesec”. Redovito pratim da li zatvaram otvorene zadatke, rastu li liste i uspijevam li ih kontrolirati, te po tome najbolje znam da li stižem rješavati konkretne probleme i provoditi u djelo konkretne planove i zadatke. Zna biti perioda kada je sastanaka, prekida i razgovora toliko puno da sam si morao stavljati u kalendar DND (“Do not disturb”) blokove od sat ili više vremena da uspijem napraviti neki pomak na svojim zadacima.
Što ti je najviše pomoglo u razvoju ka tvojoj ulozi managera, koje metode?
Većina toga je bilo učenje iz vlastitog iskustva i opažanja drugih managera i direktora s kojima sam se susretao. Bilo je grešaka koje sam uočavao kod drugih koje sam zapamtio da ih ne bi ja ponovio, ali isto tako i vještina i poteza koji bi me oduševili ili otvorili oči oko nekih stvari pa sam ih pamtio i trudio ih se kasnije primijenjivati. Naravno bilo je tu i učenja na vlastitim greškama jer u mnoge situacije dolaziš po prvi puta, zato se i teško unaprijed pripremiti kao senior developer za rolu managera. Moj savjet svima koje taj put u karijeri interesira i imaju nekog talenta i volje za to je da imaju pravu motivaciju i budu otvoreni istraživanju i opažanju, ali najveći razvoj dolazi iz direktnog iskustva i konkretnim situacijama koje je teško unaprijed simulirati. Naravno, blogovi, tutoriali, workshopi – sve to pomaže i čini te psihološki spremnijim kada čuješ neke savjete profesionalaca sa dugogodišnjim iskustvom.
Koji su ti najveći izazovi u vođenju tima? Koliko je lako/ teško voditi tim od 50 developera?
Najveći izazovi u vođenju velikog tima zapravo mi nisu toliko aktivnosti i stvari unutar tima koliko ostvarivanje kvalitetne suradnje mog razvojnog tima i drugih dijelova organizacije. Svaki odjel u kompaniji može posložiti stvari da funkcioniraju dobro unutar svog odjela, no za uspjeh kompanije je jako bitno da odjeli međusobono dobro funkcioniraju jer na kraju dana uspješnu isporuku produkta i zadovoljne korisnike ne čini jedan odjel nego svi oni skupa. Upravo tu često dolazi do različitih problema oko razumijevanja određenih stvari, prioriteta, komunikacije, zajedničkog planiranja ili usklađenosti procesa između različitih odjela. Prvenstveno tu mislim na uspostavu dobrog odnosa između Product i Engineering odjela, koji najuže surađuju, a potom i sa Sales, Support i Operations odjelima.
Što te najviše ispunjava u trenutnoj ulozi?
Uvijek se osjetim ispunjeno kada u razgovoru sa kolegama očito proizlazi osjećaj zadovoljstva i postignuća dok mi pričaju o nečemu što su uspjeli napraviti, neku novost ili rješenje koje su upravo otkrili i žele to podijeliti. To mi govori da su sretni u svom poslu, da nisu ometani i da će u konačnici proizvesti dobar softverski produkt za naše korisnike. S druge strane, kada dobijemo povratno pozitivne komentare naših klijenata i korisnika nakon isporuke softvera, to predstavlja neku povrdu našeg dobrog rada i ispuni me zadovoljstvom da smo kao tim napravili odličan posao.