Nous interviewons un candidat pour le poste de développeur de logiciels senior

J'ai réalisé plus d'une centaine d'entretiens, d'une part et d'autre part. Dans cet article, je voudrais partager mes expériences, observations et points intéressants. Peut-être que cela sauvera quelqu'un d'erreurs, de conclusions incorrectes et de temps perdu.

Quel genre d'oiseau est senior?


Ainsi, Senior Software Developer (aka Senior Developer) est un développeur avec une expérience significative (à partir de 5 ans) et une connaissance approfondie du développement de logiciels commerciaux. L'expérience de travail de développement pour l'argent est une condition nécessaire mais pas suffisante. Assurez-vous de participer à tout projet de niveau Entreprise, et s'il est également parfait dès le début, il donne une expérience inoubliable et une large perspective. Senior diffère de Middle principalement en ce qu'il peut mettre n'importe quelle tâche à l'état de production. Il sait clairement ce qui peut être fait et ce qui ne peut pas. Il est capable de saisir le moment où il est temps de refactoriser le logiciel ou simplement de le réécrire à partir de zéro. Écrit un code de qualité assez élevée sans erreurs critiques et architecturales.

C'est une erreur de supposer que Senior est plus rapide que Middle. Dans ma pratique, il y a eu de nombreux cas où Middle a effectué des tâches simples plus rapidement. Mais Senior travaille presque toujours mieux et plus rapidement sur des tâches complexes, lorsque vous pouvez appliquer l'expérience accumulée, éviter les erreurs et perdre du temps au stade du développement, de la maintenance et du développement.

L'objectif principal de l'entretien


Curieusement, mais parfois les intervieweurs ne suivent pas l'objectif principal de l'entretien - pour déterminer si le développeur sera utile à l'équipe et dans quelle mesure cet avantage est lié au coût de ce développeur. Au lieu de cela, l'intervieweur révèle souvent ce que le développeur ne sait pas, au lieu de comprendre ce qu'il sait et ce qu'il peut faire. En conséquence, il arrive à des conclusions erronées avec toutes les conséquences qui en découlent.

Qui devrait interviewer?


Ici, la seule bonne réponse est le futur chef immédiat de aka Team Lead. Une erreur courante consiste à interroger 2-3 personnes de la part de la personne interrogée, en posant des questions transversales et incohérentes. Tout cela crée un stress inutile pour la personne interrogée et empêche l'établissement de contacts psychologiques.

Atmosphère


L'interview est toujours un stress pour le développeur, pour quelqu'un de plus, pour quelqu'un de moins. Beaucoup d'entre eux ne savent pas se "vendre" qualitativement. Par conséquent, il est extrêmement important d'attirer un développeur et de transférer l'entretien à une communication amicale entre deux collègues. En effet, c'est dans une conversation amicale que vous pourrez découvrir les vrais détails de la sortie de votre emploi précédent et quel type de compétences la personne interrogée possède sans embellissement.

Apprenez les compétences


Comme je l’ai déjà écrit dans «Objectifs», il est important de découvrir les points forts de l’interviewé, avec quoi il a travaillé plus tôt, sur quoi il a mangé le chien, quelles approches il a utilisées, quel type d’équipement il a rencontré en cours de route.

Compétences clés pour un développeur senior:

  • Des algorithmes
  • Architecture, modèles de conception.
  • Bases de donnĂ©es
  • ExĂ©cution parallèle et synchronisation des processus.
  • Bases des performances logicielles.
  • DĂ©bogage et journalisation.

Un rôle important pour un développeur est de comprendre comment cela fonctionne, de connaître les concepts et les fonctionnalités, plutôt que de connaître un outil spécifique. Par exemple, s'il comprenait parfaitement MySQL, il ne lui serait pas difficile de traiter avec PostgreSQL. Dans la plupart des cas, il n'est pas difficile pour un développeur senior d'apprendre rapidement n'importe quel outil.

Très souvent, les personnes interrogées passent à des détails qui leur sont familiers, voici les cas de la pratique réelle:

  • Comment utiliser SQL pour supprimer une ligne si plusieurs rĂ©pondent aux critères de sĂ©lection?
  • Quelle commande git annulera le dernier commit?
  • Quelles mĂ©thodes d'un objet Object en Java connaissez-vous? Il peut y avoir d'autres options dans d'autres langues - quelque chose que l'intervieweur connaĂ®t bien.

Ces questions sont également de la catégorie des «jetons une pièce en l'air», leur connaissance ou leur ignorance ne permet pas de conclusions objectives sur l'expérience du développeur.

Il existe également une catégorie distincte d'amateurs «pleins d'esprit» de questions stupides et de tâches pour vérifier «l'intelligibilité», de vrais exemples:

  • Pourquoi la trappe est-elle ronde?
  • Comment verser exactement 4 litres d'eau dans un seau, s'il y a deux seaux - 3 et 5 litres?
  • RĂ©solvez des Ă©nigmes, par exemple, rĂ©cupĂ©rez un cube de Rubik.

Le problème avec de telles questions est que non seulement les personnes ayant un faible QI sont éliminées, mais également une partie importante des gars intelligents qui ne sont tout simplement pas prêts pour de telles questions ou qui sont stressés. Ici, au lieu des gars intelligents, allez souvent plus loin ceux qui connaissent déjà les réponses et les solutions aux questions et tâches standard.

A la recherche de motivation


Il y a une telle question fréquemment posée du côté de la personne interrogée - "Pourquoi voulez-vous travailler avec nous?" Il est entendu que l'interviewé révélera honnêtement et ouvertement sa motivation - «Je veux plus d'argent» ou «Tout va mieux que là où je suis maintenant». Mais pour l'interviewé, une telle question peut provoquer un malentendu littéral et il répond rarement ouvertement. Par conséquent, il vaut mieux se renseigner sur la motivation avec des questions indirectes.

Quelles sont les motivations:

  • L'argent . La motivation la plus populaire, mais il n'est souvent pas acceptĂ© de l'admettre. Cela fonctionne bien pour les familles et ceux qui ont l'habitude de dĂ©penser beaucoup ou qui veulent vraiment Ă©pargner.
  • Tâches intĂ©ressantes . Lorsque les gens aiment vraiment leur travail et qu'ils sont prĂŞts Ă  faire des heures supplĂ©mentaires et le week-end sans exiger de paiement supplĂ©mentaire.
  • AmĂ©liorez de nouvelles compĂ©tences . L'industrie ne s'arrĂŞte pas et doit constamment les pomper pour rester en demande sur le marchĂ© du travail.
  • Croissance de carrière . L'une des principales motivations pour travailler dans une startup.
  • Entreprise bien connue ou hype . L'occasion de faire partie d'elle et de rĂ©colter les fruits de sa renommĂ©e.

Ce que vous ne devriez pas demander au développeur principal


  • Fonctionnement de l'algorithme XXX rarement nĂ©cessaire (par exemple, tri rapide). Pourquoi demander ce qui n'est pas nĂ©cessaire dans le travail quotidien du dĂ©veloppeur, mais google en 5 secondes?
  • PossĂ©dez-vous un simple outil YYY (par exemple git). Je n'ai pas encore rencontrĂ© de dĂ©veloppeur qui n'aurait pas maĂ®trisĂ© les fonctionnalitĂ©s de base de git nĂ©cessaires au travail quotidien en un jour ou deux.
  • Savez-vous comment Ă©crire des tests. Question avec un astĂ©risque. Le processus de rĂ©daction des tests est simple, mais apprendre Ă  comprendre ce qui doit ĂŞtre testĂ© et dans quelle mesure - cela demande une longue pratique. En fait, un seul testeur expĂ©rimentĂ© dans une Ă©quipe qui peut contrĂ´ler ce processus de manière efficace suffit.
  • Qu'est-ce que Agile / Kanban / Scrum. La mĂ©thodologie, au fur et Ă  mesure du dĂ©veloppement, est choisie par le chef d'Ă©quipe; en consĂ©quence, les artistes ordinaires n'ont pas besoin de la connaĂ®tre Ă  fond et les principes de base sont compris en quelques jours.

Types de développeurs seniors


Pour comprendre la motivation et les capacités d'un développeur particulier, il est nécessaire de mettre en évidence les types inhérents à lui. J'ai identifié les types courants suivants:

  • CrĂ©ateur ou passionnĂ© . Il se prĂ©cipite du travail lui-mĂŞme, des tâches non triviales, oĂą il faut inventer quelque chose. Parfois, les vĂ©los sont obtenus, mais avec la croissance des compĂ©tences, ils produisent des produits de très haute qualitĂ©. La motivation principale est des projets et des tâches intĂ©ressants.
  • La routine . Capable d'effectuer des travaux très routiniers sans compromettre la productivitĂ© dans le temps et sans nĂ©cessiter de motivation.
  • Super-hĂ©ros . Effectuez la tâche Ă  tout prix, mĂŞme s'il n'y a pas suffisamment de compĂ©tence et de temps. Il sculpte souvent de la merde et des bâtons, mais avec la croissance des compĂ©tences, on obtient quelque chose de plus ou moins dĂ©cent. Très prĂ©cieux pour les startups et les patrons exigeants.
  • CompĂ©tent . Vous ne pouvez pas le tromper sur la balle, vous ne pouvez pas le tromper avec battage mĂ©diatique, il essaie toujours de comprendre l'essence de la technologie et des tâches, pense-t-il profondĂ©ment et structurellement. EmployĂ© prĂ©cieux dans tout projet.
  • Superficiel . Ils saisissent des mots intelligents, des approches, Ă©tudient (superficiellement) des technologies et des outils de battage publicitaire et essaient d'appliquer tout cela dans le projet, en versant de grandes poignĂ©es, mĂŞme s'il est possible d'en gĂ©rer de petits. Typiquement Ă  l'aube d'une carrière et de camarades simplement motivĂ©s et impressionnables.
  • Humeur d'otage . Il y a une humeur - le travail bat son plein de façon Ă  n'apporter que des coquillages, il n'y a pas d'humeur - cela fera un regard rĂ©flĂ©chi et philosophera plus que le travail.
  • Carrière . Visiblement axĂ© sur la croissance de carrière. Pas de croissance depuis plus d'un an - un candidat potentiel au dĂ©part.
  • Conservateur . Un amoureux de la stabilitĂ© et des traditions, se rĂ©fère nĂ©gativement Ă  toutes ces petites choses, outils et approches nouveaux.
  • Manimen . Cela fonctionne lĂ  oĂą ils paient plus, donc la fidĂ©litĂ© Ă  l'entreprise est assez faible. Il aime les bonus, les bonus, les nishtyaki gratuits et autres motivations financières.

Souvent, un individu particulier combine plusieurs types dans différentes proportions. Au fil du temps, les types et leurs proportions chez l'homme changent, et il y a aussi des individus qui peuvent s'adapter aux tâches (typiques des super-héros). Il est à noter qu'avec l'âge, la part des conservateurs augmente dans beaucoup, le créateur peut s'épuiser et le superficiel peut devenir un compétent.

État psychologique


Malheureusement, les développeurs seniors développent parfois de mauvaises compétences et leur caractère peut se détériorer, ce qui complique grandement la compréhension mutuelle et le travail d'équipe efficace.

Il existe souvent de telles conditions:

  • La vie est la dĂ©cadence . Parfois, il arrive que le code Ă©crit ne soit pas mis en production pour une raison quelconque (par exemple, pour des dĂ©cisions commerciales) ou ne vive pas longtemps (dĂ©marrage ou gestion inepte). C'est sĂ©rieusement dĂ©moralisant avec toutes les consĂ©quences. Cela ne doit pas ĂŞtre confondu avec un cynisme ordinaire sain en raison de l'expĂ©rience de travail.
  • Zen compris . Au fil des ans, dans un projet d'entreprise statique, un dĂ©veloppeur l'Ă©tudie de haut en bas et il a le sentiment qu'il est dĂ©sormais un spĂ©cialiste rare. En fait, ses compĂ©tences en dehors de ce projet ne coĂ»tent presque rien, il y a une rĂ©Ă©valuation de ses capacitĂ©s par le dĂ©veloppeur.
  • Sous-estimĂ© et incertain . Une sĂ©rie de projets infructueux, une mauvaise gestion et d'autres risques font que le dĂ©veloppeur doute de ses capacitĂ©s et de ses compĂ©tences, bien qu'en rĂ©alitĂ© il puisse s'avĂ©rer ĂŞtre un employĂ© très compĂ©tent et prĂ©cieux. Se sous-estime souvent en termes de salaire et / ou de poste.
  • SurĂ©valuĂ© . Contrairement aux personnes sous-estimĂ©es et incertaines, cet individu a attrapĂ© un projet ou une sĂ©rie rĂ©ussie, qui a Ă©tĂ© extrĂŞmement rĂ©ussi et sur cette vague surestime considĂ©rablement ses capacitĂ©s et capacitĂ©s.

Mais qu'en est-il de la tâche de test?


Le problème dans la tâche de test court (2-3 heures) est que selon ses résultats, il est impossible de tirer des conclusions définitives si l'auteur a de l'expérience dans le développement du niveau senior ou non. Avec le même succès, vous pouvez simplement lancer une pièce en l'air.

Conclusions


Selon les résultats de l'entretien, une impression objective du développeur devrait se former:

  • Quelles sont ses forces.
  • Comment peut-il renforcer l'Ă©quipe.
  • De combien de temps at-il besoin pour atteindre la "vitesse de croisière".
  • Combien le sn souhaitĂ© correspond aux points ci-dessus.
  • Y a-t-il un contact psychologique et une compatibilitĂ© avec l'Ă©quipe?

Si, pour une raison quelconque, il n'est pas possible de répondre en toute confiance à toutes ces questions, vous pouvez effectuer une autre série d'entretiens ou refuser le candidat. Le prochain tour peut consister en n'importe quelle tâche spécifique qui révélera les informations manquantes, par exemple - une demi-journée de codage directement aux entreprises payées à un taux moyen.

PS Tous les points d'un article ne peuvent pas être décrits, donc si vous avez des questions ou souhaitez discuter de quelque chose - écrivez dans les commentaires ou par e - mail .

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


All Articles