L'embauche de professionnels de l'informatique n'est pas une tâche facile. Premièrement, il y a une pénurie de personnel expérimenté sur le marché maintenant, ils le comprennent. Souvent, les candidats ne sont pas prêts à consacrer beaucoup de temps aux «événements de qualification» de l'employeur, s'ils ne sont pas intéressés auparavant. Auparavant, la pratique populaire de «faisons un test pendant plus de 8 heures» ne fonctionne plus. Pour une évaluation initiale des connaissances et de la sélection des candidats avant de mener un entretien technique à grande échelle, il faut utiliser d'autres méthodes plus rapides. Deuxièmement, pour une évaluation qualitative des connaissances et des compétences, il est nécessaire de posséder ces compétences vous-même ou d'impliquer un collègue possédant de telles compétences. Ces difficultés peuvent être résolues en utilisant les méthodes que je vais discuter dans cet article. J'applique moi-même ces méthodes et je me suis fait une sorte de note.
Donc, mes 7 meilleures façons de tester rapidement les compétences des informaticiens avant l'entretien:
7. Examinez le portefeuille, les exemples de code et les référentiels candidats ouverts.
6. Une courte tâche de test pendant un certain temps (effectuée en 30 à 60 minutes).
5. Court entretien express sur les compétences par téléphone / skype (sous forme de questionnaire, uniquement en ligne et par la voix).
4. Live-Doing (Coding) - nous résolvons une tâche simple en temps réel avec un écran partagé.
3. Questionnaires avec des questions ouvertes sur l'expérience.
2. Des tests courts avec des options de réponse, limitées dans le temps.
1. Une tâche de test en plusieurs étapes, la première étape est effectuée avant l'entretien.
Ensuite, j'examinerai en détail ces méthodes, leurs avantages et leurs inconvénients, et les situations dans lesquelles j'utilise d'une manière ou d'une autre une manière de tester rapidement les compétences des programmeurs.

Dans un article précédent sur l'entonnoir de recrutement
habr.com/en/post/447826, j'ai mené une enquête auprès des lecteurs sur la façon de tester rapidement les compétences des informaticiens. Dans cet article, je parle des méthodes que j'aime personnellement, pourquoi je les aime et comment je les utilise. Je pars de la première place et termine septième.
1. Une tâche de test en plusieurs étapes, la première étape est effectuée avant l'entretien
Je pense que c'est la meilleure façon de tester les compétences des développeurs. Contrairement à la tâche de test traditionnelle, lorsque vous dites «gardez la tâche et allez-y», dans ma version, le processus d'exécution de la tâche de test est divisé en étapes - discussion et compréhension de la tâche, conception de la solution et évaluation des ressources requises, plusieurs étapes de la mise en œuvre de la solution, documentation et livraison - acceptation de la décision. Cette approche est plus proche de la technologie de développement de logiciels moderne que de «prendre et faire». Détails ci-dessous.
Dans quels cas dois-je utiliser cette méthode
Pour mes projets, j'embauche généralement des employés à distance qui développent une partie séparée, séparée et relativement indépendante du projet. Cela réduit le besoin de communication entre les employés, souvent à zéro. Les employés ne communiquent pas entre eux, mais avec le chef de projet. Par conséquent, il est important pour moi d'évaluer immédiatement la capacité d'une personne à comprendre rapidement un problème, à poser des questions de clarification, à élaborer indépendamment un plan d'action pour résoudre le problème, à évaluer les ressources et le temps nécessaires. En cela, une tâche de test en plusieurs étapes m'aide beaucoup.
Comment mettre en œuvre
Nous distinguons et formulons une tâche indépendante et originale liée au projet sur lequel le développeur devra travailler. En tant que tâche, je décris généralement un prototype simplifié de la tâche principale ou du futur produit, pour la mise en œuvre duquel le développeur devra faire face aux principaux problèmes et technologies du projet.
La première étape de la tâche de test consiste à vous familiariser avec la tâche, à clarifier l'incompréhensible, à concevoir des solutions, à planifier les étapes pour résoudre le problème et à estimer le temps nécessaire pour terminer les étapes individuelles et l'ensemble de la tâche de test. À la sortie, je m'attends à un document de 1 à 2 pages où le plan d'action du développeur et l'évaluation du temps sont écrits. Je demande également aux candidats d'indiquer quelles étapes ils souhaiteraient mettre en œuvre pleinement pour confirmer leurs compétences dans la pratique. Aucune programmation n'est nécessaire jusqu'à présent.
Cette tâche (la même chose) est distribuée à plusieurs candidats. Les candidats devraient recevoir des réponses le lendemain. Ensuite, après 2-3 jours, lorsque toutes les réponses sont reçues, nous analysons ce que les candidats nous ont envoyé et quelles questions de clarification ils ont posées avant de procéder à la mission. Sur la base de ces informations, vous pouvez inviter à l'étape suivante le nombre de candidats dont vous avez besoin.
La prochaine étape est une courte interview. Nous avons déjà quelque chose à dire. Le candidat imagine déjà à peu près le domaine du projet, sur lequel il devra travailler. La tâche principale de cet entretien est de répondre aux questions techniques du candidat et de le motiver à terminer la tâche de test principale - programmer la partie de la tâche qu'il a lui-même choisie. Ou la partie dont vous souhaitez voir l'implémentation.
Il est toujours très intéressant d'observer quelle partie de la tâche le développeur veut mettre en œuvre. Certaines personnes préfèrent déployer la structure du projet, décomposer la solution en modules et classes, c'est-à -dire se déplacer de haut en bas. Certains d'entre eux distinguent une sous-tâche distincte, la plus importante à leur avis, sans écrire la solution dans son ensemble. Autrement dit, ils vont de bas en haut - de la sous-tâche la plus difficile à la solution entière.
Les avantages
On peut voir l'érudition du candidat, l'applicabilité de ses connaissances à notre projet, le développement des compétences en communication. Il nous est également facile de comparer les candidats entre eux. Habituellement, je rejette les candidats qui ont donné des estimations trop optimistes et trop pessimistes du temps nécessaire pour terminer la tâche. Bien sûr, j'ai ma propre estimation de temps. Une petite évaluation du candidat indique très probablement que la personne ne s'est pas plongée dans la tâche correctement et n'a effectué ce test que superficiellement. Une évaluation trop longue indique généralement que le candidat a une mauvaise compréhension du sujet, n'a aucune expérience des sujets dont j'ai besoin. Je ne rejette pas immédiatement les candidats sur la base de leur évaluation, mais je vous demande de motiver votre évaluation si l'évaluation n'a pas déjà été suffisamment motivée.
Cela peut sembler compliqué et coûteux pour certains. Mon évaluation de la complexité de l'application de cette méthode est la suivante - il faut 30 à 60 minutes pour décrire la tâche de test, puis 15 à 20 minutes pour vérifier la réponse de chaque candidat. Pour les candidats, l'achèvement d'une telle tâche de test ne prend généralement pas plus de 1 à 2 heures, alors qu'ils sont immergés dans l'essence des tâches qu'ils devront résoudre davantage. Déjà à ce stade, le candidat peut ne pas être intéressé, et il refuse de communiquer avec vous, passant un peu de temps.
Inconvénients
Tout d'abord, vous devez proposer une tâche de test originale, isolée et volumineuse, ce n'est pas toujours possible. Deuxièmement, tous les candidats ne comprennent pas immédiatement que la première étape ne nécessite pas de programmation. Certains commencent immédiatement la programmation et disparaissent pendant quelques jours, puis envoient une tâche de test entièrement terminée. Officiellement, ils n'ont pas fait face à cette tâche de test, car ils n'ont pas fait ce qui leur était demandé. Mais en même temps, ils s'en sortaient s'ils envoyaient une solution adéquate à l'ensemble de la tâche de test. Pour éliminer de tels incidents, j'appelle généralement tous les candidats qui ont reçu la tâche, 2 jours après la mission et je sais comment ils vont.
2. Tests courts avec options de réponse, limités dans le temps
J'utilise rarement cette méthode, même si je l'aime beaucoup, et je la considère comme l'un des meilleurs moyens de vérifier rapidement les compétences. J'écrirai un article séparé sur cette méthode dans un avenir proche. Ces tests sont largement utilisés dans divers domaines de la connaissance. L’exemple le plus frappant et le plus typique est un examen théorique pour obtenir un permis de conduire. En Russie, cet examen contient 20 questions auxquelles il faut répondre en 20 minutes. Une erreur est autorisée. Avec deux erreurs, vous devez répondre avec précision à 10 questions supplémentaires. Cette méthode est très automatisée.
Malheureusement, je n'ai pas vu de bonnes implémentations de tels tests pour les programmeurs. Si vous connaissez de bonnes implémentations prêtes à l'emploi de tels tests pour les programmeurs, veuillez écrire dans les commentaires.
Comment mettre en œuvre
J'ai travaillé avec des implémentations indépendantes de ces tests par les employeurs lors de l'exécution des commandes en tant que recruteur-sous-traitant. Il est tout à fait possible de mettre en œuvre un tel test. Par exemple, en utilisant Google Forms. Le problème principal est la compilation des questions et des options de réponse. En règle générale, l'imagination des employeurs suffit pour 10 questions. Malheureusement, dans Google Forms, il n'est pas possible d'implémenter la rotation des questions à partir du pool et des délais. Si vous connaissez un bon outil en ligne pour créer vos propres tests, où vous pouvez limiter le temps pour réussir le test et organiser la sélection de différentes questions pour différents candidats, veuillez écrire sur ces services dans les commentaires.
Dans quels cas dois-je utiliser cette méthode
Maintenant, j'utilise cette méthode à la demande des employeurs, s'ils ont des tests prêts à l'emploi qui peuvent être donnés aux candidats. Il est également possible de combiner ces tests avec la quatrième méthode de mon évaluation - nous demandons au candidat de partager son écran et de passer le test. Dans le même temps, vous pouvez discuter des questions et des options de réponse avec lui.
Les avantages
Avec une bonne implémentation, cette méthode est autonome. Le candidat peut choisir un moment opportun pour lui de passer le test et vous n'avez pas besoin de passer beaucoup de temps.
Inconvénients
Une mise en œuvre de haute qualité de cette méthode coûte assez cher et n'est pas très pratique pour une petite entreprise, qui embauche occasionnellement de nouveaux employés.
3. Questionnaires avec des questions ouvertes sur l'expérience
Il s'agit d'un ensemble de questions ouvertes suggérant à un candidat de raisonner en fonction de son expérience. Cependant, nous n'offrons pas d'options de réponse. Les questions ouvertes sont celles auxquelles il est impossible de répondre de manière simple et monosyllabique. Par exemple, vous vous souvenez de la tâche la plus difficile que vous ayez résolue avec le cadre de tel ou tel? Quelle a été la principale difficulté pour vous? Il est impossible de répondre de manière monosyllabique à ces questions. Plus précisément, la seule réponse simple est que je n'ai pas une telle expérience, je n'ai pas travaillé avec cet outil.
Comment mettre en œuvre
Facile à implémenter à l'aide de Google Forms. L'essentiel est de poser des questions. J'utilise plusieurs modèles standard.
Parlez-nous du dernier projet que vous avez réalisé avec l'aide de XXX, quel a été le plus difficile pour vous dans ce projet?
Quels sont pour vous les principaux avantages de la technologie XXX, donnez des exemples tirés de votre expérience?
Après avoir choisi la technologie XXX, quelles autres alternatives avez-vous envisagées et pourquoi avez-vous choisi exactement XXX?
Dans quelles situations préféreriez-vous AAA à BBB?
Parlez-nous de la tâche la plus difficile que vous avez résolue avec l'aide de XXX, quelle a été la principale difficulté?
Par conséquent, ces conceptions peuvent être appliquées à de nombreuses technologies de votre pile de travail. Il n'est pas facile de répondre à de telles questions avec des phrases modèles du réseau, car elles sont personnelles et concernent une expérience personnelle. En répondant à ces questions, le candidat garde généralement à l'esprit que lors de l'entretien, l'une de ses réponses peut être développée sous forme de questions supplémentaires. Par conséquent, s'il n'y a pas d'expérience, alors les candidats se renient souvent, se rendant compte qu'une conversation ultérieure peut être dénuée de sens.
Dans quels cas dois-je utiliser cette méthode
Lorsque je travaille avec des commandes pour la sélection de spécialistes, si le client n'a pas proposé sa propre méthode de vérification primaire des compétences, j'utilise cette méthode. J'ai déjà préparé des questionnaires sur un certain nombre de sujets et cela ne me coûte rien d'appliquer cette méthode à un nouveau client.
Les avantages
Facile à implémenter avec Google Forms. De plus, une nouvelle enquête peut être réalisée sur la base de la précédente, en remplaçant les noms des technologies et des outils par d'autres. Par exemple, une enquête sur l'expérience avec React ne sera pas très différente d'une enquête sur l'expérience avec Angular.
La compilation d'un tel questionnaire prend 15 à 20 minutes, et les candidats consacrent généralement 15 à 30 minutes aux réponses. Le temps passé est limité, mais nous obtenons des informations sur l'expérience personnelle du candidat, à partir desquelles nous pouvons prendre une pause et rendre chaque entretien avec les candidats unique et plus intéressant. En règle générale, la durée de l'entretien après un tel questionnaire est moindre, car vous n'avez pas à poser de questions simples du même type.
Inconvénients
Pour distinguer la réponse du candidat de celle de "google", il faut comprendre le sujet. Mais cela vient rapidement avec l'expérience. Après avoir consulté 10 à 20 réponses, vous apprendrez à distinguer vos propres réponses originales des candidats trouvés sur le réseau.
4. Live-Doing (Coding) - nous résolvons une tâche simple en temps réel avec un écran partagé
L'essence de cette méthode est de demander au candidat de résoudre un problème simple et d'observer le processus. Le candidat peut utiliser n'importe quoi, il n'y a aucune interdiction de trouver des informations sur le réseau. Le candidat peut ressentir du stress en étant surveillé. Tous les candidats ne sont pas d'accord avec cette option pour évaluer leurs compétences. Mais, d'autre part, cette méthode vous permet de voir quel type de connaissances une personne a dans sa tête, ce qu'elle peut utiliser même dans une situation stressante et quelles informations elle ira à un moteur de recherche. Le niveau du candidat est presque immédiatement perceptible. Les débutants utilisent les fonctionnalités les plus élémentaires, voire primitives du langage, commencent souvent à implémenter manuellement les fonctionnalités des bibliothèques de base. Les candidats plus expérimentés connaissent bien les classes de base, les méthodes, les fonctions et peuvent rapidement résoudre un problème simple - 2 à 3 fois plus rapidement que les débutants, en utilisant les fonctionnalités familières de la bibliothèque de langues de base. Même les candidats les plus expérimentés commencent généralement par des discussions sur différentes approches pour résoudre le problème et présentent plusieurs solutions, demandent-ils - la mise en œuvre de laquelle des options je veux voir. Tout ce que fait le candidat peut être discuté. Même basés sur la même tâche, les entretiens sont très différents, de même que les décisions des candidats.
En variante de cette méthode, vous pouvez demander au candidat de passer une sorte de test pour tester les compétences professionnelles, justifiant le choix de l'une ou l'autre des options de réponse. Contrairement aux tests conventionnels, vous découvrirez à quel point le choix des réponses était raisonnable. Vous pouvez proposer vos propres variantes de cette méthode, en tenant compte des particularités de votre poste vacant.
Comment mettre en œuvre
Cette méthode est facilement mise en œuvre à l'aide de Skype ou d'un autre système de communication vidéo similaire qui vous permet de montrer l'écran. Les tâches peuvent être inventées par vous-même ou utiliser des sites comme Code Wars, une variété de tests prêts à l'emploi.
Dans quels cas dois-je utiliser cette méthode
Lorsque je sélectionne des programmeurs et que le curriculum vitae ne précise pas clairement le niveau de connaissances du candidat, je propose aux candidats un entretien dans ce format. D'après mon expérience, environ 90% des développeurs ne s'en soucient pas. Ils sont heureux que dès la première entrevue, une conversation sur la programmation commence, et non des questions stupides telles que "qui vous voyez-vous dans 5 ans".
Les avantages
Malgré le stress et l'excitation du candidat, le niveau général de compétences du candidat est immédiatement et clairement visible. Les compétences communicatives du candidat deviennent également clairement visibles - comment il raisonne, comment il explique et motive sa décision. Si vous avez besoin de discuter du candidat avec des collègues, il est facile de faire une vidéo à partir de votre écran, puis de montrer l'interview à d'autres personnes.
Inconvénients
La communication peut être interrompue. En raison de l'excitation, le candidat peut commencer à émousser. Dans cette situation, vous pouvez l'interrompre et lui laisser le temps de réfléchir à la tâche seule, rappeler en 10 minutes et continuer. Si après cela, le candidat se comporte étrangement, alors il vaut la peine d'essayer une autre façon d'évaluer les compétences.
5. Court entretien express sur les compétences par téléphone / skype
Il s'agit simplement d'une conversation vocale sur le téléphone, Skype ou un autre système de communication vocale. Dans le même temps, nous pouvons évaluer les compétences communicatives du candidat, son érudition et ses horizons. Vous pouvez utiliser le questionnaire comme plan de conversation. Alternativement, vous pouvez discuter plus en détail avec le candidat de ses réponses à votre questionnaire.
Comment mettre en œuvre
Nous sommes d'accord avec le candidat sur la conversation et l'appel. Nous posons des questions, fixons des réponses.
Dans quels cas dois-je utiliser cette méthode
J'utilise généralement cette méthode avec le questionnaire lorsque les réponses du candidat me paraissent originales ou peu convaincantes. Je discute avec le candidat des questions du questionnaire et je découvre son opinion plus en détail. Je considère qu'une telle conversation est obligatoire lorsque les compétences communicatives du candidat sont importantes, la capacité d'exprimer simplement et clairement ses pensées.
Les avantages
Sans parler d'une voix professionnelle, il n'est généralement pas possible de déterminer dans quelle mesure un candidat est capable d'exprimer ses pensées.
Inconvénients
Le principal inconvénient est le coût supplémentaire du temps. Par conséquent, j'utilise cette méthode en plus d'autres, si nécessaire. De plus, il y a des candidats qui parlent très bien sur des sujets professionnels, mais dans la pratique ils en savent peu. Si vous avez besoin d'un programmeur qui résoudra les problèmes de manière cohérente et efficace, il est préférable de choisir une méthode différente de test de compétence initial. Si vous avez besoin d'un gestionnaire ou d'un analyste, c'est-à -dire d'un spécialiste qui traduit d'un langage humain en langage "programmeur" et vice versa, cette méthode de test des compétences sera très utile.
6. Une courte tâche de test pendant un certain temps (effectuée en 30-60 minutes)
Pour un certain nombre de professions, la capacité d'un spécialiste à trouver rapidement une solution à un problème est importante. En règle générale, les tâches sont résolues simplement, mais il est important de résoudre le problème.
Comment mettre en œuvre
Nous sommes d'accord avec le candidat sur le temps pour terminer la tâche de test. A l'heure fixée, nous envoyons au candidat les conditions du problème et découvrons s'il a compris ce qu'on attendait de lui. Nous notons le temps mis par le candidat pour résoudre le problème. Nous analysons la solution et le temps.Dans quels cas dois-je utiliser cette méthode
Dans ma pratique, cette méthode a été utilisée pour tester les compétences des spécialistes du support technique, des programmeurs SQL et des testeurs (QA). Les tâches étaient comme «trouver les zones problématiques et trouver comment résoudre le problème», «optimiser la requête SQL pour qu'elle fonctionne 3 fois plus rapidement», etc. Bien sûr, vous pouvez créer vos propres tâches. Pour les développeurs novices, cette méthode peut également être utilisée.Les avantages
Nous consacrons notre temps uniquement à la compilation et à la vérification des affectations. Le candidat peut choisir un moment qui lui convient pour terminer la tâche.Inconvénients
Le principal inconvénient est que vos tâches ou similaires peuvent être publiées sur le réseau, vous devez donc avoir un certain nombre d'options et proposer régulièrement de nouvelles tâches. Si vous avez besoin de tester la vitesse de réaction et les horizons, je choisis personnellement les tests de temps (méthode numéro 2).7. Examiner le portfolio, les exemples de code, les référentiels ouverts des candidats
C'est peut-être la façon la plus compréhensible de tester les compétences, à condition que vos candidats aient un portfolio et que vous ayez des spécialistes dans votre équipe de sélection qui puissent évaluer votre portfolio.Comment mettre en œuvre
Nous étudions le CV des candidats. Si nous trouvons des liens vers le portfolio, alors étudiez. S'il n'y a aucune référence au portfolio dans le CV, alors nous demandons le portfolio au candidat.Dans quels cas dois-je utiliser cette méthode
Dans ma pratique, cette méthode a été utilisée très rarement. Rarement dans le portefeuille de candidats, vous pouvez trouver du travail sur le sujet. Les candidats expérimentés préfèrent souvent cette méthode au lieu d'une tâche de test typique et sans intérêt. Ils disent - "regardez mon rap, il y a des dizaines d'exemples de mes solutions à divers problèmes, vous verrez comment j'écris du code."Les avantages
Fait gagner du temps aux candidats. S'il reste du temps pour les professionnels de votre équipe, il est possible de filtrer rapidement les mauvais sans communication avec les candidats. Pendant que le recruteur recherche des candidats, son collègue évalue le portefeuille. Il s'avère que le travail est assez rapide et parallèle.Inconvénients
Cette méthode ne peut pas être appliquée à toutes les professions informatiques. Pour évaluer le portefeuille, vous devez avoir développé vous-même des compétences. Si vous n'êtes pas un spécialiste, vous ne pourrez pas évaluer qualitativement le portefeuille.Chers collègues, je vous invite à discuter de ce que vous lisez dans les commentaires. Dites-nous quelles autres méthodes de tests de compétences rapides utilisez-vous?