Comment intĂ©grer une grande entreprise en tant que junior ? Comment recruter un bon junior si vous ĂȘtes une grande entreprise ? Dans cet article, je vais vous raconter notre histoire de recrutement de jeunes talents en front-end : comment nous avons Ă©laborĂ© des tests, prĂ©parĂ© nos entretiens et mis en place un programme de mentorat pour le dĂ©veloppement et l'intĂ©gration des nouveaux arrivants, ainsi que les raisons pour lesquelles les questions d'entrevue standard ne fonctionnent pas.

J'essaie de former un junior
Bonjour ! Je m'appelle Pavel, je fais du front-end dans l'équipe de Wrike. Nous créons un systÚme de gestion de projet et de collaboration. Je travaille dans le web depuis 2010, j'ai passé 3 ans à travailler à distance pour des entreprises à l'étranger, j'ai participé à plusieurs start-ups et j'ai enseigné un cours sur les technologies web à l'université. Dans l'entreprise, je participe au développement des cours techniques et au programme de mentorat Wrike pour les juniors, ainsi qu'à leur recrutement direct.
Pourquoi avons-nous envisagé de recruter des juniors
Jusqu'Ă rĂ©cemment, nous engagions des dĂ©veloppeurs front-end de niveau middle ou senior â suffisamment autonomes pour pouvoir rĂ©soudre des tĂąches produit aprĂšs leur intĂ©gration. Au dĂ©but de cette annĂ©e, nous avons rĂ©alisĂ© que nous voulions changer cette politique : en un an, le nombre de nos Ă©quipes produit a presque doublĂ©, le nombre de dĂ©veloppeurs front-end a atteint prĂšs de cent, et Ă court terme, cela devrait encore doubler. Il y a beaucoup de travail, peu de bras disponibles, et encore moins sur le marchĂ©, donc nous avons dĂ©cidĂ© de faire appel Ă des personnes qui commencent tout juste leur parcours dans le front-end et nous avons compris que nous Ă©tions prĂȘts Ă investir dans leur dĂ©veloppement.
Qui est un junior ?
C'est la premiÚre question que nous nous sommes posée. Il existe différents critÚres, mais le principe le plus simple et compréhensible est le suivant :
Un junior a besoin qu'on lui explique quelle fonctionnalitĂ© crĂ©er et comment le faire. Un middle a besoin qu'on lui explique quelle fonctionnalitĂ© est nĂ©cessaire, et il s'en occupera lui-mĂȘme. Un senior, quant Ă lui, te dira pourquoi cette fonctionnalitĂ© ne doit pas ĂȘtre rĂ©alisĂ©e du tout.
Quoi qu'il en soit, un junior est ce développeur qui a besoin de conseils pour réaliser une solution donnée. Sur quoi nous avons décidé de nous baser :
- Un junior est celui qui souhaite se dĂ©velopper et est prĂȘt Ă travailler dur pour cela ;
- Il ne sait pas toujours dans quelle direction il veut se développer ;
- Il a besoin de conseils et cherche de l'aide extĂ©rieure â que ce soit auprĂšs de son lead, son mentor ou dans la communautĂ©.
Nous avions également quelques hypothÚses :
- Pour le poste de junior, il y aura une tempĂȘte de candidatures.Il faut filtrer les candidatures alĂ©atoires dĂšs l'envoi du CV ;
- Le filtre initial ne suffira pas. â il faut encore des tests.
- Les tests vont tous les effrayer. â ils ne sont pas nĂ©cessaires.
Et bien sûr, nous avions un objectif : 4 juniors en 3 semaines..
Avec cette prise de conscience, nous avons commencé à expérimenter. Le plan était simple : commencer avec un entonnoir aussi large que possible et essayer de le resserrer progressivement pour pouvoir traiter le flux, sans le réduire à un candidat par semaine.
Nous publions l'offre d'emploi.
Pour l'entreprise :: Il y aura des centaines de candidatures ! Pensez au filtre.
Pour le junior :: N'ayez pas peur du questionnaire avant l'envoi du CV et du test â c'est un signe que l'entreprise se soucie de vous et a bien organisĂ© le processus.
DÚs le premier jour, nous avons reçu environ 70 CV de candidats avec « connaissance de JavaScript ». Et puis encore. Et encore. Nous ne pouvions physiquement pas tous les inviter à un entretien au bureau et avons sélectionné ceux avec les projets personnels les plus intéressants, un GitHub actif ou au moins de l'expérience.
Mais la principale conclusion que nous avons tirĂ©e dĂšs le premier jour â la tempĂȘte avait commencĂ©. Il Ă©tait temps d'ajouter un questionnaire avant l'envoi du CV. Cette tĂąche visait Ă filtrer les candidats qui n'Ă©taient pas prĂȘts Ă fournir un minimum d'efforts pour envoyer un CV, et ceux qui n'avaient pas les connaissances et le contexte suffisants pour rechercher les bonnes rĂ©ponses.
Il y avait des questions standard sur JS, le dĂ©veloppement web, l'informatique â des questions que chacun sait qui sont posĂ©es lors d'un entretien en front-end. Quelle est la diffĂ©rence entre let/var/const ? Comment appliquer des styles uniquement pour les Ă©crans plus petits que 600px de large ? Nous ne voulions pas poser ces questions lors de l'entretien technique â l'expĂ©rience a montrĂ© qu'on peut y rĂ©pondre aprĂšs 2-3 entretiens, sans vraiment comprendre le dĂ©veloppement. Mais elles nous ont permis de dĂ©terminer si, en principe, le candidat saisissait le contexte.
Dans chaque catĂ©gorie, nous avions prĂ©parĂ© 3 Ă 5 questions et, jour aprĂšs jour, nous avons modifiĂ© leur ensemble dans le formulaire de rĂ©ponse, jusqu'Ă ce que nous ayons exclu les questions les plus simples et les plus difficiles. Cela a permis de rĂ©duire le flux â en 3 semaines, nous avons reçu 122 candidats., avec lesquels nous pouvions travailler par la suite. Ce sont des Ă©tudiants en IT ; des gars qui ont voulu passer du backend au frontend ; des travailleurs ou des ingĂ©nieurs ĂągĂ©s de 25 Ă 35 ans, qui ont radicalement voulu changer de domaine et ont consacrĂ© divers efforts Ă l'auto-formation, aux cours et aux stages.
Faisons connaissance
Pour l'entreprise :: Le test technique n'effraie pas les candidats, mais aide à raccourcir le processus de sélection.
Pour le junior :: Ne copiez pas les tests - c'est évident. Et gardez votre GitHub en ordre !
Si nous avions invitĂ© tout le monde Ă un entretien technique, nous aurions dĂ» rĂ©aliser environ 40 entretiens par semaine rien que pour les juniors et seulement en frontend. C'est pourquoi nous avons dĂ©cidĂ© de vĂ©rifier la seconde hypothĂšse â Ă propos du test technique.
Ce qui était important pour nous dans le test :
- Construire une bonne architecture évolutive, mais sans sur-architecture ;
- Il vaut mieux prendre plus de temps, mais bien faire, que de bùcler quelque chose en une nuit en envoyant un commentaire « je vais absolument finir » ;
- L'historique de dĂ©veloppement dans Git â culture d'ingĂ©nierie, itĂ©ration du dĂ©veloppement et le fait que la solution n'est pas copiĂ©e de maniĂšre Ă©hontĂ©e.
Nous nous sommes mis d'accord sur le fait que nous voulions examiner un problĂšme algorithmique et une petite application web. Les problĂšmes algorithmiques Ă©taient prĂ©parĂ©s au niveau des laboratoires des cours initiaux â recherche binaire, tri, vĂ©rification des anagrammes, travail avec des listes et des arbres. En fin de compte, nous avons optĂ© pour la recherche binaire comme premiĂšre variante d'essai. L'application web devait ĂȘtre un morpion en utilisant n'importe quel framework (ou sans).
PrĂšs de la moitiĂ© des candidats restĂ©s ont rĂ©ussi le test â nous avons reçu des solutions 54 candidats. Une rĂ©vĂ©lation incroyable â combien pensez-vous qu'il y a de rĂ©alisations de morpion prĂȘtes Ă ĂȘtre copiĂ©es sur Internet ?
Combien ?En réalité, il semble qu'il n'y en ait que 3. Et dans la majorité écrasante des solutions, il s'agissait précisément de ces 3 variantes.
Ce qui n'a pas plu :
- copier-coller, ou dĂ©veloppement d'aprĂšs un mĂȘme tutoriel sans architecture propre;
- les deux tĂąches dans un mĂȘme dĂ©pĂŽt dans des dossiers diffĂ©rents, sans historique de commit bien sĂ»r ;
- code sale, violation du principe DRY, absence de formatage ;
- mélange du modÚle, de la vue et du contrÎleur dans une seule classe de plusieurs centaines de lignes de code ;
- absence de compréhension des tests unitaires ;
- La solution « brute » â le hardcodage d'une matrice de combinaisons gagnantes 3x3, ce qui serait assez difficile Ă Ă©tendre Ă 10x10, par exemple.
Nous avons Ă©galement prĂȘtĂ© attention aux dĂ©pĂŽts voisins â de superbes projets personnels ont rĂ©ussi, tandis qu'une multitude de tests d'autres entreprises Ă©tait plutĂŽt un signal d'alarme : pourquoi le candidat n'a-t-il pas pu rĂ©ussir lĂ -bas ?
En fin de compte, nous avons trouvĂ© d'excellents candidats sur React, Angular, Vanilla JS â au total, 29. Et nous avons dĂ©cidĂ© d'inviter un autre candidat sans test en raison de ses projets personnels trĂšs impressionnants. Notre hypothĂšse concernant l'utilitĂ© des tests s'est confirmĂ©e.
Entretien technique
Pour l'entreprise :: Vous n'avez pas affaire à des mid-level/seniors ! Il faut un approche plus individualisée.
Pour le junior :: Rappelez-vous que ce n'est pas un examen â n'essayez pas de rester silencieux avec une note moyenne ou de submerger le professeur avec tout votre savoir afin qu'il se perde et vous donne un « excellent ».
Que voulons-nous comprendre lors de l'entretien technique ? La chose simple â comment le candidat pense. Il a probablement certaines compĂ©tences techniques s'il a rĂ©ussi les premiĂšres Ă©tapes de sĂ©lection â il reste Ă dĂ©terminer s'il sait les appliquer. Nous avons convenu de 3 tĂąches.
La premiĂšre â les algorithmes et les structures de donnĂ©es. Avec un stylo, sur une feuille, dans un pseudo-langage et Ă l'aide de dessins, nous avons discutĂ© de la maniĂšre de copier un arbre ou de supprimer un Ă©lĂ©ment d'une liste simplement chaĂźnĂ©e. La dĂ©couverte dĂ©sagrĂ©able a Ă©tĂ© que tout le monde ne comprend pas la rĂ©cursion et comment fonctionnent les rĂ©fĂ©rences.
La deuxiĂšme â le live coding. Nous avons accĂšs Ă , nous choisissions des choses simples comme trier un tableau de mots par la derniĂšre lettre et, pendant 30 Ă 40 minutes, nous essayions, avec le candidat, de faire passer tous les tests. Il semblait qu'il ne devrait pas y avoir de surprises de la part de ceux qui avaient maĂźtrisĂ© les morpions â mais dans la pratique, pas tout le monde a pu comprendre qu'une valeur doit ĂȘtre conservĂ©e dans une variable et qu'une fonction doit renvoyer quelque chose via return. Bien que j'espĂšre sincĂšrement que c'Ă©tait seulement un stress momentanĂ©, et que les candidats ont pu rĂ©soudre ces tĂąches dans des conditions plus relaxĂ©es.
Enfin, la troisiĂšme â un peu sur l'architecture. Nous avons discutĂ© de la maniĂšre de crĂ©er une barre de recherche, comment fonctionne le debounce, comment rendre divers widgets dans les suggestions de recherche, comment le front-end peut interagir avec le back-end. De nombreuses solutions intĂ©ressantes ont Ă©tĂ© trouvĂ©es, y compris au sujet du rendu cĂŽtĂ© serveur et des WebSockets.
Nous avons menĂ© 21 entretiens selon ce schĂ©ma. Le public Ă©tait totalement hĂ©tĂ©roclite â parlons de comics :
- «Rocket». Il ne se repose jamais, s'immisce partout, et lors des entretiens, il vous submergera avec un flot de pensĂ©es, parfois mĂȘme sans lien direct avec la question posĂ©e. Si cela se passait Ă l'universitĂ©, ce serait un moment familier pour beaucoup : essayer de dĂ©montrer tous ses savoirs, mĂȘme si on se souvient seulement la veille qu'on ne voulait pas l'Ă©tudier â de toute façon, on n'en sortira rien.
- «Groot». Avec lui, il est assez difficile d'Ă©tablir le contact, car il est Groot. Pendant les entretiens, il faut longuement tirer les rĂ©ponses mot par mot. C'est bien si c'est juste un blocage â sinon, cela sera trĂšs difficile dans le travail quotidien.
- «Drax». Auparavant, il s'occupait de transport de marchandises, et en programmation, il n'a appris que le JS sur Stackoverflow, donc il ne comprend pas toujours de quoi l'on parle lors de l'entretien. Ceci dit, c'est une bonne personne, avec de bonnes intentions et qui veut devenir un excellent développeur front-end.
- Et probablement, «Star-Lord». En général, c'est un bon candidat avec qui on peut s'entendre et établir un dialogue.
à la fin de nos recherches 7 candidats ont été sélectionnés pour la finale, confirmant leurs compétences techniques avec une excellente tùche de test et de bonnes réponses lors des entretiens.
Cultural fit
Pour l'entreprise :: Est-ce que vous allez pouvoir travailler avec lui ! Est-il vraiment prĂȘt Ă travailler extrĂȘmement dur pour son dĂ©veloppement ? S'intĂ©grera-t-il bien dans l'Ă©quipe ?
Pour le junior :: Est-ce que vous allez pouvoir travailler avec eux ! La sociĂ©tĂ© est-elle vraiment prĂȘte Ă investir dans la croissance des juniors, ou va-t-elle simplement vous laisser toute la sale besogne pour un salaire bas ?
Chaque junior, en plus de l'équipe produit, dont le leader doit accepter de l'accueillir, se voit attribué un mentor. La tùche du mentor est de le guider à travers un processus d'intégration de trois mois et de développement des compétences techniques. Donc, pour chaque évaluation de culture, nous venions en tant que mentors et nous nous posions la question : « Vais-je prendre la responsabilité de former le candidat en 3 mois selon notre plan ? »
Cette étape s'est déroulée sans particularité et au final, elle nous a rapporté 4 offres, dont 3 ont été acceptées, et les gars ont rejoint les équipes.
La vie aprĂšs une offre
Pour l'entreprise :: Prenez soin de vos juniors, ou d'autres le feront !
Pour le junior :: AAAAAAAAAAAAAA!!!
Lorsque un nouvel employĂ© arrive, il doit ĂȘtre intĂ©grĂ© â ĂȘtre informĂ© des processus, comprendre comment tout fonctionne dans l'entreprise et l'Ă©quipe, et comment travailler en gĂ©nĂ©ral. Lorsqu'un junior entre, il faut dĂ©terminer comment le dĂ©velopper.
Lorsque nous avons réfléchi à cela, nous avons établi une liste de 26 compétences que, selon nous, un junior doit acquérir d'ici la fin de sa période d'intégration de trois mois. Cela inclut des compétences techniques (selon notre stack), des connaissances sur nos processus, le Scrum, l'infrastructure et l'architecture du projet. Nous les avons regroupées dans une feuille de route, étalée sur trois mois.

Par exemple, voici la feuille de route de mon junior
Nous assignons un mentor à chaque junior, qui travaille avec lui de maniÚre individuelle. Selon le mentor et le niveau actuel du candidat, les rencontres peuvent avoir lieu de 1 à 5 fois par semaine pendant 1 heure. Les mentors sont des développeurs front-end bénévoles qui souhaitent faire plus que simplement écrire du code.
Une partie de la charge des mentors est allĂ©gĂ©e par des cours sur notre stack â Dart, Angular. Les cours sont proposĂ©s rĂ©guliĂšrement pour de petits groupes de 4 Ă 6 personnes, oĂč les participants travaillent sans interruption de leur travail.
Au cours des 3 mois, nous recueillons pĂ©riodiquement des retours d'expĂ©rience des juniors, de leurs mentors et des leaders, et nous ajustons le processus individuellement. 1 Ă 2 fois durant toute la pĂ©riode, une vĂ©rification des compĂ©tences acquises est effectuĂ©e, et une vĂ©rification similaire est menĂ©e Ă la fin â des recommandations sont ensuite formulĂ©es sur ce qu'il convient d'amĂ©liorer.
Conclusion
Pour l'entreprise :: Faut-il investir dans les juniors ? Oui !
Pour le junior :: Recherchez des entreprises qui sélectionnent rigoureusement les candidats et savent comment les développer.
En 3 mois, nous avons examinĂ© 122 questionnaires, 54 Ă©preuves techniques et avons rĂ©alisĂ© 21 entretiens techniques. Cela nous a permis de recruter 3 super juniors, qui ont dĂ©jĂ terminĂ© la moitiĂ© de leurs feuilles de route d'intĂ©gration et d'accĂ©lĂ©ration. Ils rĂ©solvent dĂ©jĂ de rĂ©elles tĂąches produit dans notre projet, oĂč il y a plus de 2 000 000 de lignes de code uniquement sur le front-end et plus de 400 dĂ©pĂŽts.
Nous avons dĂ©couvert que le processus pour les juniors peut et doit ĂȘtre suffisamment complexe, mais au final, seuls les candidats vraiment prĂȘts Ă travailler dur et Ă investir dans leur dĂ©veloppement rĂ©ussissent Ă le franchir.
Actuellement, notre principal objectif est de finaliser les feuilles de route de trois mois pour le dĂ©veloppement de chaque junior en mode de travail individuel avec un mentor et des cours communs, de rassembler des mĂ©triques, des retours d'expĂ©rience des leads, des mentors et des membres eux-mĂȘmes. Ă ce stade, on pourra considĂ©rer le premier essai comme terminĂ©, tirer des conclusions, amĂ©liorer le processus et le relancer pour sĂ©lectionner de nouveaux candidats.
Source : habr.com
