Letos v dubnu to bylo 10 let, co jsem jako Junior Java Developer nastupoval do Profinitu. Vzhledem k práci při studiu na ČVUT FEL jsem tou dobou za sebou měl již 4 roky praxe, ale hlásit se jako junior mi přišlo naprosto logické a správné. Možná si řeknete, že 4 roky jsou dlouhá doba, ale o kolik se reálně za takový čas posunete, když více jak polovinu pracujete pouze na part-time a de facto děláte dokola to samé? Lze v takové situaci objektivně určit kvalitu těch 4 let zkušeností? Z mého pohledu se tenkrát prostě slušelo nejdříve něco dokázat a pak teprve cokoliv chtít – alespoň tak to mám nastavené a dle všeho to nebyl vůbec špatný přístup.
Jak šel čas, zařadil jsem se do skupiny vedoucí pohovory s uchazeči o práci ve firmě a už hned na počátku mi bylo záhadou, na základě čeho se v motivačních dopisech uchazečů a informacích od náborových agentur objevuje slovo „seniorní“. Těch pár let zpátky to většinou indikovalo věk nad 35 let a s tím spojené i ambicióznější představy o osobním ohodnocení. Nutno ale přiznat, že ve valné většině případů šly ruku v ruce s ambicióznějšími požadavky také odpovídající zkušenosti, znalosti a všeobecný přehled o oboru a technologiích.
Poslední dva roky mám však pocit, že nám v rámci oboru IT ze slova „seniorní“ vymizely nejen zkušenosti, znalosti a přehled, ale nakonec i ten věk. Jedinou stálicí a vlastně i měřítkem tzv. seniority (někdy dokonce „významné seniority“) jsou jen a pouze ambicióznější představy o osobním ohodnocení, přičemž označení „seniorní“ se objevuje mnohem častěji, kdežto průměrný věk kandidátů klesá. Ač se to možná z předchozích řádků nezdá, tak absolutně nemám problém s pravidly nabídky a poptávky. Pokud je kdokoliv ochoten zaměstnat „seniorního“ vývojáře, který netuší, proč by měla mít rekurze ukončující podmínku, budiž. Slovy klasika se mi to může nelíbit, můžu s tím nesouhlasit, ale to je asi tak to jediné, co s tím mohu dělat – současný trh je tak jednoduše nastaven.
Co mi však vadí, je skutečnost, že se už ani napříč IT oborem pořádně neví, co to vlastně „seniorní“ vývojář znamená a co bychom měli očekávat, resp. chtít. Kdybychom to totiž věděli, nemohli bychom tuto definici redukovat pouze na výši platu, která leckdy vytváří hodně bizarní situace. Konkrétní nároky na „seniorního“ vývojáře si musí každý určit sám. Pokud bych však mohl doporučit (a přát si, aby to tak měla třeba i většina), byla by to následující tři kritéria.
#1 – kvalitní praxe a zkušenosti
V první řadě je potřeba se zaměřit na praxi. Nikoliv však pouze na délku, ale také kvalitu té praxe a získaných zkušeností. Kvalita se nejlépe pozná z konkrétních dotazů na projekty, technologie a schopnosti kandidáta dané zkušenosti dostatečně detailně popsat. Nejednou jsem se setkal se seniory, kteří mají v CV širokou plejádu technologií za více jak 5 let, ale v důsledku neznají ani základní principy, případně vám odpoví, že dané na projektu sice bylo, ale řešil to jiný tým, tak nebyl důvod se o danou problematiku zajímat. Někdy pro stromy nemusíme vidět les, to je pravda. Pokud jej ale vědomě ignorujeme, je to prostě špatně.
Senior je o kvalitních zkušenostech (šíři znalostí) a zatím ještě nejsme v Matrixu, abychom si mohli do hlavy „nahrát“ 3 roky zkušeností za 30 vteřin. Je to nepopulární názor, ale některé věci prostě přijdou až časem. Počtem projektů, které absolvujete, počtem bugů, které vyřešíte, počtem překážek, které překlenete, případně počtem diskuzí s kolegy, které zažijete. Mnoho věcí si můžete přečíst, hodně zážitků vám může kolega odvyprávět, ale osobní prožitek to prostě nenahradí.
#2 – univerzalita, schopnost řešení problémů
Pouze s dostatečnými znalostmi a zkušenostmi jste schopni vyřešit problém – ideálně téměř jakýkoliv problém. Vyskytl se bug, rozpor se zadáním, neprocházející test, nutnost nové integrace, trocha programování v jiném jazyce, případně nefunkční deployment pipeline? Tohle vše musí umět senior řešit. Proto přeci chcete seniora na projektu mít. Logicky se tedy netoužíte zabývat diskuzemi, že on či ona zná hlavně Javu a tu jednu funkci v TypeScript prostě opravit nemůže, protože by bylo nutné instalovat Node, atd.
S tím nepřímo souvisí i kvalita nástrojů, a tedy obecně připravenost na nastalé situace. Dle mého názoru má správný senior svoji sadu nástrojů, kterou dokonale ovládá, a hlavně kterou má poskládánu tak, že mu pomůže překlenout téměř jakoukoliv překážku. Pokud se dostanete do diskuzí, jakým nástrojem se připojit do relační databáze, případně co použít na SSH, není to dobrá vizitka.
#3 – samostatnost, dobrá práce v týmu
Tohle je velmi důležité. Na seniora se chcete spolehnout. Chcete zadat úlohu a mít jistotu, že vše dopadne tak, jak má. Ať se jedná o cokoliv, senior dané vyřeší. Nechcete praktikovat micromanagement, ale také nechcete po dvou dnech zjistit, že úloha zadaná na půl dne ještě není hotová. Mimo to správný senior umí pomoci méně zkušeným členům týmu. To samozřejmě může nastat pouze v případě, že má dostatečné technické znalosti, ale také komunikační schopnosti jdoucí ruku v ruce s těmi manažerskými (tedy schopnost řídit a kontrolovat 1 – 2 méně zkušené vývojáře, atd.).
Senior je týmový hráč, který neodchází s uplynutím poslední minuty svého úvazku, pokud je na projektu nebo v týmu problém. On či ona totiž ví, že musí pomoci, poradit, jít příkladem. Vždy, když jsem měl za svoji praxi tu čest v týmu spolupracovat s „pravým“ seniorem, mohl jsem se na něj či na ni minimálně v tomto ohledu stoprocentně spolehnout.
Co říci závěrem? Předně jsem si téměř jistý, že budete mít na mnou definovaná kritéria jiný názor. Ale víte co? To je naprosto v pořádku. Pokud se totiž shodneme alespoň na tom, že „senioritu“ je nezbytné znovu hodnotit podle toho, co člověk opravdu umí (a ne podle toho, co si myslí, že umí, případně co chce), splnil tento text svůj účel.
Autor: Michal Petřík
Head of Software Development