Uložili ste godine truda u tehnološko napredovanje i danas vas svi iz tima kad zapnu traže za pomoć. Vodili ste projekte s tehničke strane, postavljali arhitekturu, rješavali nerješivo, mentorirali mlađe, utvrdili svoj pristup code reviewu i s pravom se nazivate seniorom. No što dalje – nastaviti istim putem, možda usput promijeniti projekt ili firmu, ili se pak odvažiti i preuzeti ulogu voditelja tima i svakodnevno 8-satno programiranje ostaviti po strani?
Ana Petrović vodi ljudske resurse u Fiveu i već 5 godina prati razvoj programera. U tom periodu pomogla je nizu programera u transformaciji u voditelja tima, ali i nekima da učvrste svoj stav da zasad žele ipak dalje napredovati u tehničkom smislu i uživati razvijajući nove projekte.
Stoga slijedi 5 glavnih pitanja koja se provlače kroz svaku diskusiju i donose glavobolju programeru suočenom s tim raskršćem na koje ponekad zaluta svojevoljno, a ponekad bude gurnut kao prepoznati talent od strane menadžmenta.
1. “Hoću li baciti godine programerskog znanja niz vjetar?”
Glavna egzistencijalna kriza i prvi monolog koji se vrti u glavi, ili u boljim situacijama, kroz dijalog s nekim tko je to već prošao. Ako nisam full-time programer, kako ću ostati u toku s tehnologijom? Uložio sam već toliko sati, vikenda, dana i noći u eksperimentiranje, isprobavanja danas zaboravljenih frameworka, upoznavanje svih hirova platforme i rupa u dokumentaciji. Jesam li spreman to sve zaboraviti i krenuti s novom karijerom? Kako ću uostalom i dalje biti lider ako nisam bolji programer od svih u timu?
Iskusni voditelji tima će odmah reći da taj crni scenarij ne postoji. Nitko ne izgubi tehničko znanje i počne rapidno zaostajati, već se jednostavno poznavanje i rad s tehnologijom diže na višu i širu razinu. Principi programiranja su slični već 30 godina, a mnogi novi koncepti i arhitekture su samo ciklično ponovno otkrivanje davno zaboravljenih ideja. Zahvaljujući svom timu i uključivanjem u projekte, budući voditelji tima će itekako biti u toku s tehnologijama.
Svoje stečeno znanje voditelji tima iskorištavaju svaki dan i iskustvo isijavaju u svakoj diskusiji. Dovoljno je pogledati oko sebe – šanse su da su lideri u menadžmentu većine tehnoloških organizacija također nekad davno bili uspješni programeri. Uostalom, ta tranzicija ne ide preko noći, već kroz godine. Ništa nije crno-bijelo, nitko ne sprečava voditelja tima da kroz novu ulogu i dalje zadrži ulogu jednog od code reviewera i preuzme tu i tamo koji zadatak programiranja. Postepeno će se voditelj doista i pretvarati u konzultanta i uvidjeti kako baš taj programerski background daje alat nad kojim se mogu graditi druge vještine razvoja tima, zapošljavanja, mentoriranja, i vođenja kroz 1:1 sastanke. Uostalom, netko bez iskustva u programiranju će jako teško postati CTO ili tehnološki lider organizacije. Stoga ne da novi voditelj neće izgubiti sve uloženo, već se od njega očekuje i da itekako drži korak dalje.
2. “Što ću zapravo raditi svaki dan?”
Danas programeri svaki dan pišu kod, rješavaju probleme i na kraju svakog dana jasno vide svoj doprinos softveru na kojem rade. Pitanje koje se postavlja odmah u novoj ulozi je – što sam napravio svaki dan osim mailova i sastanaka? I tu treba prepoznati da inženjerski mozak treba više jasnih odgovora i manje nepoznanica. Nejasne upute poput “sad si team lead, brini se o timu” lako vode do različitih shvaćanja uloge, nesporazuma i neispunjenih očekivanja. Najbolje je krenuti od osnova: koje su glavne aktivnosti koje voditelj tima radi za generalnu “brigu o timu”?
Prvo dolaze redoviti 1:1 razgovori sa svakim članom tima kroz koje se prati motivacija, dobiva uvid u probleme s kojima se član tima susreće, može se dati konstruktivan feedback i savjet, te direktno utjecati na njihov razvoj i zadovoljstvo. Prvi korak je tako dogovoriti redovite ponavljajuće sastanke u kalendaru sa svakim članom tima, pripremiti agendu, rotirati teme i voditi bilješke. S obzirom da će to vrlo vjerojatno to biti prvi susret s odgovornosti za ispravno vođenje 1:1 sastanka, svakako se preporuča posavjetovati s HR timom koji bi trebao pomoći, postaviti okvire i dati dobre primjere. To je dobar trenutak za razjasniti ima li novi voditelj tima odgovornost za plaće i povišice, jer to može biti dodatan alat s kojim treba pažljivo upravljati. U prvim mjesecima jako je bitno da voditelj tima ima punu podršku u HR odjelu, da se ima s kime posavjetovati i nakon održanih 1:1, jer su velike šanse da će se tu prvi put susresti s dosad nepoznatim situacijama i problemima.
Osim individualnih sastanaka sa članovima tima, ključno je držati na okupu i cijeli tim kako bi razmjenjivali informacije, znanja i stvarali pravu timsku atmosferu. Najjednostavniji oblik su redoviti tjedni timski sastanci. No tu treba paziti na ravnotežu tema, te uz fokus na trenutnom statusu zadataka, rješavanju problema i planiranju posla, ubaciti i dijeljenja znanja, brze edukacije i pregled najzanimljivijih taskova ili problema koje su pojedini članovi riješili u prošlom tjednu.
Naravno, nisu samo sastanci poanta posla. Bit će tu puno mentoriranja, individualnog pomaganja s kompleksnim problemima i planiranja rasporeda po projektima u skladu sa znanjima i mogućnostima pojedinaca. Uz rad s ljudima team lead će voditi i strateške inicijative poput analiza i poboljšanja development procesa, procjena projekata, raznih odluka o development praksama i korištenju novih tehnologija.
3. “Kako ću znati jesam li uspješan?”
Programeri mogu prilično jasno vidjeti svoj uspjeh u obliku kvalitetnog, efikasnog, dugoročno održivog koda i pametno složenog koda i arhitekture. Isporuke u rokovima, broj bugova i korisničke metrike dat će još konkretniji osjećaj rezultata. No sad se javlja dilema, što kada postanem team lead, gdje je taj opipljivi rezultat silnih sastanaka i mailova? Za priču o rezultatu, prvo treba razmisliti o ciljevima.
Što zapravo može poboljšati voditelj tima, koje ciljeve može ostvariti? Za inspiraciju na tu temu prvi korak je analizirati kakvo je sada stanje u timu sa seniority levelima, sa znanjem koje postoji, s glavnim problemima koje treba riješiti. Ima li u timu previše juniora? Odlaze li ljudi, a nove ne uspijevate naći dovoljno brzo ili pak dugo traje vrijeme uhodavanja? Proces razvoja softvera zna biti kaotičan – postoje li problemi s isporukama, poštivanjem rokova i kvalitetom? Puno tehničkog duga komplicira razvoj određenih produkata? Ljudi se ne razvijaju i slabo uče nove stvari?
Ciljeva sigurno ima pregršt, pa je važno odabrati jedan i zaroniti. Tu može biti jako korisna OKR metodologija kao dobar način za definiranje ciljeva, koraka i mjera uspješnosti, kroz što se može dobiti i jasan osjećaj svog doprinosa.
Početak priče o OKR-ovima (Objectives and Key Results) najčešće se veže uz Andyja Grovea i njegov pristup u vođenju kompanije Intel, a kasnije ideju usvajaju u Googleu gdje često spominju kako im je OKR metodologija pomogla opetovano ostvariti višestruki rast. Ideja OKR-a je u definiranju jasnog cilja i konkretnih, mjerljivih (numeričkih) rezultata koji će dati nedvosmislenu povratnu informaciju je li cilj ostvaren.
U kontekstu vođenja tima mjere uspješnosti mogu se vezati uz rezultate ankete zadovoljstva članova tima, gdje rezultat može biti pokazatelj stabilnosti tima i dobrog vodstva. Također, jedan od pokazatelja može biti retention rate, odnosno postotak ljudi koji ostaju u timu u određenom periodu, ali i attrition rate, postotak ljudi koji su otišli. Metrike poput točnosti procjena, tj. usporedbe procjena prije početka projekta sa stvarno potrošenim satima, mogu upućivati na razinu efikasnosti i kvalitetu planiranja. Na razini tehnologije može se ići u konkretne metrike poput “osigurati da naše rješenje može podnijeti 200 zahtjeva u sekundi sa 90% odgovora unutar 100 ms”.
4. “Kako ću voditi ljude?”
Možda nije teško procijeniti tko je dobar programer, no što dalje s tom informacijom? Ljudi su kompleksna bića i suradnja ne ide uvijek glatko, motivacija varira, netko napreduje, netko stagnira, bezbroj je faktora u igri. Kako utjecati na to i kako poticati druge na suradnju?
U tome leži srž leadershipa. Kad ukucamo “leadership books”, na Amazonu se pojavi preko 40.000 rezultata, a industrija leadership treninga u svijetu ostvaruje stotine milijardi dolara prihoda (točnije, 366). Nema jednostavnog recepta i potreba za stalnim učenjem na ovu temu vjerojatno neće prestati ni nakon 50 godina karijere. No za početak nije loše pratiti nekoliko principa.
Prvi princip je princip šire slike. Nužno je objasniti svom timu širu sliku oko zadatka ili cilja koji je pred njima, efekte na tim i na njih same, koji će doprinos ostvariti, a koja znanja i iskustva pritom dobiti. I to je potrebno objašnjavati više puta i kontinuirano, i tako učvršćivati viziju u podlozi zadatka i pojačavati motivaciju.
Drugi je princip dobrog follow-upa, a cilja na držanje visoke razine važnosti zadatka kroz često vraćanje na temu i jasan fokus. Razgovor o preprekama i idejama za rješavanje, savjet iz iskustva ili identificiranje prvog sljedećeg poteza koji vodi prema završetku, djelovat će poticajno i pomoći u napretku. I od voditelja tima se očekuje da feedback daju konstruktivno i često i budu pravi mentor.
Treći je princip dijeljenja postignuća. Dobri voditelj tima će poticati praksu kojom će po završetku zadatka svaki član tima podijeliti svoj rezultat s ostatkom. Sama radnja prezentiranja svog rada potaknut će fokus, dati osjećaj završetka i postignuća, a i pozitivno utjecati na kulturu dijeljenja znanja i ideja.
5. “Ja više nemam vremena!”
Programeri često mogu odvojiti cijeli dan i raditi na jednom tasku u dubokoj koncentraciji, i nakon toga osjećati se produktivno i ispunjeno. U novoj ulozi realnost će biti da voditelja tima svi vuku na sve strane i dan je isprepleten prekidima, pitanjima i beskonačnim zahtjevima. Voditelj projekata ima problema s jednim članom tima, HR će tražiti termine za intervjue s novim kandidatima, prodajni tim će tražiti procjenu za novi projekt, kolege će htjeti raspravljati o arhitekturi nove aplikacije, drugi voditelji timova će se htjeti uskladiti oko procesa unutar timova… Kako se u takvom okruženju izvući iz stanja stalne zauzetosti i osjećaja da se ništa ne stiže, ili još gore, da se ništa konkretno nije napravilo?
Ključ je u fokusiranju. Mnoge organizacije koriste kalendare i cijeli raspored se vrti oko zakazanih sastanaka. Iskusniji voditelji tima će to okrenuti u svoju korist – zakazat će sami sebi određene termine i rezervirati vrijeme za fokusirani rad na jednoj temi. Znat će prioritizirati i prepoznati što treba odmah riješiti, a što se može odgoditi i riješiti sutra ili u nekom već dogovorenom terminu sastanaka. Sigurno će pomoći i alati, jer postaje nemoguće sve držati u glavi – od spomenutih evenata pa do taskova u kalendaru, organizacijskih alata poput Trella ili Basecampa, i redovitog čišćenja inboxa za što je korisno i posebno rezervirati vrijeme.
Prvi mjeseci će biti kaotični, ali to je dio napretka i evolucije u radu. Uz prave mentore (jer i voditelji tima trebaju svoje voditelje!) stvari će sjesti na svoje mjesto i tad kreće napredak. Od voditelja tima će se očekivati da nastave kontinuirano raditi na sebi, posebno na vještinama rada s ljudima. Ima ih mnoštvo, no nitko neće pogriješiti ako krene od vještine davanja feedbacka, vještine utjecanja i vještine coachinga. Nebo je granica!
Više o svemu saznajte na .debug konferenciji 12. i 13. prosinca 2019.