Joel on Software

Joel on Software   Joel despre Software

 

Alte articole din "Joel on Software" in Romaneste

Alte articole din "Joel on Software" in engleza

Scrie-i autorului (numai in engleza)

 

Ghidul războinicului pentru un interviu eficient


De Joel Spolsky
Tradus de catre Alexandru Pojoga
Joi, 23 martie 2000

Angajarea oamenilor potriviţi este de o importanţă absolut covârşitoare pentru Fog Creek Software. În profesia noastră, există trei categorii de oameni. La un capăt al spectrului, sunt masele de nespălaţi, lipsiţi de cele mai elementare noţiuni necesare unui programator. Aceştia sunt uşor de identificat şi eliminat, uneori doar citindu-le CV-ul şi punându-le câteva întrebări rapide. La extrema opusă, avem superstarurile geniale care se distrează scriind compilatoare de Lisp, într-un weekend, folosind Assembler, pe Palm Pilot. Iar la mijloc, se găsesc marea majoritate de "posibili" care dau impresia că, parcă, parcă, ar putea contribui şi ei cu ceva. Partea grea este să deosebeşti superstarurile de "posibili", pentru că la Fog Creek Software se angajează numai superstaruri. Iată câteva tehnici.

În primul şi în primul rând, criteriul fundamental nr. 1 pentru a fi angajat la Fog Creek este:

Inteligent şi…
Duce lucrurile la capăt.

Atât. Asta e tot ce căutăm. Memorizaţi aceste cuvinte. Repetaţi-le în gând seara înainte de culcare. Scopul nostru este să angajăm oameni cu aptitudini, nu cu un anumit pachet de cunoştinţe. Orice pachet de cunoştinţe cu care vine cineva în firmă oricum se va învechi moral în câţiva ani, deci mai bine angajez oameni în stare să înveţe tehnologii noi, decât oameni care, din întâmplare, ştiu programare SQL chiar în acest moment.

Inteligent este ceva greu de definit, dar vom vedea câteva întrebări de interviu care ne ajută să clarificăm lucrurile. Duce lucrurile la capăt este crucial. Oamenii Inteligenţi dar care nu Duc lucrurile la capăt au adesea doctoratul luat şi lucrează în companii mari unde nu-i bagă nimeni în seamă pentru că nu au absolut nici o valoare practică. Aceştia preferă să despice firul în patru cu discuţii academice decât să livreze produsul la timp. Acest gen de oameni pot fi identificaţi pentru că le place la nebunie să-ţi atragă atenţia asupra similarităţii teoretice dintre două concepte foarte diferite. De exemplu, ei vor spune: "Calculul tabelar este, de fapt, un caz particular de limbaj de programare", iar apoi se vor retrage vreme de o săptămână şi vor scrie o teză extraordinară, absolut strălucită despre caracteristicile teoretice computaţional-lingvistice ale calculului tabelar ca limbaj de programare. Inteligent, dar inutil.

Pe de altă parte, cei ce Duc lucrurile la capăt, dar nu sunt Inteligenţi, vor face lucruri stupide, parcă fără să se gândească, şi va trebui să vină cineva să facă ordine în mizeria lor. Aceştia sunt surse de pierdere pentru firmă – nu numai că nu contribuie cu nimic, dar şi răpesc din timpul altora care se pricep. Ei sunt genul de oameni care copiază bucăţi mari de cod în loc să scrie pur şi simplu o subrutină: asta rezolvă problema, doar că nu în cel mai inteligent mod.

Cea mai importantă regulă a interviului:

Luaţi o decizie

La sfârşitul interviului, trebuie să fiţi gata să luaţi o decizie clară asupra candidatului. Există doar două variante posibile: Angajat sau Respins. Aşezaţi-vă la calculator şi trimiteţi imediat un răspuns şefului de personal. La linia "subiect", treceţi numele candidatului. Prima linie a mesajului să nu conţină altceva decât Angajat sau Respins. Scrieţi apoi un paragraf-două pentru a vă motiva decizia.

Nu există alte răspunsuri posibile. Nu spuneţi niciodată: "Îl angajăm, dar nu în echipa mea". Este un gest lipsit de politeţe: se subînţelege că omul nu e destul de inteligent ca să lucreze cu dvs., dar poate îl duce capul pentru rataţii din cealaltă echipă. Dacă sunteţi tentat să spuneţi: "Îl angajăm, dar nu în echipa mea", aceasta se traduce automat prin "Respins" şi totul e OK. Chiar dacă aveţi un candidat care s-ar descurca nemaipomenit la 1 lucru anume, dar nu ar fi de mare folos în altă echipă, asta înseamnă Respins. Lucrurile se schimbă atât de des, atât de repede, încât avem nevoie de oameni care să facă faţă pretutindeni. Dacă vi se întâmplă să daţi peste un geniu idiot care e foarte, foarte, foarte bun la SQL, dar e complet incapabil să înveţe orice altceva, Respins. Aceşti oameni nu au un viitor la Fog Creek.

Nu spuneţi niciodată "Poate îl angajăm, nu pot să-mi dau seama". Dacă nu vă daţi seama, asta înseamnă Respins. De fapt, e mai uşor decât credeţi. Nu vă daţi seama? Spuneţi nu! Dacă vi se pare că oscilaţi, e simplu: Respins. Nu spuneţi niciodată "Păi, ce să spun, să zicem că îl angajăm, dar sunt puţin îngrijorat în privinţa..." E la fel de simplu: Respins.

Un lucru important de ţinut minte la interviu: mult mai bine este să respingi un candidat bun decât să angajezi unul prost. Un candidat prost va costa o groază de bani şi de efort şi va pierde timpul altora care vor alerga să-i repare programele scrise cu piciorul. Dacă aveţi o îndoială, oricât de mică... Respins.

Când desfăşuraţi un interviu, nu vă faceţi griji că, dacă respingeţi o mulţime de oameni, Fog Creek nu va mai avea pe cine să angajeze. Asta nu e problema dumneavoastră. Este problema şefului de personal, este problema Resurselor Umane, este problema lui Joel, dar nu este problema dumneavoastră. Întrebaţi-vă tot timpul ce este mai rău - să ajungem o firmă de soft mare şi jalnică, plină de gogomani, sau să rămânem o companie mică dar de calitate? Desigur, este important să căutăm candidaţi buni şi ar trebui să fie misiunea fiecăruia din firmă să găsească şi să recruteze oameni inteligenţi care duc lucrurile la capăt. Dar, odată ajuns la interviu, imaginaţi-vă că Fog Creek are candidaţi buni, câtă frunză şi iarbă. Nu vă coborâţi niciodată exigenţele, oricât de greu ar fi să găsiţi candidaţi excepţionali.

Şi totuşi, cum se ia o decizie atât de dificilă? Iată cum: întrebaţi-vă neîncetat în timpul interviului: este o persoană inteligentă? Este o persoană care duce lucrurile la capăt? Ca să clarificaţi aceste lucruri, trebuie să ştiţi ce întrebări să puneţi.

Pentru amuzament, iată cea mai absurdă întrebare de pe planetă: "Care e diferenţa dintre varchar şi varchar2 în Oracle 8i?" Asta da, întrebare inutilă. Nu există nici un fel de legătură, oricât de vagă, între oamenii care ştiu răspunsul exact la această întrebare gen "Ştii şi câştigi" şi oamenii potriviţi pentru Fog Creek. Cui îi pasă care e diferenţa? Dacă-ţi trebuie neapărat, găseşti răspunsul pe Internet în 15 secunde!

De fapt, există unele întrebări şi mai absurde. Discutăm despre ele mai târziu.

Am ajuns, în sfârşit, la partea distractivă: întrebările de interviu. Lista mea cu astfel de întrebări provine de la prima mea angajare, la Microsoft. De fapt, există sute de intrebări celebre puse la interviurile Microsoft. Fiecare reţine câteva întrebări care îi plac cel mai mult. Şi dumneavoastră veţi ajunge să aveţi un anume set de întrebări şi un stil personal de discuţie prin care să puteţi lua decizia Angajat/Respins. Iată câteva din tehnicile mele care s-au dovedit utile.

Înainte de interviu, arunc o privire peste CV-ul candidatului şi schiţez pe o coală de hârtie un plan de interviu – o listă de întrebari pentru persoana respectivă. Iată un plan tipic pentru interviul cu un programator:

  1. Introducerea
  2. Întrebare despre un proiect recent
  3. Întrebarea imposibilă
  4. Funcţia C
  5. "Sunteţi mulţumit de programul scris?"
  6. Întrebarea de proiectare
  7. Provocarea
  8. "Aveţi întrebări?"

Înaintea interviului, eu personal sunt foarte, foarte atent să evit orice lucru care ar putea să-mi dea vreo idee preconcepută despre candidat. Dacă omul nici nu a intrat bine pe uşă, iar dumneavoastră credeţi deja că e o persoană inteligentă, doar pentru că are doctoratul luat la MIT, nimic din ce va spune el timp de o oră nu va schimba această impresie. Dacă îl credeţi, din capul locului, un pierde-vară, nu contează ce va spune, impresia iniţială va rămâne. Un interviu este ca o balanţă foarte sensibilă – este extrem de greu să apreciezi o persoană după doar 1 oră de interviu; adesea, bunele şi relele se bat cap în cap şi e greu să iei o decizie. În aceste condiţii, dacă ştiţi dinainte ceva despre candidat, este ca şi cum aţi avea o greutate mare apăsând talerul balanţei; interviul devine inutil. O dată, chiar înaintea unui interviu, şefa de personal a intrat la mine în birou. "O să-ţi placă la nebunie tipul ăstă", mi-a zis. Nici nu pot să vă spun CÂT DE MULT m-am enervat. Ar fi trebuit să-i spun: "Dacă eşti atât de sigură că o să-mi placă, ce-ar fi să-l angajezi chiar tu şi să mă scuteşti de pierderea de timp". Dar pe atunci eram tânăr şi naiv, aşa că am susţinut interviul. Când tipul a început să spună lucruri nu-tocmai-deştepte, m-am gândit "măi să fie, e chiar excepţia care confirmă regula". M-am uitat la tot ce spunea prin ochelari roz. În final, am decis "Angajat", deşi era un candidat de doi bani. Şi ştiţi ceva? Toţi ceilalţi care l-au intervievat l-au Respins. Aşa că: nu asculaţi ce spun cei de la personal, nu întrebaţi înainte de interviu ce cred alţii despre candidat şi niciodată, absolut niciodată nu discutaţi despre candidat cu ceilalţi care se ocupă de interviuri, decât după ce aţi luat fiecare, independent, decizia proprie. Nu vă uitaţi la mine, este metoda ştiinţifică!

Scopul Introducerii este să îl relaxeze pe candidat. Obişnuiesc să vorbesc cam 30 de secunde despre cine sunt eu şi cum se va desfăşura interviul. Întotdeauna îl asigur pe candidat că ne interesează cum abordează rezolvarea problemelor, nu răspunsurile în sine. Apropo, în timpul interviului, faceţi aşa încât să nu şedeţi la birou, iar candidatul, de partea opusă. Astfel se creează o barieră formală între voi şi persoana nu se va putea relaxa. Cel mai bine, mutaţi biroul undeva lângă perete, sau ridicaţi-vă de la birou şi treceţi lângă candidat; el se va simţi mai destins. Cu emoţiile cât de cât înlăturate, rezultatul final va fi un interviu mai bun.

Partea a doua este o întrebare despre un proiect recent la care a lucrat candidatul. Când discutaţi cu un proaspăt absolvent, întrebaţi-l despre lucrarea de diplomă, dacă e cazul, sau despre un curs ce a implicat un proiect de lungă durată şi i-a plăcut în mod deosebit. De exemplu, întreb uneori: "Ce curs din ultimul semestru ţi-a plăcut cel mai mult? Nu neapărat legat de calculatoare". Sincer vorbind, prefer mai degrabă să aud verde în faţă că i-a plăcut un curs din alt domeniu. Uneori, te uiţi la foaia lui matricolă şi vezi că a urmat minimul absolut de cursuri de Informatică, dar toate materiile opţionale sunt, într-un fel sau altul, legate de Muzică. Apoi te uiţi la el cum îţi spune că materia lui preferată a fost Baze de Date Orientate pe Obiect. Da-da, cum să nu. M-aş simţi mai bine dacă ar recunoaşte că îi place mai mult muzica decât calculatoarele, în loc să se linguşească.

În cazul candidaţilor cu experienţă, puteţi discuta despre locul de muncă anterior.

Aici, caut să văd un singur lucru: pasiunea. Când vorbeşte despre un proiect la care a lucrat de curând, toate acestea sunt semne bune:

  • Omul se entuziasmează brusc; vorbeşte mai repede şi gesticulează. De aici se vede că, dacă îl interesează ceva, îl interesează cu pasiune. Există prea multă lume care lucrează la ceva fără să le pese câtuşi de puţin. Chiar dacă pasiunea candidatului este negativă, tot este un semn bun. "Am vrut să instalez Foo Bar 2.0 pentru fostul meu şef, dar tipul era un idiot fără pereche!" Aceştia sunt candidaţii buni pe care vrem să-i angajăm. Candidaţilor nepotriviţi, pe de altă parte, pur si simplu nu le pasă; ei nu arată nici un dram de entuziasm, cât e interviul de lung. Un semn excelent că persoana e pasionată de ceva: când vorbeşte despre un lucru anume, uită pentru moment că se află la interviu. Uneori, îţi intră un candidat extrem de emoţionat – este un lucru normal, aşa că nu-i acord niciodată atenţie. La un moment dat însă, când ajunge să vorbească despre Arta Digitală Monocromatică, el se umple de entuziasm şi toată nervozitatea dispare ca prin farmec. Foarte bine. Îmi plac oamenii pasionaţi de ceva. (Dacă vreţi să vedeţi un exemplu de Artă Digitală Monocromatică, scoateţi monitorul din priză.)
  • Omul are grijă să vă explice totul. Am respins unii candidaţi care, vorbind despre un proiect anterior, nu erau în stare să-l explice pe înţelesul unei persoane de rând. Adesea, absolvenţii de inginerie pornesc de la ideea ca toată lumea ştie Teorema lui Bates şi Axiomele lui Peano. Dacă începe să se poarte aşa, opriţi-l pentru o clipă şi spuneţi: "Dacă nu te superi, doar de dragul exerciţiului, încearcă să-mi explici toate acestea în cuvinte care să le înţeleagă şi bunică-mea". În acest moment, mulţi vor continua să folosească jargon ingineresc şi tot nu vor fi în stare să se facă înţeleşi. GONG!
  • Dacă persoana a fost implicată într-un proiect de echipă, căutaţi semne că şi-a asumat un rol de lider. Candidatul poate să spună: "Toată lumea lucra la X, dar a venit şeful şi a spus Y, iar clientul a spus Z". Aici eu îl întreb: "Şi, tu ce-ai făcut?" Un răspuns bun ar fi "Ne-am adunat cu ceilalţi din echipă şi am redactat o propunere..." Un răspuns prost ar fi "Păi, ce puteam eu să fac? Era o situaţie imposibilă". Nu uitaţi, Inteligent şi Duce lucrurile la capăt. Un mod de a afla dacă persoana Duce lucrurile la capăt este să aflaţi dacă, istoric vorbind, a dus lucrurile la capăt în trecut. De fapt, cereţi-i direct un exemplu recent în care şi-a asumat un rol de lider şi a dus ceva la capăt – de exemplu, a făcut ceva ca să depăşească inerţia instituţională.

OK, la numărul trei pe listă avem întrebarea imposibilă. Aici e distracţie. Ideea este să-i puneţi o întrebare absolut imposibil de răspuns, doar ca să vedeţi cum face faţă. "Câţi oftalmologi sunt în Seattle?" "Câte tone cântăreşte Monumentul lui Washington?" "Câte benzinării există în Los Angeles?" "Câţi instalatori sunt în New York?"

  • Candidaţii inteligenţi îşi vor da seama că nu e o întrebare legată de cunoştinţe şi vor încerca, plini de entuziasm, să găsească un răspuns aproximativ. "Păi, să vedem, populaţia Los Angeles-ului e în jur de 7 milioane; fiecare persoană are aproximativ 2,5 maşini..." Desigur, e OK dacă nu se apropie câtuşi de puţin de adevăr. Important este că s-au aruncat asupra problemei cu entuziasm. Unii vor încerca să aprecieze capacitatea unei benzinării. "Să zicem, să faci plinul durează 4 minute, o benzinărie are cam 10 pompe şi e deschisă cam 18 ore pe zi..." Sau vor căuta să facă un calcul în funcţie de zonă. Uneori vă vor surprinde cu creativitatea lor sau vă vor cere paginile galbene pentru Los Angeles. Toate sunt semne bune.
  • Candidaţii mai-puţin-inteligenţi se vor deruta şi enerva. Ei o să caşte ochii la dumneavoastră, de parcă tocmai aţi aterizat de pe Marte. Trebuie să-i ţineţi de mânuţă: "Dacă ai construi un oraş nou de mărimea Los Angeles-ului, câte benzinării ai pune?" Le puteţi da mici indicaţii: "Cât durează să faci un plin?" Şi totuşi, când aveţi de a face cu candidaţi de-a dreptul ne-inteligenţi, va trebui să-i trageţi efectiv după dumneavoastră, în timp ce ei stau pur şi simplu înfipţi şi aşteaptă să fie salvaţi. Aceşti oameni nu rezolvă probleme şi nu au ce căuta la noi.

La capitolul programare, rog de obicei candidatul să scrie o funcţie scurtă în C. Iată câteva probleme tipice:

  1. Inversarea locală a caracterelelor dintr-un şir
  2. Inversarea unei liste înlănţuite
  3. Numărarea biţilor egali cu 1 dintr-un octet
  4. Căutare binară
  5. Găsirea celei mai lungi secvenţe de caractere identice
  6. atoi
  7. itoa (excelent, pentru că e nevoie de o stivă sau de inversarea şirului)

Nu are rost să daţi o problemă ce ocupă mai mult de vreo 5 linii de cod; nu aveţi timp pentru aşa ceva.

Să analizăm mai amănunţit câteva din problemele de mai sus. Nr. 1: inversarea caracterelor dintr-un şir. Toţi candidaţii pe care i-am intervievat în viaţa mea, toţi până la unul, au procedat greşit de prima dată. Fără excepţie, toţi au căutat să aloce memorie suplimentară şi să inverseze şirul în acea memorie. Problema este: cine alocă memoria? Cine o eliberează? Punând această problemă de mai multe ori, am descoperit un lucru interesant. Majoritatea oamenilor care cred că ştiu C nu înţeleg în realitate ce sunt memoria şi pointerii. Pur şi simplu, le scapă cu desăvârşire. Este de neînchipuit că aceşti oamenii lucrează ca programatori, dar aşa este. În cadrul acestei întrebări, iată câteva metode pentru aprecierea candidatului:

  • Cât de rapidă este funcţia? Observaţi de câte ori se apelează strlen. Am văzut algoritmi de inversare de complexitate O(n^2) în loc de O(n), pentru că strlen este tot apelat şi apelat, din interiorul buclei.
  • S-au folosit operaţii aritmetice cu pointeri? Este un semn bun. Mulţi "programatori de C" pur şi simplu nu înţeleg cum să aplice operaţii aritmetice asupra pointerilor. Bine, în mod normal, nu aş respinge un candidat doar pentru că îi lipsesc anumite cunoştinţe. Totuşi, am ajuns să constat că înţelegerea pointerilor din C nu este o chestiune de cunoştinţe, ci de aptitudine. La cursul de Informatică din anul întâi, la începutul semestrului, sala se umple cu 200 de puştani care au scris cu toţii jocuri complexe de aventuri în BASIC pe vechile lor Atari 800 încă de pe când aveau 4 ani. Toţi se distrează de minune la facultate învăţând Pascal, până când, într-o bună zi, vine profesorul şi le prezintă pointerii... brusc, ei nu mai înţeleg. Pur şi simplu, nu mai pricep nimic. 90% din grupă se transferă la Ştiinţe Politice, iar prietenilor le spun că s-au mutat pentru că nu existau destule persoane de sexul potrivit în grupele de Informatică. Dintr-un motiv sau altul, majoritatea oamenilor se nasc fără acea parte a creierului care înţelege pointerii. Este o chestiune de aptitudine, nu de cunoştinţe, care necesită o formă complexă de gândire "în dublu sens", de care unii sunt, pur şi simplu, incapabili.

Cu întrebarea nr. 3, vă puteţi da seama cât de bine a învăţat operatorii pe biţi din C... dar aceasta este o chestiune de cunoştinţe, nu de aptitudini, aşa că le puteţi da o mână de ajutor. Partea interesantă este să-i urmăriţi cum scriu o subrutină care numără biţii dintr-un octet, apoi să-i rugaţi să o facă mult, mult mai rapidă. Candidaţii cu adevărat inteligenţi vor crea un tabel (până la urmă, nu există decât 256 de elemente) o singură dată, la începutul programului. Cu un candidat bun, se poate purta o discuţie interesantă despre diversele compromisuri spaţiu/viteză. Forţaţi şi mai mult: spuneţi-i că nu vreţi să pierdeţi timp construind un tabel la iniţializare. Candidaţii străluciţi ar putea chiar să propună un algoritm cache, în care biţii sunt număraţi doar o dată şi păstraţi în tabel pentru data viitoare când intervine acelaşi octet. Candidaţii cu adevărat străluciţi vor căuta să pună la punct un mod de a calcula tabelul printr-o scurtătură ce ţine cont de cine ştie ce secvenţă repetitivă.

Când cineva scrie cod sub ochii dumneavoastră, iată câteva tehnici utile:

  • Asiguraţi-l de fiecare dată că vă daţi seama cât de greu este să scrii cod fără calculator şi nu e nici o problemă dacă foaia se umple de mâzgăleli. De asemenea, că vă daţi seama cât de greu este să scrii cod corect fără un compilator şi că veţi ţine cont de acest lucru.
  • Câteva semne ale unui programator bun: programatorii buni au obiceiul sa scrie din start { iar apoi să se ducă direct la sfârşitul paginii, să închidă cu } şi abia dupa aceea să completeze restul. De asemenea, veţi observa că au un fel de convenţie pentru numele de variabile, oricât de primitivă ar fi... Programatorii buni tind să folosească nume foarte scurte pentru contoarele de buclă. Daca variabila de buclă este ContorBuclaPozitieCurentaPagina, e un semn clar că omul nu a programat prea mult la viaţa lui. Uneori, veţi vedea un programator de C scriind ceva de genul if (0==strlen(x)), punând constanta de partea stângă a lui == . Este un semn foarte, foarte bun: individul s-a fript de prea multe ori scriind = în loc de == şi s-a forţat să înveţe o nouă regulă ca să evite astfel de capcane pe viitor.
  • Programatorii buni planifică înainte să se apuce de scris, mai ales când e vorba de pointeri. De exemplu, dacă le cereţi să inverseze o listă înlănţuită, candidaţii buni vor desena întotdeauna o schemă pe marginea foii, trasând fiecare pointer şi elementul la care indică. Nu au de ales. Este omeneşte imposibil să scrii cod care inversează o listă înlănţuită fără să desenezi mai întâi o grămadă de pătrăţele şi tot felul de săgeţi între ele. Programatorii slabi se vor apuca imediat de scris codul.

Inevitabil, veţi găsi o greşeală în funcţia lor. Aşa ajungem la întrebarea nr. 5: Eşti mulţumit de codul tău? Aţi putea să întrebaţi: "OK, unde e greşeala?" Cea mai de coşmar "întrebare deschisă" din câte există. Toţi programatorii fac greşeli, nu e nimic rău în asta; trebuie doar să le şi găsească. În cazul funcţiilor cu şiruri, aproape toţi uită să termine şirul cu zero. Cu practic orice funcţie, majoritatea greşesc cu o unitate în plus sau în minus. Uneori uită de punct şi virgulă. Funcţia cuiva nu merge cu şiruri de lungime 0, sau duce la GPF dacă malloc eşuează... Foarte, foarte rar, veţi găsi un candidat care scrie cod perfect din prima. Aici, întrebarea e şi mai distractivă. Când îi spuneţi: "Codul tău are o greşeală", el îşi va citi codul cu atenţie, iar dumneavoastră aveţi ocazia să vedeţi dacă individul ştie să fie diplomat şi, în acelaşi timp, ferm, când susţine că programul e impecabil... În general, înainte de a merge mai departe, este bine să întrebaţi candidatul dacă e mulţumit de răspunsul său. Faceţi ca prezentatorul de la Vrei să fii miliardar: "Eşti sigur? Eşti absolut sigur? Acesta e răspunsul tău final?"

Partea a 6-a: întrebarea de proiectare. Cereţi candidatului să proiecteze ceva. Jabe Blumenthal, autorul Excel-ului, obişnuia să roage candidaţii să proiecteze o casă. Jabe povesteşte că unii candidaţi se duceau direct la tablă şi desenau imediat un pătrat. Un pătrat! Aceştia erau Respinşi imediat. Să vedem ce urmăresc întrebările de proiectare.

  • Candidaţii buni vor căuta să obţină de la dumneavoastră mai multe informaţii legate de problemă. Pentru cine e casa? Politica mea personală este să nu angajez pe cineva care se aruncă în proiectare fără să întrebe pentru cine e casa. Uneori sunt atât de agasat, încât îi dau o lecţie întrerupându-l: "De fapt, ai uitat să întrebi, dar casa e pentru o familie de girafe oarbe de 16 metri înălţime".
  • Candidaţii nu-tocmai-inteligenţi cred că proiectarea e ca şi desenatul: iei o coală albă şi mâzgăleşti ce vrei pe ea. Candidaţii inteligenţi ştiu că proiectarea e o serie dificilă de compromisuri. O întrebare excelentă: proiectaţi un coş de gunoi pentru un colţ de stradă. Gândiţi-vă câte compromisuri sunt necesare! Coşul trebuie să fie uşor de golit, dar imposibil de furat; să fie uşor să arunci deşeuri în el, dar odată ajunse în interior, ele să nu fie scoase înapoi de vânt; să fie solid, dar ieftin; în unele oraşe, să fie proiectat special ca teroriştii să nu poată ascunde o bombă înăuntru.
  • Candidaţii creativi vă vor surprinde uneori cu un răspuns interesant, neevident. Una din întrebările mele preferate este Proiectaţi un raft de condimente pentru persoanele nevăzătoare. Inevitabil, candidaţii vor pune inscripţii în Braille pe borcănaşele cu mirodenii, cel mai adesea, pe capace – din diverse motive, pe care le veţi afla după ce aţi pus aceeaşi întrebare a suta oară. Am avut însă un candidat care a decis că e mai bine să pună condimentele într-un sertar, pentru că e mai comod să citeşti Braille de pe suprafeţele orizontale decât de pe cele verticale. (Încercaţi şi dumneavoastră!) A fost o idee atât de creativă încât am rămas surprins – purtasem zeci de interviuri până atunci, dar niciodată nu am primit un asemenea răspuns. Omul făcuse un "salt" creativ uriaş, dincolo de limitele problemei. Am angajat candidatul doar pe baza acestui răspuns (puncte slabe nu avea) şi cu timpul a ajuns unul dintre cei mai buni manageri din echipa Excel.
  • Căutaţi să vedeţi încheierea – ea face parte din Duce lucrurile la capăt. Unii candidaţi vor oscila, nefiind în stare să ia o decizie; alţii vor căuta să evite întrebările dificile. Uneori, vor lăsa întrebările grele fără răspuns şi vor încerca să meargă mai departe. Nu e bine. Candidaţii buni au o tendinţă naturală să înainteze, chiar dacă încercaţi să-i ţineţi pe loc. Dacă discuţia ajunge să bată pasul, iar candidatul spune ceva de genul "ştiţi, putem să vorbim toată ziua despre asta, dar trebuie să decidem ceva, haideţi să mergem pe varianta X" – este un semn foarte, foarte bun.

Astfel ajungem la nr. 7, Provocarea. Asta chiar o să vă placă. Pe tot parcursul interviului, notaţi-vă un lucru anume spus de candidat care să fie absolut, categoric, indiscutabil corect. Apoi spuneţi: "stai o clipă, stai o clipă" şi preţ de 2 minute faceţi pe avocatul diavolului. Contraziceţi-l deşi sunteţi sigur că are dreptate.

  • Candidaţii slabi vor ceda. Respins.
  • Candidaţii puternici vor găsi o cale să vă convingă. Unii vor scoate la bătaie tot arsenalul de fraze răsuflate din Dale Carnegie ca să vă câştige de partea lor. "Probabil, nu vă înţeleg eu bine", vor spune ei. Dar îşi vor apăra punctul de vedere. Angajat.

Să recunoaştem, într-un interviu, cei doi nu sunt pe picior egal. Există riscul ca persoana să se teamă să vă contrazică pentru că sunteţi într-o poziţie superioară. DAR... candidaţii buni vor fi atât de captivaţi de dispută încât ar putea să uite pe moment că sunt la interviu şi se vor implica trup şi suflet încercând să vă convingă. Aceştia sunt oamenii pe care vrem să-i angajăm.

În final, întrebaţi candidatul dacă are întrebări. Unora le place să observe dacă persoana va şti să pună întrebări inteligente – o tehnică standard din cărţile de interviuri. Personal, nu mă interesează deloc ce întreabă; în acest moment, decizia mea este deja luată. Vedeţi dumneavoastră, candidatul a mai discutat cu 5-6 oameni în aceeaşi zi; nimeni nu poate să scoată din pălărie 5-6 întrebări strălucite şi diferite într-o singură zi, aşa că nu mă deranjează deloc dacă omul nu are întrebări.

De fiecare dată, fără excepţie, rezervez 5 minute la sfârşitul interviului ca să fac reclamă firmei mele, Fog Creek. Este un lucru foarte important chiar dacă aţi hotărât să nu-l angajaţi. Dacă aţi avut norocul să găsiţi un candidat cu adevărat bun, acum este în interesul nostru să facem tot posibilul ca şi el să-şi dorească să lucreze la Fog Creek. Şi chiar dacă e un candidat nepotrivit, e în interesul nostru să îi placă tot ce aude despre Fog Creek Software şi să plece de la noi cu o impresie bună. Gândiţi-vă la următorul lucru: aceşti oameni nu sunt doar potenţiali angajaţi, ci şi potenţiali clienţi. Mai mult, ei vor lucra în folosul nostru: dacă au plecat cu impresia că Fog Creek este un loc de lucru nemaipomenit, nu vor ezita să le recomande prietenilor să depună şi ei un CV.

A, şi să nu uit: am promis să vă dau nişte exemple de întrebări absolut nepotrivite – evitaţi-le cu orice preţ.

Înainte de toate, nu puneţi întrebări nepermise. Orice discuţie legată de rasă, religie, sex, etnie, vârstă, eligibilitatea pentru serviciul militar, statutul de veteran, orientare sexuală sau handicap fizic este, pur şi simplu, ilegală. Dacă în CV-ul candidatului scrie că a fost în armată în 1990, nu-l întrebaţi, nici măcar de dragul conversaţiei, dacă a participat la războiul din Golf. Este o întrebare interzisă prin lege. Dacă în CV scrie că a studiat la universitatea Technion din Haifa, nu-l întrebaţi, nici măcar în treacăt, dacă este evreu. Este interzis prin lege. O discuţie destul de bună despre întrebările interzise prin lege (în Statele Unite - n.t.) se găseşte aici. (Totuşi, celelalte întrebări de interviu înşirate acolo sunt cam stupide).

Mai departe, evitaţi orice întrebări din care să rezulte că vă interesează unele lucruri (sau că îl veţi discrimina pe baza lor) care de fapt nu vă interesează şi oricum nu aveţi de gând să faceţi vreo discriminare. Primul exemplu care îmi vine în minte, este să întrebi dacă are copii sau dacă este căsătorit. Candidatul va avea impresia că nouă ni se pare că oamenii cu copii nu acordă suficient timp lucrului, sau că o persoană căsătorită va avea la un moment dat un copil şi va cere, din senin, concediu de maternitate.

În final, evitaţi întrebările din categoria "aranjaţi 6 chibrituri de lungime egală astfel încât să formeze 4 triunghiuri echilaterale identice". Faptul că i-a picat sau nu "fisa" la o întrebare de genul "aha!" nu vă ajută cu nimic să stabiliţi dacă omul e "inteligent/duce lucrurile la capăt".

Interviul este mai mult artă decât ştiinţă, dar, dacă nu uitaţi principiul Inteligent/Duce lucrurile la capăt, sunteţi pe drumul cel bun. Când aveţi ocazia, întrebaţi-vă colegii de birou care sunt întrebările lor preferate şi la ce fel de răspunsuri se aşteaptă. În cantina Clădirii nr. 16 din Redmond, acesta e un subiect inepuizabil de conversaţie.



Acest articol a aparut initial in engleza cu numele The Guerrilla Guide to Interviewing  

Joel Spolsky este fondatorul Fog Creek Software, o mica firma de software din New York City. El a absolvit Universitatea Yale si a lucrat ca programator si manager la Microsoft, Viacom si Juno.


Continutul acestor pagini reprezinta opinia unei singure persoane.
Tot continutul Copyright ©1999-2005 de Joel Spolsky. Toate Drepturile Rezervate.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky