Trefa do černého při testech kódování v přirozeném prostředí [případová studie]

Po zveřejnění příspěvku o nejčastějších nešvarech při najímání programátorů jsme obdrželi několik dotazů týkajících se programátorských úkolů a způsobu, jakým bychom měli ověřovat programátorské dovednosti.
Ze své dlouholeté praxe mám bohatou konzultační praxi v oblasti náboru programátorů v největších IT společnostech sídlících převážně ve středovýchodní Evropě.
O technických pohovorech jsme toho napsali hodně. Podívejte se na Základní průvodce technickým pohovorem.
Problémy při vedení rozhovorů s vývojáři
Když jsem začal dělat rozhovory s vývojáři, nebyl čas na aktivní programování a testování kódování. Měli jsme hodně kandidátů, takže jsme se museli držet hodinového limitu na každou otázku - měkké a technické hodnocení i finanční jednání. Nakonec jsme najímali asi 5% počátečních kandidátů. Po zkušební době jich asi 90% pokračovalo v práci. To byla poměrně dobrá míra konverze.
Docela...
Ale po vyčíslení nákladů, které byly způsobeny nevhodnými rozhodnutími při najímání zaměstnanců, jsme si uvědomili, že plýtváme spoustou peněz. Mzdy, HR, kancelář, notebooky, čas seniorních vývojářů na rozjezd atd. Výdaje navíc k platu v průměru téměř zdvojnásobovaly konečné náklady.
Po zkušební době byly tři hlavní důvody pro nenajímání vývojářů:
- nemohli pracovat v týmu,
- měli pouze teoretické znalosti,
- pracovaly mnohem pomaleji, než se očekávalo.
Důvodem, proč jsme nebyli schopni zjistit všechny tyto nevýhody, bylo vynechání aktivních kódovacích testů během pohovoru. Najímat vývojáře softwaru bez ověření, zda skutečně umí rychle a chytře kódovat, je podobné jako kupovat auto bez ověření, zda motor funguje.
Jak bychom tedy mohli všechny tyto nedostatky zkontrolovat během pouhých 60 minut?
Odpověď je jednoduchá - nemohli jsme! Museli jsme prodloužit proces dotazování nejméně o dvě hodiny. Předtím jsme však byli nuceni nejprve omezit počet kandidátů. Rozhodli jsme se udělat patnáctiminutový telefonický screening tak, že jsme položili 10-15 technických otázek a také jsme se seznámili s jejich platovými očekáváními. Na základě toho jsme kandidáta pozvali znovu, nebo ne. Proces screeningu nám umožnil snížit počet dalších nutných schůzek téměř o 40%, což byl horší výsledek, než jsme očekávali, ale dost dobrý na to, abychom prodloužili dobu každého jednotlivého pohovoru.
Snažili jsme se najít řešení, jak ověřit, zda jsou jednotliví kandidáti naladěni na stejnou vlnovou délku s týmem a zda umí používat programovací jazyky, které obvykle denně používáme. Nezávisle na požadovaných kódovacích dovednostech při práci programátorů klademe důraz na způsob jejich myšlení, zejména proto, že ovlivňuje jejich schopnost komunikovat s ostatními.
Je párové programování řešením?
Nápadem bylo programování ve dvojicích! Super - získáme to nejlepší z obou světů. Předpoklad byl správný asi pro 70% našich kandidátů. Ve výsledku stačila hodinová kódovací seance, abychom zjistili, jak se kdo bude chovat v našem náročném a specifickém prostředí - jednak při využití osvojených znalostí v praxi, využití schopnosti rychlého zpracování informací, flexibility a také jako týmový pracovník, který je občas nucen dělat kompromisy, aby dosáhl cílů firmy.
Současně nám také umožnila zjistit, jak používají nástroje, ale především - jak mohou principy SOLID využívat v praxi atd. Ale jak je to s ostatními 30%? V podstatě se jednalo o lidi, kteří vůbec neumějí programovat ve dvojicích. Bylo to pro ně naprosto nepřirozené. Je to velký problém? Když si uvědomíte, že v praxi jste strávili 5-10% času programováním ve dvojicích, musíte se zamyslet, jestli s takovými zaměstnanci na pozici, kterou obsazujete, dokážete žít 🙂.
Jak můžeme ověřit jejich kódovací dovednosti? Stačí je nechat pokračovat v započatém úkolu. Ale sami. Bez toho, aby jim tazatelé hlídali přes rameno a komentovali každý řádek kódu.
Důležité je také vytvořit přirozené podmínky pro každého vývojáře - nainstalované oblíbené IDE, přístup ke StackOverflow.com, dokumentaci atd. Pokud se uchazeč zeptá na používání vlastního notebooku - odpověď by měla vždy znít: "Nebojte se. Udělejte vše, co potřebujete, abyste se při kódování cítili pohodlně". Přirozené prostředí je absolutní nutností pro všechny druhy testů ověřujících dovednosti kódování, a to jak při párovém programování, tak při individuálních pohovorech.
Sdílet příspěvek