Suicide Squad Comment nous recrutons les développeurs juniors les plus féroces

Dans un article précédent sur la mise en œuvre de la méthodologie Agile dans notre startup, j'ai abordé en partie la question de la gestion du personnel. Dans cet article, je vais vous expliquer comment nous recrutons ce personnel, quelle classification nous utilisons, quels tests et méthodes nous vérifions leur professionnalisme et leur adéquation.



Modèle de recrutement


Comme dans toute jeune entreprise, notre travail dans le domaine de la sélection du personnel a commencé par le développement d'un modèle de recrutement. La situation était la suivante: nous avions déjà une équipe d'employés «autochtones», tous hautement qualifiés et occupant des postes de direction. Ces personnes ont dû être déchargées d'une manière ou d'une autre, c'est-à-dire que les spécialistes du marché n'avaient pas besoin d'acquérir des compétences.Par conséquent, pendant la période d'expansion active du personnel, le nombre écrasant de sièges vacants étaient des postes de juin. Avant de placer les postes vacants sur les sites de recrutement, nous avons décidé d'établir notre classement interne selon le niveau de qualification et selon les exigences des différentes catégories de développeurs.



La classification suivante a été dérivée:

Niveau 0 - développeur fullzero, une personne a suivi quelques cours, a appris les constructions de base et la sémantique d'un langage, a lu plusieurs articles sur le Haber sur des sujets de battage médiatique, en conséquence, le programmeur a un autocollant maximum sur l'ordinateur portable.
Niveau 1 - un développeur junior, une personne qui écrit bien le code, connaît bien les piles, connaît les tendances actuelles, sait comment décomposer un problème et le résoudre par lui-même.
Niveau 2 - développeur intermédiaire, une personne possède toutes les qualités juniors ci-dessus, et est également capable d'exprimer son opinion compétente sur le problème résolu sur la base d'une analyse des ressources, et peut influencer le cours de sa mise en œuvre dans le cadre de sa chaîne d'outils choisie.
Niveau 3 - développeur senior, il est aussi un leader, c'est un père, un père, une personne qui transforme et projette des tâches d'un plan d'affaires à un plan de développement, distribue ces tâches sur les intermédiaires et en juin, contrôle et aide à leur mise en œuvre.

Des critères ont été ajoutés à cette classification: connaissance de notre chaîne d'outils, adéquation, expérience de travail d'environ 1-2 ans, et au moins un projet mis en œuvre avec succès, capacité à exprimer clairement ses pensées, la présence de compétences en communication, la capacité d'admettre ses erreurs et ses lacunes (autocritique saine - c'est un outil puissant). La priorité pour l'ensemble, comme mentionné ci-dessus, a été accordée aux développeurs juniors, car notre expérience dans le traitement des intermédiaires a montré que, en règle générale, ces personnes sont déjà gâtées par une sorte de pile technologique et des approches `` uniques '' d'autres sociétés. De plus, la pratique a montré qu'il y a un grand nombre de personnes sur le marché qui sont habituées à vivre dans une structure verticale rigide, où elles entrent sur la table du matériel aldente à partir de tâches mâchées qui ne peuvent être remplies que sous la forme d'un code, et la tâche des personnes âgées est de battre les jambages avec un bâton sur la tête . Mais le fait est que lorsque l'action se déroule dans une jeune startup et que l'équipe ne compte qu'une trentaine de personnes, chacune étant chargée sous un réservoir plein, il n'y a pas de temps pour une décomposition personnelle pour chaque employé, car cela équivaudra à terminer cette tâche. Dans de telles conditions, lorsque l'écriture de code prend environ dix pour cent du temps d'exécution total de la tâche, il est nécessaire d'inclure non seulement les doigts, mais aussi la tête. C'est exactement ce qui est écrit dans la «Bible» de tous les programmeurs - Stephen McConnell «Code idéal» alias Redbook (à ne pas confondre avec le magazine américain des femmes).

Et puis une vague nous a couverts ...




Ceux qui ne sont pas entrés chez nous, à commencer par des personnages qui croient qu'ils sont intermédiaires parce qu'ils ont écrit une application entière sur Android, qui a jusqu'à 37 téléchargements sur Google Play, se terminant par des gens qui se considèrent comme des super signataires parce qu'ils ont travaillé comme développeurs de premier plan dans certains studios, bien que leur travail, dans l'ensemble, ait été réduit au transfert de tâches du département de conception au département de développement, c'est-à-dire qu'ils n'avaient aucune expérience de la conception ou de la gestion du développement, mais il n'y avait que beaucoup d'ambition et beaucoup d'ambition . Il y avait aussi ceux qui, avec sept mois d'expérience en programmation, se considéraient comme des personnes âgées et exigeaient un salaire de 240 000 $, sans même résoudre des tâches élémentaires pour les juniors. De notre point de vue, ces gens n'étaient même pas des Joons. L'approche est simple, si une personne programme directement à partir du cœur, c'est juste un programmeur, mais si une personne fait une mauvaise programmation ou ne tire pas du tout, ce n'est pas un junior, il n'est tout simplement pas un programmeur. Ici, nous avons été aidés par un merveilleux piratage en direct pour abandonner de tels candidats, il est appelé la «loi sur la plomberie», qui se lit comme suit: «Chaque nouveau plombier arrivant à un nouveau lieu de travail verse de la boue sur un autre plombier, disant qu'il a un bras plongeur et qu'il doit maintenant tout faire avec zéro. " En pratique, cela fonctionne comme ceci: le demandeur arrive au poste junior, ils lui donnent un morceau de code prêt à l'emploi, par exemple, un fragment du noyau Linux, et lui demandent ce qu'il pense de cette décision? S'il commence à cracher et dit quelque chose comme: «Quel genre d'écrivain a écrit cela? Tout doit être refait ici! Donnez-moi du temps, et je vais tout réécrire », donc le plombier est devant vous, et sa première priorité est de réprimander le plombier précédent.

Michel-Ange à cette occasion a dit ceci: "Je prends une pierre, coupe tout ce qui est inutile." Le grand maître n'a pas écrit de scripts, mais il a bien compris qu'une personne compétente s'approche de l'objet de travail avec le désir de le comprendre et, si nécessaire, de le transformer, mais pas de le détruire et de le transformer en poussière. Autrement dit, si une personne répond à de telles questions: "Si le code fonctionne en production et remplit ses fonctions, tant mieux, à certains endroits, je pense que vous pouvez améliorer ce code, si nécessaire, je peux le montrer.", Ensuite, avec une telle personne, vous pouvez et devez continuer le dialogue .
Une autre technique pour définir des jones à faible compétence consiste à se concentrer sur le battage médiatique et les piles de battage médiatique. Si une personne vient à un entretien et commence à déverser des approches de tendance, et à la question légitime: "Comment en êtes-vous arrivé à cette conclusion et avez-vous analysé ces outils?" - grimaçant à la grimace qui a atteint l'illumination de l'aîné, il répond: "Vous pouvez écrire n'importe quoi là-dessus, l'avenir est derrière!", puis devant vous est au mieux un junior faible, qui n'a aucune analyse des ressources, des piles et autres chaînes d'outils, seulement des informations superficielles sur outils et approches de battage médiatique.

Un peu plus sur l'interview


En plus de ce qui précède, lors de l'embauche d'un programmeur, il est très important d'obtenir de lui une position ouverte sur ses connaissances dans une pile particulière. Vous décidez de la pile, et il choisit la langue dans laquelle il est «wai wai wai comment fort», disons qu'il est un montagnard de JavaScript. Il existe un ensemble de tâches prédéfinies, par exemple, ceci:

setTimeout(()=>{console.log('Hello World!')}, 1000); while (true) { let a = false; }; 

Si la question sur cette tâche est: «Quand est-ce que Hello World!» Sera affiché ? ", Il commence à bégayer dans le style de répondre:" Eh bien ... euh ... regardez ... après avoir terminé la boucle alors vrai ou après une seconde "- cela signifie qu'il ne connaît absolument pas la pile, ment sur ses compétences, qui sont très probablement proches de à zéro. Le fait est que la construction while chargera le préprocesseur, et puisque JS est monothread, la boucle principale n'émettra jamais d'événement à partir d'un temporisateur. C'est-à-dire la bonne réponse n'est jamais.

Si une personne n'est pas prête à évaluer correctement et honnêtement ses connaissances, n'est pas capable de lire le code de quelqu'un d'autre, alors quel type de travail dans une équipe peut être discuté. Si une personne ne se révèle pas être un «plombier» et fait face aux tâches, confirmant sa connaissance de la pile, ou est constructive sur la tâche, ses erreurs et son incompétence partielle, alors il y a une chance qu'il devienne votre nouvel employé et, à l'avenir, pourra grandir dans côté des niveaux de classification plus élevés.



Il y a des moments où une personne n'est pas d'accord avec la classification interne de l'entreprise et réagit négativement à la déclaration selon laquelle elle ne tire pas au milieu ou même le juin et que sa décision ne fonctionnera pas. Dans ce cas, s'il continue d'insister, vous pouvez partir du principe et exécuter sa solution dans l'environnement, naturellement cette conception s'avère inopérante, c'est-à-dire que la personne a foiré. Il peut alors commencer à écraser l'autorité de son travail précédent. Par exemple, il y a eu des cas où une personne après un tel échec a déclaré qu'elle était un employé très précieux d'une grande banque et qu'elle y était très appréciée. En fait, il s'avère que douze mille autres personnes comme lui travaillaient dans cette banque, et le service des ressources humaines a simplement ignoré son incompétence, et après y avoir passé environ un an, il déclare maintenant son statut de spécialiste. Et ici, où il y a une équipe d'une vingtaine de programmeurs, chacun connaissant bien sa propre entreprise, il se perd tout simplement incapable de travailler selon l'ancien régime des commis. Notre PDG, Ilya Bykonya, dit ceci: "Pour moi, comme pour le développeur et fondateur actuel de l'entreprise, une autorité est la compétence de la personne, et où il a travaillé, et quel poste il occupait, est d'une importance secondaire."

Pour résumer




Il y a peut-être une faille dans notre approche de l'évaluation des candidats. Et le fait que nous «le rabaissions de rang», en disant qu'il n'est pas au milieu, mais juin ou pire, nous fait une cruelle plaisanterie. Peut-être perdons-nous les futurs Napoléon, comme l'Empire russe à une époque? Qui sait ... Mais de notre point de vue, une telle stratégie est pleinement justifiée par son efficacité, et au final, Napoléon a tout de même perdu la guerre de l'Empire russe.

Source: https://habr.com/ru/post/fr421949/


All Articles