Code review v náboru IT - proč a jak byste ho měli používat?

Vydáno: Poslední aktualizace:

Jedním z nejdůležitějších, ale stále opomíjených aspektů při najímání softwarových vývojářů je ověření, jak uchazeč zachází s kódem a zda je schopen vyjádřit své myšlenky pomocí určitého programovacího jazyka. Obvykle to při náboru IT děláme tak, že požádáme kandidáta, aby napsal nějaký kód řešící konkrétní problém. Kandidát to může udělat sám nebo ve dvojici s náborářem (Trefa do černého při testech kódování v přirozeném prostředí [případová studie]). Děláme to proto, že psaní kódu je jednou z nejdůležitějších činností, kterou vývojáři denně dělají. Měli bychom si však také uvědomit, že vývojáři mnohem častěji zdrojový kód čtou, než píší. Neměli bychom tedy zapomínat na ověřování, zda je kandidát schopen rychle analyzovat a pochopit některé úryvky kódu. Můžeme jednoduše ukázat nějaké výtisky kódu nebo (ještě lépe) dát IDE s nějakým projektem a klást otázky související s tím, co se zde děje. V tom je výzva k přezkoumání kódu opravdu užitečná.

Jak ověřit programátorské dovednosti uchazečů během technického pohovoru?

V souvislosti s výše uvedeným vidíme, že většinu času během technického pohovoru/hodnocení věnujeme ověření, zda je uchazeč schopen vyřešit některé programátorské výzvy nebo problémy. Kandidát se soustředí na pochopení a analýzu problému a následné nalezení správného řešení. Můžeme si však uvědomit, že kandidát je nucen přemýšlet spíše o tom, "co dělat", než "jak dělat". Když kandidáta požádáme, aby napsal kód, který bude schopen za určitých podmínek rezervovat místo v letadle, cílem je dodat správnou funkci a většinou je to kvůli stresu a časovému omezení vše, čeho je kandidát schopen. Existuje nějaká možnost, jak tuto situaci zvrátit a nechat kandidáta soustředit se na to "jak"? Ano! Po mnoho let, kdy jsem se aktivně podílel na vyhledávání IT pracovníků a najímání vývojářů nebo architektů, jsem používal hodnocení kódu.

Co je revize kódu?

Přezkum kódu je proces, kdy si programátoři vzájemně ověřují kód, aby našli případné problémy, chyby nebo odchylky od osvědčených postupů (pokud se chcete dozvědět více, navštivte stránku Wikipedia). V posledních několika letech je kontrola kódu nezbytnou součástí procesu dodávání softwaru. Poskytuje nám skvělou auditovatelnost a lepší kvalitu kódu, ale také umožňuje úžasné sdílení znalostí - lidé se nyní mohou učit a zároveň se učit sdílením zkušeností. Nechci vás však přesvědčovat, abyste do svého vývojového procesu prosadili code-review (což byste mimochodem měli přehodnotit, pokud ho ještě nepoužíváte), ale ukázat vám, proč a jak používat code review během technického pohovoru.

Jak můžete využít kontrolu kódu při náboru zaměstnanců v IT?

Tím, že ukážeme kandidátům kód, který je již napsán a funguje (většinou) podle očekávání, jim umožníme zaměřit se na kvalitu řešení. Položením jednoduché otázky "Tak co si myslíte o tomto kódu?" přepneme kandidáta do režimu pouze pro čtení. Důležité je zmínit, že někteří vývojáři jsou zvyklí na podobné úlohy, které absolvují při certifikačních zkouškách apod. a hledají v nich hloupé, záměrné chyby, jako jsou chybějící středníky, nesprávné parametry, špatné třídy apod. Podle mého názoru bychom měli používat jiný přístup. Vždy jsem používal funkční kód, který se správně kompiluje. Na začátku zdůrazňuji, že neexistují žádné "certifikační" chyby a kandidát by se měl zaměřit na osvědčené postupy, na některé běžné problémy, kterých si automatické nástroje těžko všimnou a které mohou způsobit vážné produkční problémy.

Příklad výzvy k přezkoumání kódu

Například v Javě to může být volání thread.run() místo thread.start(), které se správně zkompiluje, testy projdou, ale nespustí se nové vlákno, což může snížit konečný výkon. Můžeme také zkontrolovat, zda si kandidát nevšimne, že je některá transakční metoda volána mimo transakční aspekt, což může způsobit vážné problémy s konzistencí v databázi.

Jak hodnotit programátorské dovednosti na základě kontroly kódu?

Na základě prvního dojmu z uchazeče můžeme posoudit jeho přístup ke kvalitě. Pokud je pro nás kód opravdu ošklivý a plný problémů a kandidát řekne něco jako "podle mě vypadá dobře", můžeme předpokládat, že nepomůže zlepšit kvalitu kódu v naší firmě a dokonce ji bude zhoršovat. Je také docela snadné posoudit zkušenosti kandidáta. Například v nějakých 60 řádcích zdrojového kódu dokázali juniorští vývojáři najít asi 4-5 problémů. Vývojáři s více než 8 lety zkušeností jich dokázali najít 10. A nejlepší kandidáti měli kolem 15-20 problémů. Nejlepší kandidát mě upozornil na 2 problémy, o kterých jsem nevěděl, a při psaní kódu bylo zahrnuto přes 30 problémů.

Co bychom měli od kandidátů očekávat? Nejdůležitější jsou výše zmíněné otázky - problémy, které jsou pro danou technologii běžné a nejsou na první pohled patrné. Další věcí je čitelnost. Kód musí být přehledný, dobře strukturovaný a dobře pojmenovaný, aby mu případní další vývojáři (nejen autor) byli schopni porozumět a změnit ho. Tedy názvy metod nebo proměnných - zda jsou smysluplné, ne příliš dlouhé atd. Zda nejsou metody příliš rozsáhlé a neobsahují příliš mnoho logiky. Jsou technologie použité ve snippetu dobrou volbou pro řešení konkrétního problému (například pokud náš kód používá řetězcové operace pro sestavení XML, můžeme očekávat kandidáta poukazujícího na to, že existuje mnoho knihoven, které byly vytvořeny k tomu, aby to dělaly lepším způsobem).

Kontrola kódu v kampaních hodnocení DevSkiller

Ve společnosti DevSkiller jsme přesvědčeni, že kontrola kódu by měla být součástí hodnocení programátorských dovedností. Proto většina našich hodnotících kampaní obsahuje právě tento typ problému k řešení. Podporujeme také firmy, aby si vytvořily vlastní testy kódování, které budou obsahovat úkoly spojené s kontrolou kódu. Pro většinu firem je to docela výhodné, protože k přípravě takové úlohy můžete použít svou starou kódovou základnu. Stačí se o tom poradit s oddělením IT a zahrnout to do náborového procesu.

Sdílet příspěvek

Další informace o najímání zaměstnanců v oblasti technologií

Přihlaste se k odběru našeho vzdělávacího centra a dostávejte užitečné informace přímo do své e-mailové schránky.

Bezproblémové ověřování a rozvíjení dovedností v oblasti kódování.

Podívejte se na produkty DevSkiller v akci.

Bezpečnostní certifikace a shoda s předpisy. Zajistíme, aby vaše data byla v bezpečí.

Logo DevSkiller Logo TalentBoost Logo TalentScore