Celý český přepis
Rozhovor byl nahrán ve slovenštině; tento český přepis je překladem dodaného anglického překladu. Zdrojový přepis upozorňuje na chyby přepisu v závěrečné části (přibližně od 21:27), která se vrací k otázce průběhu pohovorů; formulace, které tam zůstávají nejisté, jsou označeny hranatými závorkami. Zdroj je datován 23. února 2024, což je zřejmě datum nahrávání; epizoda vyšla 28. května 2024 a trvá 21 minut.
Jak vyniknout vedle větších konkurentů
Martin Brath: Tak jo, vítejte všichni u B2B Tech Talks. Je tu se mnou Patrik Ruman, zakladatel a CEO TechBand.io, který se specializuje na poskytování vývojářů technologickým firmám.
Patrik Ruman: Děkuji za pozvání, Martine.
Martin Brath: Rádo se stalo. Jsme tu proto, že tohle je docela žhavé téma: technologické firmy a startupy mají problém nabírat vývojáře a hledat dobré lidi do svých vývojových týmů. Protože se v tomto odvětví už nějakou dobu pohybuješ, začněme otázkou: jak se jako technologická firma můžu odlišit od konkurence a přilákat ty nejlepší talenty?
Patrik Ruman: Konkurence v boji o talenty je obrovská, ať už mluvíme o naší zemi, nebo o evropském trhu jako celku. Musíme si uvědomit, že to soupeření často není férové. Je to těžké. Přirovnal bych to k boji Davida s Goliášem: malé firmy s 20, 50 nebo 100 zaměstnanci soupeří s globálními korporacemi, které mají desítky tisíc zaměstnanců a rozpočty v milionech eur. Na druhou stranu z minulosti víme, že i menší hráči, kteří jsou chytří, mohou na trhu uspět a stát se lídry ve svém oboru. Jak na to? Z mé zkušenosti mohou menší firmy udělat dva nebo tři kroky, aby vynikly a přilákaly správné lidi. Zaprvé je to válka — bitva o talenty. Abyste ji vyhráli, musíte se podívat, na jakém bojišti soupeříte. Například jsem firma se sídlem v Praze. Můžu se rozhodnout, že budu hledat výhradně lidi z Prahy, protože chci, aby chodili do kanceláře. Pak ale přímo soupeřím s velkými globálními hráči, jejichž náborové rozpočty jsou mnohonásobně větší než můj. Na druhou stranu možná vlastně nepotřebuji, aby lidé chodili do kanceláře. Najednou můžu nabírat v Česku, na Slovensku nebo v sousedních zemích, kde je jazyková bariéra minimální. Nebo si řeknu, že mám zákazníky i v zahraničí, například v USA, takže můžu najímat lidi z celého světa. Okruh kandidátů se tím výrazně zvětší. Prvním krokem je tedy pochopit, z jakého okruhu lidí nabíráte. Druhým krokem je znát svou vizi. Špičkoví technologičtí odborníci chtějí pracovat ve firmách, které mají jasnou vizi, kam chtějí směřovat a jak jim v tom daný člověk může pomoci. Jinými slovy, jaký dopad bude mít na firmu? Třetím bodem je bojovat moderními zbraněmi. Nikdo nechce bojovat luky a šípy, když máme drony. Každý chce pracovat s nejnovějšími technologiemi. V případě vývojářů platí, že pokud používáte technologii, která je 20 let zastaralá, bude těžké přilákat špičkové odborníky pracující s nejnovějšími nástroji, jako je AI nebo nejnovější verze Angular, React a podobných technologií. To jsou podle mě tři věci, které firmy mohou udělat, aby i menší hráči získali lidi, kteří je na trhu odliší.
Jak moc záleží na platu?
Martin Brath: Dobře. Zmínili jsme, že korporace jsou pro startupy největší hrozbou, protože mohou nabídnout vyšší platy. Nakolik je to celé o penězích?
Patrik Ruman: Plat je důležitý faktor. Ale financované startupy, které rychle rostou, dnes také dokážou platově konkurovat větším firmám. Existuje i určitá základní úroveň — příjem, který typický programátor vydělává. Jakmile člověk překročí tuto základní hranici, může pro něj být méně důležité vydělávat ve větší firmě o pár set nebo pár tisíc eur měsíčně víc. Musíte se podívat, co následuje dál. Jakmile mám uspokojené základní potřeby, můžu si zaplatit bydlení a běžné výdaje a dovolit si životní styl, který jsem si zvolil, jde víc o smysl: jaký dopad může mít moje práce na společnost? Velkou výhodu tu mají například startupy ve zdravotnických technologiích. Nebo startup v zelených technologiích může oslovit určitou skupinu lidí. Startupy pracující s daty mohou přitáhnout lidi, které baví data a dopad, jaký ta čísla mohou mít. Takže je znovu důležité podívat se, co je vaše firma zač a jak se ve svém segmentu můžete odlišit jinak než platem. Zvýšení platu vás motivuje na pár dní; za týden už na něj možná zapomenete. Udrží vás tam tým a práce, kterou každý den děláte.
Kde hledat: pracovní portály versus síť kontaktů
Martin Brath: Dobře. Když už jsem se rozhodl nabrat špičkové lidi, kde mám hledat? Kde bych začal? Mám jít na Profesia a porozhlédnout se, nebo kde ty lidi najdu?
Patrik Ruman: Přesně. Firmy se obvykle obracejí na pracovní portály a očekávají, že všichni nejlepší programátoři, specialisté na UX a testeři čekají na Profesia. Jenže nejlepší talenty často zůstávají neobjevené a na pracovních portálech nejsou, protože tito lidé už většinou dělají práci, která je baví. Takže podle mě je při náboru nejdřív potřeba určit, koho vlastně hledáte. Neříkejte jen: „Chci tým pěti nebo šesti lidí.“ Řekněte, kam chcete své podnikání posunout, a podle toho nabírejte. Například pokud se můj e-shop načítá 30 sekund místo jedné nebo dvou, má to zásadní dopad na tržby. Existují různé případové studie, které ukazují, že každá další sekunda načítání snižuje tržby e-shopu. Takže si můžu říct: „Potřebuji seniorního vývojáře — odborníka, který tento problém vyřeší za pár dní.“ Takový člověk pak ovlivňuje tržby i celou firmu. Pro malé a střední firmy s 20 až 100 zaměstnanci je dost těžké nabírat reaktivně přes pracovní portály nebo příspěvek na LinkedIn a čekat, až se přihlásí špičkový kandidát. Podle mě je při náboru síť kontaktů stejně důležitá jako u nemovitostí lokalita. Ale znovu: neznamená to dát inzerát na pracovní portál nebo LinkedIn a čekat, až se přihlásí skvělý seniorní vývojář nebo špičkový frontendový odborník. Znamená to podnikat aktivní kroky k získání nejlepších lidí. U nás ve firmě například používáme mentální cvičení zvané paměťový palác. Vybavíte si dvě nebo tři zaměstnání či sítě kontaktů, jichž jste byli v posledních pěti letech součástí. U každé z nich si určíte tři, čtyři nebo pět lidí, kterých jste si v té práci opravdu vážili. Najednou máte síť 15 až 20 lidí, které můžete oslovit a říct: „Hele, hledám někoho na tuhle konkrétní pozici. Myslím, že bys na ni byl dobrý. Můžeš pomoct? Nebo znáš někoho ze svých kontaktů, kdo by se k nám mohl přidat?“ Takhle jsme nabrali přibližně 60 až 70 procent našich lidí.
Uchazeči versus aktivně oslovení kandidáti
Martin Brath: Dobře, porovnejme tedy kvalitu těchto dvou možností. Na jedné straně čekám, až se někdo přihlásí; na druhé lidi aktivně vyhledávám. Jak bys porovnal průměrnou kvalitu uchazečů, kteří jsou právě nezaměstnaní, s lidmi, kteří práci nehledají, ale jsou dobří v tom, co dělají?
Patrik Ruman: Samozřejmě se může stát, že se špičkový člověk v práci kvůli něčemu naštve, otevře pracovní portál a ještě ten den se přihlásí do vaší firmy. Ale nemůžete na to spoléhat. Podle mě by firmy měly nabírat proaktivně a vyhledávat špičkové lidi vlastními kanály, ideálně přes svou síť kontaktů, případně z jiných zdrojů. Pokud jde o kvalitu, v technologiích se říká, že špičkový talent může být až osmkrát efektivnější a produktivnější než průměrný vývojář. V praxi chcete spolupracovat s lidmi, kteří vám pomohou posouvat produkt rychleji.
Hodnocení kandidátů: soulad s kulturou a programování naživo
Martin Brath: Jak je rozeznáš? Dá se udělat několik věcí. Nejlepší způsob, jak zjistit, jestli je někdo dobrý, je samozřejmě spolupráce.
Patrik Ruman: Ale dokud ještě nabíráte, pomůže určité věci posoudit. U nás se při pohovorech soustředíme na dvě oblasti. První je soulad s firemní kulturou: vychází se s tím člověkem snadno? Mohl bych s ním večer někam zajít a měl bych si s ním o čem povídat? Chceme někoho, kdo nebude narušovat firemní kulturu. Druhá je technická zdatnost, kterou lze do určité míry posoudit už při pohovoru. Používáme programování naživo. Kandidát sdílí obrazovku a dostane zadání se třemi částmi: snadnou, obtížnější a třetí nejsložitější. Sledujeme, jak přemýšlí o krátkodobém i dlouhodobém dopadu svého řešení úkolu. Díváme se také, jak efektivně píše kód. Někdo vyřeší problém na 30 řádcích, jiný na dvou. A vysvětlí, že použil ty dva řádky z těchto konkrétních důvodů, a zároveň upozorní na možné pozdější důsledky. Přesně takové lidi chci v týmu, protože vím, že je nebudu muset neustále vodit za ruku.
Kdo hodnotí kandidáty a jak funguje srovnávání
Martin Brath: Kdo u vás kandidáty hodnotí? Kdo vede pohovory a rozhoduje? Kdo se jich účastní?
Patrik Ruman: Bereme to tak, že „vrána k vráně sedá“. Za dobu našeho působení na trhu jsme našli špičkové lidi, jejichž schopnosti jsme ověřili na projektech, a ti hodnotí další kandidáty. Snažíme se je porovnávat s referenční úrovní. Pokud vím, že jeden z našich nejlepších hodnotitelů má v mém hodnocení skóre 98 a řekne: „Ano, tenhle člověk je výborný — možná dokonce lepší než já,“ vím, že je to velmi dobrý člověk, kterému můžu věřit.
Martin Brath: A jsou lidé, kteří skutečně řeknou: „Ano, tenhle člověk je lepší než já“?
Patrik Ruman: Jsou. Pokorní vývojáři. A lidé, kteří věří svým schopnostem, dokážou také přiznat: „S tímhle člověkem bych chtěl pracovat, protože se od něj můžu něco naučit.“ Opravdu dobří lidé si uvědomují, že se musí neustále učit a že nejlepší je učit se od lidí, s nimiž úzce spolupracují.
Jak po nástupu poznat slabého vývojáře
Martin Brath: V jiné firmě jsem zažil, že odešel vývojář a nový člověk, který ho nahradil, řekl, že kód jeho předchůdce byl velmi špatný. Ostatní mu neodporovali. Nabízí se tedy zajímavá otázka: v jaké chvíli by měli vývojáři — nebo kdokoli, kdo za to odpovídá — takového člověka odhalit? A jak se to dělá?
Patrik Ruman: První krok může přijít už při náboru, kdy sledujete, jak člověk přemýšlí a jaký kód píše. To je to řešení na dvou řádcích oproti 30 řádkům: už tehdy vidíte, jak strukturuje kód a jak uvažuje o celkové struktuře. Potom, když už u vás pracuje, máte ideálně CTO nebo vedoucího týmu, který za něj odpovídá. Během prvních dnů a týdnů by na něj měl dohlížet, postupně mu zadávat úkoly od nejjednodušších po nejtěžší a důkladně kontrolovat jeho práci, aby zjistil, jak je pokročilý. Díky tomu můžete poměrně přesně posoudit, jak je spolehlivý a jestli dokáže dodat, co potřebujete. Dalším přístupem je, že firmy — zvlášť ty zavedenější — odhadují, jak dlouho má úkol trvat. Pak můžeme porovnat odhad se skutečností. Například jsme funkci odhadli na 10 hodin a člověk ji dokončil za pět — nebo za 50. Můžeme zkoumat proč. Samozřejmě ta funkce nemusela být správně definovaná. V takovém případě bych šel za projektovým nebo produktovým manažerem, který napsal požadavky. Ale může to být i tím, že programátor zkrátka není efektivní. Takže je to kombinace: prvotní prověření probíhá při pohovorech a druhé hodnocení by mělo ideálně přijít v prvních několika týdnech. Někdo ve vedoucí roli by měl člověka pravidelně sledovat a porovnávat jeho výkon na projektu s referenční úrovní.
Příspěvky na GitHubu jako vodítko
Martin Brath: Jak před přijetím hodnotíš něčí příspěvky na GitHubu?
Patrik Ruman: Je to užitečný ukazatel toho, jak často člověk vytváří kód. Ale zjistili jsme, že se vždy musíte dívat na celého člověka — nejen jako na programátora, ale jako na osobnost, včetně toho, kolik má mimo práci volného času. Na základě toho můžete zjistit, že někoho programování opravdu baví a má hodně commitů ve veřejných repozitářích na GitHubu. To může dobře naznačovat, že ho programování těší, chce se rozvíjet a učí se nové technologie. Na druhou stranu i někdo, kdo nemá mnoho veřejných commitů, může být špičkový vývojář. Možná má rodinu a večer žádný volný čas na práci na veřejných repozitářích nebo veřejných projektech. Musíte se tedy podívat podrobněji. Když tam nic nevidím, můžu se na to při pohovoru zeptat: proč? Pokud je tam velká aktivita, můžu ji využít jako výchozí bod k pochopení, jak ten člověk přemýšlí. Můžu zjistit, že jezdí na hackathony, neustále se učí a účastní se online výzev. To je skvělé, protože nejen říká, že je proaktivní — dokládá to svým kódem.
Proaktivita versus skutečné výsledky
Martin Brath: Dobře. Předpokládám, že proaktivita není přímo úměrná skutečnému výkonu člověka jako programátora. Jsou to aktivity, u kterých běžný pozorovatel vidí, že se někdo snaží a vynakládá úsilí. Ale někdy tam není talent nebo způsob myšlení potřebný k programování. Jak to odfiltruješ?
Patrik Ruman: Tam je potřeba podrobně zkoumat kód. Dejte mu složitý úkol a sledujte, jak k němu přistoupí, jak rozdělí komplexní úkol na menší části a jestli — při programování naživo nebo domácím úkolu — dokáže odhalit chyby, které mají dopad na obchodní výsledky aplikace. Například skrytá chyba v zadání nebo při programování naživo může způsobit, že se aplikace načítá 10 až 20 sekund. Pokud si jí člověk všimne, dokáže ten čas výrazně zkrátit. Přesně to chceme vidět. Některá zadání obsahují skryté chyby s konkrétním dopadem. Úkol může vypadat jako správně splněný, ale pokud člověk nechápe jeho složitost, tyto věci mu uniknou. Při hodnocení můžeme vidět, že úkol dělá to, co požaduje zadání, ale kandidát neudělal nic navíc. Už to dobře naznačuje, že pravděpodobně není na úrovni seniorního odborníka, kterého potřebujeme.
Roky praxe versus skutečná kvalita
Martin Brath: Jak vnímáš vztah mezi roky praxe a kvalitou vývojáře?
Patrik Ruman: Jsou to dva různé světy. Existuje základní náborářský přístup, který často vidíte v inzerátech požadujících pět, 10 nebo 20 let praxe. Pak je tu praktická realita, kde roky praxe vůbec nemusí korelovat se schopnostmi. Člověk, který na projektu pracoval pět let, může být slabší než někdo, kdo na nějakém pracoval rok. Důvodem je, že velmi záleží na projektech, na kterých pracovali. Porovnejte někoho, kdo na volné noze dělá současně 10 malých webů na WordPress, s člověkem, který rok pracuje na komplexní aplikaci v týmu pěti až sedmi lidí s řádnou strukturou a každodenními stand-upy. Ten druhý může velmi rychle přerůst někoho s pěti nebo 10 lety praxe, kdo často pracuje sám, bez kontroly kvality kódu, každodenních stand-upů, komunikace se zákazníkem a podobně. Takže roky praxe mohou být počátečním ukazatelem, ale vždy se musíte podívat na typ projektu, jeho složitost a strukturu týmu. To mi o člověku řekne víc než samotný počet let. Samozřejmě když dostanu životopis s šesti měsíci praxe, dává mi to prvotní způsob, jak kandidáta zařadit. Ale může být mimořádně talentovaný. Často jsme také viděli, že se firmy vracejí k otázce obchodního dopadu. Například na projektu můžu vědět, že potřebuji větší vývojovou kapacitu, protože nestíháme. Když ale analyzuji současné uspořádání týmu, zjistím, že moji nejseniornější lidé dělají základní úkoly — například stylování frontendu. Nebaví je to, ale musí to dělat, protože na to není nikdo jiný. V takové situaci může být schopný student s šesti měsíci praxe přesně to, co potřebuji. Může seniorním vývojářům odebrat část práce a uvolnit je pro složitější věci. Pokud má ten student ambice a chuť se zlepšovat, může mu spolupráce s těmito seniorními vývojáři pomoci během půl roku nebo roku velmi rychle pokročit. Záleží tedy na tom, co firma právě potřebuje. A to by mělo vycházet z obchodního dopadu, který od daného člověka očekává.
Jeden člověk: motivovaný junior, nebo zkušený rodič?
Martin Brath: Dobře. Představ si, že můžeš přijmout jen jednoho člověka. Na jedné straně máš talentovaného mladého člověka, který za sebou nemá roky práce a má omezené zkušenosti s programováním, ale je velmi motivovaný, snaží se a má ambice. Na druhé straně někoho s bohatými zkušenostmi, kdo má rodinu, chce v pět odejít, aby trávil víc času s dětmi, a už nemá tak silný tah na další posun. Koho by sis vybral?
Patrik Ruman: Záleží, co potřebuji. Pokud mám náklady na servery 10 000 € měsíčně a potřebuji je snížit o 50 procent, očekával bych, že člověk s roky praxe dodá to, co moje podnikání potřebuje, za dva nebo tři dny, aby ty náklady firmu nezabily. Na druhou stranu, pokud jsem startup, který chce iterovat a neví, jestli bude zítřejší funkce modrá, nebo zelená, a potřebujeme pracovat po večerech, protože druhý den prezentujeme firmu na veletrhu nebo před investorem a potřebujeme novou maketu, pak nejspíš dává smysl přijmout schopného, talentovaného juniora, který má nadšení a chuť pracovat večer a nemá další závazky, protože mi může pomoct dosáhnout cílů.
Martin Brath: Dobře, děkuji za rozhovor, Patriku. Uvidíme se příště. [Závěrečná formulace je ve zdroji nejasná.]
Znovu k ideálnímu průběhu pohovoru
Martin Brath: Dobře, když nabíráš vývojáře, je velmi důležité rozlišit mezi velmi dobrým a průměrným vývojářem. Jak by měl ideálně vypadat pohovor, abys už během něj zjistil, s kým máš co do činění, jestli je to velmi dobrý programátor, nebo průměrný?
Patrik Ruman: Podle mých zkušeností nejlépe zjistíte, jak dobrý je vývojář ve vašem týmu, společnou prací. Riziko náboru ale můžete snížit, když se při pohovoru soustředíte na správné věci. Za poslední čtyři roky jsme do našich týmů zpovídali spoustu lidí. Řekl bych, že struktura, kterou používáme, funguje velmi dobře. Nejdřív se díváme na mezilidské dovednosti člověka. Jde o soulad s kulturou: chci v týmu lidi, kterým můžu věřit. Druhou oblastí jsou technické dovednosti. K jejich posouzení používáme programování naživo, kdy vývojář sdílí obrazovku. Procházíme nějaký kód a během 30 až 60 minut mu dáme tři úkoly od nejjednoduššího po nejsložitější. Vždy sleduji, jak člověk přemýšlí o řešení programátorského úkolu a jak efektivní je kód, který píše. Jeden vývojář například něco vyřeší na 30 řádcích, zatímco jiný na dvou. Vidíte, jak je efektivní v přemýšlení i programování. Takže když spojíte mezilidské a technické dovednosti, získáte dobrou představu, kdo by mohl být vhodný. Samozřejmě můžete ověřit i další věci: jeho repozitáře na GitHubu, projekty, na kterých pracuje, třeba vedlejší projekty, a co dělá ve volném čase. Na jakých výzvách pracuje? Učí se nové technologie? Publikuje články pro jiné vývojáře nebo se účastní meetupů? To vše jsou aktivity, které zohledňujeme při vytváření profilu ideálního vývojáře.
Martin Brath: Co by pro tebe bylo nejdůležitější, kdyby sis musel vybrat jen jednu věc? Když čteš životopis a vidíš seznam aktivit, co by bylo nejdůležitější?
Patrik Ruman: V životopise?
Martin Brath: V životopise. Například když má někdo vedlejší projekt, ve kterém programuje aplikaci, [formulace je ve zdroji nejasná] nebo pořádá meetupy.
Patrik Ruman: Podle mě jsou to dvě věci. První je, jestli jeho zkušenosti odpovídají projektu, na kterém pracujeme. Řekněme, že mám [typ platformy je ve zdroji nejasný], která zpracovává tickety, a vím, že ten člověk předchozí rok pracoval na podobném projektu, možná větším. To je první věc. Druhou je proaktivita: jestli člověk nahrává nový kód na GitHub, a další aktivity, které ukazují iniciativu.
Martin Brath: Bývají lidé při programování naživo nervózní, když před vámi programují a musí přemýšlet?
Patrik Ruman: Ano, určitě. Vytváří to stres, protože nevíte, co čekat nebo jaký typ úkolu dostanete. Někdy nejde jen o programování, ale také o kritické a matematické myšlení zahrnující algoritmy. Musí vymyslet řešení v reálném světě a pak ho převést do kódu. [Přesné znění tohoto vysvětlení je ve zdroji nejasné.]
Martin Brath: Takže jim dáte pár minut?
Patrik Ruman: Ukážeme jim výsledek, který chceme, a pak je to na nich. Mohou použít Google, promyslet si to, použít telefon nebo i někomu zavolat. [Krátká odpověď o zavolání někomu je ve zdroji nejasná.] I když někdo použije ChatGPT, chcete vidět, jak přemýšlí, protože když pracuje ve vaší firmě… [Věta ve zdroji přechází do opakovaných, nesrozumitelných formulací.] [Několik závěrečných řádků o stresu při pohovorech a pomoci kandidátům je ve zdrojovém přepisu příliš nesrozumitelných na spolehlivý překlad.]
Martin Brath: Děkuji, Patriku. Ať se daří.
