Miért fontos a jó programozó, és hogyan lehet kiszűrni a jelentkezők közül a legjobbakat? Miért nem szabad a felvétel folyamatot teljes egészében a HR-re bízni. Erről szól Derrick&Harry – Fejér Gábor és Tanács Lajos –, azaz projektmenedzsment Ilf-Petrovja újabb írása. A szerzőpáros továbbra is szorgalmasan írja életszagú bejegyzéseit a blogján, ám legutóbbi, Bitporton is közölt cikkük megjelenése óta továbbgondolták a virtuális (és nem virtuális) közösségépítést, és a felgyülemlett tapasztalatokra vállalkozást is építettek, amit stílszerűen Wunderplannak neveztek el. Az alábbi írás két blogbejegyzés szerkesztett változata.
Dolgozz tehetséges és jól képzett programozókkal!
Az első üzenet egyszerű, mint a kőbalta. A módszertanokról, eszközökről, menedzsmentfurfangokról elmélkedés közben hajlamosak vagyunk megfeledkezni a szoftverfejlesztési projektek legfontosabb tényezőjéről: tehetséges és jól képzett programozókkal kell dolgozni!
A különbség az ügyes és a béna programozó között nem olyan, mint a különbség az ügyes szőlőszüretelő idénymunkás, meg a béna szőlőszüretelő idénymunkás között. Amíg a béna idénymunkás x mennyiségű szőlőt szüretel le, és 0,2x mennyiségűt potyogtat el, addig az ügyes idénymunkás 2,5x szőlőt szüretel le, és csak 0,02x-et potyogtat el. A programozóknál azonban más a helyzet.
A béna programozó általában még addig sem jut el, hogy megbecsülje, mennyi időre lesz szüksége arra, hogy megbecsülje, mennyi időre lesz szüksége a feladat megoldására, amikor az ügyes programozó már megoldotta a feladatot. Ez a hatékonyságban nem kétszeres vagy háromszoros, hanem százszoros szorzót jelent. Vagy ezerszereset. Vagy olyan nagyot, hogy le se bírom írni ide. Azaz nem lehet három vagy öt vagy ötven béna programozóval kipótolni egy ügyeset, mert csak kárt okoznak, és a helyzet rosszabb lesz, mint ha ott se lettek volna!
Na de könnyű azt mondani, hogy alkalmazzunk ügyes programozókat! Hogyan döntsük el, hogy valaki ügyes vagy sem?
Több száz fejlesztőt interjúztattam különböző munkahelyeimen az elmúlt tizenhét évben, és bár a bombabiztos receptet még mindig nem találtam meg, azért nagyon sokat javult a dolog eredményessége. Összeszedtem néhány tippet, ami segíthet a kiválasztási folyamatban.
Most abból indulunk ki, hogy szereztünk már egy rakás önéletrajzot. Ezt egy jó fejvadász, állásportál vagy egy remekbe szabott álláshirdetés is tudja biztosítani. Utána jön azonban a neheze.
A hibák, amiket célszerű elkerülni
1. Ne a HR-s szűrje a CV-ket! Ha kellően vonó az állás, ebből lesz bőven, és mivel az időnk véges, nem hallgathatunk meg mindenkit személyesen, tehát kell egy előszűrés. És itt jön az első alapszabály: ezt ne a HR-es szűrje, hanem olyan munkatárs, aki szakmailag meg tudja ítélni a CV-kben leírt kompetenciákat. És akkor is csinálja ő, ha rohadt sok CV van, és ez egy fárasztó munka. Az ok egyszerű: egy HR-es általában nem tudja, mi a különbség a JSF a JSP meg a JS között. De nem is ez a feladata. Az ő dolga az, hogy biztosítsa a kereteket és a hátteret – ez szintén nagyon fontos.
2. A nagy dumás nem feltétlenül jó programozó. Ne az alapján válasszunk, hogy ki hengereli le a hallgatóságát valami nagy dumával! Egy fejlesztőnek is fontos persze a kommunikációs készség, de nem értékesítőket vagy sztárelőadókat keresünk. Fókuszáljunk a szakmaiságra!
3. Ne keressünk meg nem értett zseniket! Attól, hogy valaki szociopatának tűnik, még nem zseni! Zseniből nagyon kevés van, kommunikációs és társas problémákkal küszködő emberből viszont rengeteg.
4. Sajnálatból soha ne vegyünk fel senkit! Vannak olyan pályázók, akiknél majd' megszakad az ember szíve, mert már nagyon rég keres munkát, nagy a családja és így tovább. Ha azonban szakmailag nem felel meg a feladatra, úgyis csak kudarcok várnak rá, és hamis reményeket táplálunk benne is, meg magunkban is.
5. Nincs értelme megkérdezni, hogy a pályázó milyen helyet keres. Mindenki szakmai kihívásokat, jó csapatot, fejlődési lehetőségeket és jól fizető állást keres.
6. Meg annak sincs, hogy mondj három jó meg rossz tulajdonságot. Egyrészt szerintem rohadtul idegesítő a kérdés, másrészt meg szörnyen átlátszó, és minimális információtartalommal bír. Az interjúztató feladata, hogy feltárja a pályázó rossz meg jó tulajdonságait.
7. Nincs értelme a pszichológiai teszteknek. A pszichológia csodálatos tudományág (tényleg az, nem ironizálok), de az emberi jellem megismerését nem lehet fél órás kérdőívbe sűríteni. Ráadásul a jó programozóknak átlag feletti az intelligenciájuk, és simán kitalálják, melyik választ várja a pályáztató cég, és akár a Norman Bates (https://en.wikipedia.org/wiki/Norman_Bates) típusúak is vidáman átcsúsznak a szűrőn.
Hogyan csináljuk?
1. Írassunk a pályázóval programot! Ez az első és legfontosabb. A feladatot lehetőleg helyben, kontrollált körülmények között kelljen megoldania a jelöltnek. Fogalmam sincs, miért nem csinálják ezt mindenhol, talán azért, mert akik döntenek a pályázóról, többnyire fogalmuk sincs, milyen egy jól megoldott felvételi programozási feladat. Mi például mostanában konzolos Java alkalmazást íratunk a pályázókkal. A rendelkezésre álló idő két óra, és lehet hozzá internetet használni. Ha valakinek nincs ötlete, ideje, hogy sajátokat találjon ki, például a Codewarson talál jó jó feladatötleteket.
2. Mérjük fel a jelölt informatikai alapjait! Fel kell tárni, hogy a jelölt tisztában van-e teszem azt az adatszerkezetekkel, a tervezési mintákkal, az OO alapfogalmakkal stb. Ez jól felmérhető például valamilyen absztrakt feladattal, amelyben a jelöltnek ábrázolnia kell valaminek a működését diagrammal! Rajzoljon az orrunk előtt státuszdiagramot vagy valami ilyesmit!
3. Kérdezzük ki a jelöltet korábbi munkáitól! Mesélje el, hogyan dolgozott az előző projektjében, mi volt a feladata, hogyan kapta a feladatokat, hogyan tesztelte, amit csinált, hogyan folyt a release-ek kiadása.
4. Működjön a kémia! Szubjektív, mégis fontos elem, ha általánosságban viszonylagosan kellemesen érezzük magunkat a jelölt társaságában. Erre figyeljünk tudatosan, hiszen a munkaközösségünk új tagját is keressük, nem csak egy erőforrást.
5. Azok (is) hallgassák meg a pályázót, akikkel együtt fog dolgozni! Ez később két haszonnal is jár: segíti az új munkatársat az integrálódásban, és a régebb óta ott dolgozók sem érzik úgy, hogy valami hülyét erőltettek rájuk.
6. Mondjuk el őszintén, mi vár a jelöltre a cégünknél! Mutassuk be magunkat reálisan. Lehetőleg ne hazudjuk le a csillagot az égről, úgyis gyorsan kiderül, mi a valóság.
A szubjetív elemről se feldkezzünk meg, a munkakapcsolatban is fontos ugyanis, hogy működjön a "kémia"
7. Több forrásból informálódjunk! Keressünk a jelölt szakmai múltjáról információkat, nézzük meg, hol dolgozott korábban, és ha lehet, szerezzünk közvetlen véleményeket! De ez is csak az egyik szempont legyen, és ne riasszon el bennünket egy negatív vélemény, ha minden más szempontból például megfelelőnek tartjuk a jelöltet.
8. Több szem többet lát. Legalább két ember bonyolítsa a szakmai interjút, beszéljék meg a benyomásaikat az interjú után, és közösen alakítsanak ki véleményt a pályázóról. A végső döntés legyen közös, azaz alapuljon a műszaki csapat, a menedzsment és a HR konszenzusosán.
9. Vegyük komolyan a próbaidőt! A próbaidő arra szolgál, hogy a cég, a csapat és az új munkatárs kiismerje egymást, azaz csökkentse a döntés kockázatát csökkentse mindkét fél számára. Ha erre nem fordítunk figyelmet, a friss dolgozó eltűnik a napi darálóban, sodródik egyik feladattól a másikig, vagy tutorialozik három hónapon át. És a végén mindenki elégedetlen lesz.
+1 Amit mindig is szerettem volna, de sosem tettem meg:
– csoportos bográcsozás a jelöltekkel, ahol mindenkinek meg kell innia legalább három deci pálinkát, hogy megnyilvánuljon igazi énje;
– megkérdezni, milyen zenét hallgat, és azonnal elküldeni ha azt mondja, David Guettát; vagy azonnal felvenni, ha a Judas Priest vagy az In Flames a kedvence;
– megkérdezni, hogy olvassa-e a Derrick és Harry blogot, és hogy ugye milyen jó :)
Nyílt forráskód: valóban ingyenes, de használatának szigorú szabályai vannak