Spokojený vývojář je pro mě nejcennější
Stavíme nejsilnější reklamní platformu českého internetu s unikátní možností cílit reklamu. Umíme doporučovat obsah na míru. Vyvíjíme vlastní robustní analytické nástroje. I tak vypadá práce v divizi reklamních systémů společnosti Seznam.cz. Pro uživatele zvenku to znamená jednotné místo, kde mohou inzercí oslovovat většinu uživatelů českého internetu. Pro nás, vývojáře, jsou to technologické orgie. Nic z toho by ale nebylo možné bez skvělých vývojářů. Kromě zkušeností a kvalifikace je u nich pro mě zásadní ještě jeden parametr: spokojenost. Abychom ji zvýšili, udělali jsme v organizační struktuře několik změn, na kterých se lidé přímo podíleli. Výsledek si zatím všichni chválí. Dokonce i ti, kteří se z manažerských úrovní vrátili zpět na pozice specialistů.
Armáda sto padesáti vývojářů a výzkumníků každý kvartál pracuje na více než půl stovce projektů. Vše je postaveno nad open source, ve kterém často narážíme na limity, a nezbývá nám nic jiného, než je posouvat dál. Máme vlastní cloud a montujeme si dokonce vlastní hardware. Nebráníme se novým technologiím, jazykům ani postupům. Používáme desítky frameworků. Disponujeme vlastními i celofiremní týmy DevOps a SRE na podporu automatizace.
Projekty řídíme tak, aby to dávalo smysl. Nenecháváme se strhnout buzzwordy o plně agilním prostředí, ale s rozumem se snažíme kombinovat užitečné atributy agilního i tradičního postupu vývoje softwaru. Stavíme plně autonomní, ale i ryze specializované týmy, stále i virtuální. Řídíme se tím, co vyžaduje náš produkt, trh, efektivní vývoj i firemní kultura dneška.
Během posledních deseti let jsem byl u mnoha transformací, náborů a změn trendů ve vedení vývoje. Jedním z problémů, které jsem dlouhodobě řešil, byla obtížnost naplánovat vývojáři smysluplný a spravedlivý kariérní rozvoj. Ideálně opřený o pravidelné milníky, při kterých dochází k navýšení mezd, a tím i k srovnávání s aktuálními trendy na trhu práce.
Stačí nám tři úrovně a jen pár manažerů
Z vlastní zkušenosti mohu říct, že nejlepší je, když si řešení a svůj kariérní rozvoj navrhnou lidé sami. Mají pak ke zvolenému systému důvěru. U nás k současné podobě nastavení nové organizační struktury vedla dlouhá cesta – přes půl roku jsme o tom s kolegy diskutovali, a nakonec se dobrali k následujícímu závěru: máme (1) tři úrovně seniorních vývojářů, (2) jasnou odbočku mezi manažerem a specialistou a (3) rámcově definované dovednosti pro podporu spravedlivého rozřazení do skupin.
Největším problémem bylo stanovit požadované dovednosti jednotlivých skupin specialistů a učinit počáteční rozřazení. Je nesmírně těžké univerzálně definovat senioritu. Příkladem může být rozdíl ve skvěle flexibilním full stack developerovi, jenž je schopen odbavovat spoustu jednodušších úkolů na mnoha komponentách. Ten může být pro jistý kolektiv extrémně seniorní. Opakem je kolega specialista, který je schopen opravovat kernel databázového systému, ale na webovce vám nepřidá ani label. A teď, jak to udělat spravedlivě?
Odpověď jsme našli v klasickém modelu 3P: portfolio, program, projekt. Možná se v dnešní době agilu tyhle pojmy moc nenosí, ale nelze jim upřít, že jsou dobře zdokumentované a není obtížné je napasovat na rozvoj každého produktu.
Zvolili jsme si tedy následující kritéria. Junior, mid a senior level 1 se orientují v rámci projektu. Senior level 2 navrhuje, konzultuje a samostatně se orientuje v rámci programů jednoho portfolia (služby či produktu). Senior level 3 navrhuje, konzultuje a samostatně se orientuje ve více portfoliích. Shodli jsem se, že nemá cenu specifikovat hloubku znalostí jednotlivých jazyků, frameworků či nástrojů. To totiž vyplývá ze schopnosti pracovat v určitých vrstvách 3P modelu. Zároveň ani pevně neurčujeme dobu, kterou má vývojář v jednotlivých „škatulkách“ strávit, aby mohl postoupit. Pouze doplňujeme statistické informace od lidí, kteří na daných úrovních aktuálně jsou. Podrobněji to ilustruje následující diagram.
Spousta vývojářů raději píše kódy než řídí lidi
Dalším problémem bylo odlišení manažera od technologického specialisty. Nakonec každý sám sobě položil otázku: „Baví mě učit se nové věci proto, abych tyto znalosti obracel do kódu a komponent, nebo pro to, že mě baví učit ostatní?" Zároveň bylo důležité stanovit, že jednotlivé technologické úrovně mají ve firmě stejnou autoritativní váhu jako úrovně manažerské… A najednou bylo jasno téměř všude, nikdo se necítil degradován. Zní to moc korporátně? Není to dostatečně agilní?
Nemyslím si. U nás to mělo super efekt. Spousta manažerů přiznala, že chtějí být raději specialisty. Počet manažerů tak klesl o polovinu. Spravedlivě jsme rozdělili seniory dle jejich dovedností. Jeden z nepřímých, ale žádaných efektů, bylo spontánní rozpuštění historických struktur. Tím, že zmizeli manažeři, se vytvořily ploché struktury, které najednou chtěly samy experimentovat s různými přístupy k vývoji, jako jsou virtuální full stack týmy na projekt, virtuální specializované týmy a podobně. Najednou nevadily experimenty s vertikálním i horizontálním škálováním vývojových týmů.
Přirozená transformace a stáže v různých týmech
Můžeme říct, že dochází ke zcela přirozené – agilní – transformaci, bez nutnosti revolučních zásahů a draze placených poradců. V současnosti tu máme tři sila, jež experimentují s třemi typy škálování a skládání týmu na projekt. Zároveň nám tu vznikly zcela nové autonomní struktury, kde se mísí vývoj, výzkum, devops a produkt ve zcela stabilní, fungující, dlouhodobé jednotky.
Je super, že můžu na základě talentu svých lidí navrhovat kariérní plán, díky kterému je snad udržím řadu let ve firmě, ve které budou růst – nicméně to ukáže až čas. Příchozímu kvalitnímu kandidátovi z trhu, teď proto můžu říct: „Znáš super technologie, ale dokud nepoznáš naše portfolio, jsi pro mě senior level 1. Jsi velice schopný, a myslím si, že velmi brzy poznáš naše produkty. Já tě za to odměním posunem na level 2." Méně zkušené kandidáty mohu zase motivovat řadou milníků k dlouhodobému rozvoji.
S klidným svědomím můžu prohlásit, že nejcennější komoditou je pro mě spokojený, kvalitní vývojář. A že díky novému nastavení můžeme spokojenost lidí v týmu udržovat, a dokonce zvyšovat mnohem lépe než kdy dřív.