le recrutement des programmeurs avec un test écrit en anglais

Anis avait trouvé un questionnaire LAMP en anglais qu’il s’est empressé d’envoyer a Bechir. Bechir me l’a envoyé pour que je le traduise. J’avais des candidats qui venaient pour entretien l’après midi même, alors j’ai pris le questionnaire tel quel (en anglais) et je leurs ai fait passer.

depuis une année a peu prés nous avons commence a prendre tres au sérieux le recrutement et la gestion des programmeurs. nous sommes une petite entreprise de 12 employés et normalement on ne devrait pas se soucier de cela. or les dernières années nous avons eu quelques difficultés :

  • les sociétés offshore ont commencé a nous piquer nos programmeurs expérimentés.
  • il y a très peu de programmeurs expérimentés sur le marché du travail et souvent leurs rapport qualité / prix (qualité de la formation qu’il a déjà / prix de la formation qu’on va lui donner + salaire qu’il demande) n’était pas bon. ils sont très mal formés.
  • les nouveaux diplômés nécessitent beaucoup de formation. ils n’ont tout simplement pas étés formés à la POO. et je mesure mes mots. ils croient tous qu’ils l’ont été et je suppose aussi que leurs éducateurs pensent qu’ils les ont formés, mais quand ils arrivent chez nous ils sont incapables de traduire ce qui se passe dans la vie réelle en programme informatique. une anecdote qui fait beaucoup rire Bechir : c’est un candidat au cours d’un entretien a qui je demande s’il connaît la POO et qui me réponds avec beaucoup d’assurance : « oui, j’ai programmé en java à l’école ».
  • Notre métier est difficile. Pour vous en rendre compte, mettez vous dans la peau d’un Anglais. vous programmez dans votre langue maternelle, c’est à dire que vous programmez comme si vous parliez à votre mère. toutes la documentation est écrite dans votre langue et expliquée avec votre façon de penser. Votre expérience journalière de la communication est uniforme.

Il n’y a pas très longtemps, avant que Anis ne parte travailler ailleurs, nous avons recruté un programmeur expérimenté, pour nous apercevoir au bout de 3 mois qu’il n’était pas assez compétent et qu’il lui faudrait très longtemps pour l’être. Nous avons étés beaucoup déçus, mais surtout, nous nous sommes rendus compte que nos méthodes d’évaluation étaient à revoir.

Jusque là une phase de recrutement se passait de la manière suivante : on sort une annonce, on réceptionne les appels, on prend des rendez vous, on fait des entretiens face à face. et suivant l’entretien, on retiens les candidats valables. si on n’en a pas assez, on recommence. Le problème est clair : dans ce processus il n’y a rien qui dit comment nous allons faire pour évaluer les candidats. En fait le jugement était laissé à celui qui fait l’entretien, souvent Moi ou Bechir, et il faut dire que ça a marché assez bien jusqu’au dernier incident.

Quand je rencontrais un candidat, je ne me posais jamais la question de comment l’évaluer. J’étais bien sur capable de reconnaître un bon programmeur rien qu’a sa façon de marcher… Oui, mais comment je faisais? c’est quoi? un instinct? Et est ce que j’étais capable de reconnaître un mauvais candidait? c’est quoi la méthode? j’étais très sur de mes compétences, bien sur (l’ego, y’a rien a faire), mais Bechir comment il fait? aucun de nous n’y avais jamais réfléchi.

C’est Bechir qui à eu l’idée pendant une réunion. il a dit : « on n’a qu’a leur faire passer un test écrit » . c’était une très bonne idée. c’est une méthode d’évaluation éprouvée et qui avait pour avantage de correspondre à la mentalité des jeunes diplômés. l’autre avantage c’est que une partie du processus devient maîtrisée. pour changer d’évaluation nous avions désormais une méthode : changer les questions du test écrit.

Suite a cela Anis avait trouvé un questionnaire LAMP en anglais (une liste de questions qui demandent une réponse courte) qu’il s’est empressé d’envoyer a Bechir. Bechir me l’a envoyé pour que je le traduise. J’avais des candidats qui venaient pour entretien l’après midi même, alors j’ai pris le questionnaire tel quel (en anglais) et je leurs ai fait passer.

Depuis, nous utilisons cette méthode avec succès. Les questions en anglais, les réponses en français et le sujet : PHP et Mysql. Après quelques mois d’utilisation de cette méthode, je crois que je comprends pourquoi elle est efficace : en mêlant compétences linguistiques et techniques, cette méthode permet de donner une idée assez précise des compétences opérationnelles du candidat. Nous n’avons pas besoin de savoir s’ils est capable de traduire un pièce de Shakespeare, nous avons juste besoin de savoir s’il peut se débrouiller en tant que programmeur. Et ça ne nous intéresse pas non plus de savoir s’il a compris tous les mots de la question ou s’il à fait des fautes en français. Les meilleurs candidats ont d’ailleurs souvent répondu aux questions sous forme de « tirets » (sans aucune structure grammaticale complexe).

Avec ce test, l’innovation se situe en réalité dans le fait de considérer de manière uniforme les compétences linguistiques nécessaires au programmeur : Anglais, CSS, Français, HTML, JavaScript, PHP et SQL (ordonnés alphabétiquement). Cependant dans l’évaluation nous avons utilisé deux barèmes : une note pour les réponses justes et une note pour les questions comprises. Le questionnaire comprends beaucoup de questions et ils est très difficile pour un candidat de répondre a toutes en 20 minutes. Donc nous avons le loisir de prendre en considération les mauvaises réponses, ce qui donne plus de précision à l’évaluation (on va pas s’en priver). Une note de bon candidat ressemble a ceci : 5 bonnes réponses / 11 questions comprises / 46 questions en tout.

Nous avons aussi gardé l’entretien dans la procédure. Il nous semblait bizarre d’évaluer une personne avec qui on allait travailler sans la voir personnellement. mais le questionnaire nous a permis de réduire le temps de l’entretien a 10 min tout en nous permettant d’évaluer plus et mieux. pour cela nous avons réorganisé notre workflow. avant on prenait 1 candidat toutes les 30 minutes : un entretien durait entre 15 et 30 minutes. maintenant on prend 6 candidats toutes les heures. on leurs fait faire le questionnaire dans la salle de réunion et pendant ce temps la, on les appelle 1 par 1 pour faire l’entretien. avant on faisait 8 candidats dans la matinée, maintenant on en fait 24.

Nous avons un nouveau Anis dans l’équipe. Cet Anis là, n’était pas notre meilleur candidat a l’entretien. en revanche il était assez bon au questionnaire. Nous l’avons pris et nous ne l’avons pas regretté. il est de plus en plus bon, et je ne peux pas m’empêcher de penser qu’on aurait pus passer à côté sans le questionnaire. Je suis franchement satisfait de notre nouvelle méthode d’évaluation.

7 commentaires sur “le recrutement des programmeurs avec un test écrit en anglais

  1. Nous rencontrons aussi ce genre de problème. Nous avons nous aussi utilisé des tests français ou anglais.
    Le résultat reste le même, on pas suffisament de développeur expérimentés.
    Mais la bonne vielle méthode de l’entretien reste ma favorite, car on se rend compte de la bêtise des candidats.
    Sutout ceux qui demandent 1000 dinars de salaire, alors une JOIN LEFT il n’en a jamais vu !

  2. Zyed, je viens de te l’envoyer par mail. Mais, je te prie de ne pas le publier (ne pas le donner a nos futurs candidats), je compte bien garder le même questionnaire encore quelques mois.

  3. Si vous voulez ameliorer vos techniques de recrutements d’informaticiens, je vous conseille:
    http://www.joelonsoftware.com/

    C’est un gars qui a été chef de projet Excel 5 chez Microsoft autant dire un dinausore 😉
    Vu son experience, je croie que c’est le meilleur que j’ai pu trouvé au bout de quatre ans de recherche. Il y a aussi http://www.geekinterview.com/ pour des questions ciblés.

    Cela fait quatre ans que je bosse dans le metier et je commence à developper ma propre theorie sur la chose ( j’ai même fait 20 entretients pendant 3 mois pour trouver quelqu’un de valable ), en tout cas sur le recrutement de nouveau diplomé, dans ma boite, on ne recrute pas beaucoup de gens avec une experience prealable de peur qu’ils ne soient déformé par les pratiques de management d’un autre temps qui prévalent en tunisie.

    Le principal probleme c’est que le niveau des ingenieurs nouvellement diplomé ne cesse de baisser. Donc tu ne peux pas trop pousser les questions. Si tu trouves deja quelqu’un qui maitrise les bases, tu peux te considérer chanceux. Mon chef (un francais) m’a même reproché une fois d’etre trop tendre avec les candidats 🙂

    Je commence generalement par poser des questions de bases sur l’informatique (comment un os fonctionne, comment on compile du code,des notion de OO,…).

    On pose ensuite des questions simples ecrire un algo en pur C pour inverser une chaine de caractéres…Personne ne reussira à ecrire sur papier un code qui compile du premier coup…cependant, ce test permet de distinguer ceux qui ont reellement fait quelque chose pendant leur etude, de ceux qui ont passer leur temps à bachoter…

    Enfin, pour mesurer la creativité de la personne et sa resistance face au stress, on pose un petit casse tête…le but etant de voir la logique de la personne et non de trouver quelqu’un qui resout le casse tête…

    J’espere que mon experience te sera utile:)

  4. Minus, merci de partager ton expérience avec nous.

    il y a un truc que je n’ai pas compris. tu leurs demande d’écrire du code sur un papier pendant l’entretien? tu leurs pose les question oralement? est ce que tu gardes ce papier ou est ce que une fois l’entretien fini, l’évaluation est finie?

  5. En fait, une fois le code ecrit. il y a certainement des erreurs dans le resultat. Il faut alors orienter le candidat et voir si c’est simplement du à un oubli ou alors qu’il est vraiment « nul »… genre un variable mal intialisé ou un pointeur qui conduit vers un segfault…Le but est donc de voir est ce que le candidat fait tourner ces meninges. Comme disait un gars que je connaissaient « there are two sort of persons: Those who understand pointers and those that not. »
    Le but du process est vraiment de travailler le candidat pour voir sa logique et sa façon de penser.

    En general, si c’est un bon il faut sortir avec une conclusion du genre: ce candidat a une reflexion « top-down » (comprendre de facon sommaire puis comprendre le detail » ou alors « down-top » (comprendre tous les details avant de pouvoir avancer). Les deux types de personnes sont utiles dans un équipe ca ne veut pas forcement dire que l’un des profils est meilleur que l’autre, cela depend du travail que vous avez.

    Pour le papier je le garde généralement mais bon il est n’est pas utile en lui même.

    Ces derniers jours j’essaye de developper des techniques de recrutement pour des gens experiementés mais je ne crois pas que la même approche est transposable directement.

Laisser un commentaire