Question

Notre société a pensé à nos procédures de démolition entrevue et amener chaque candidat pendant 4-5 heures assis avec quelques-uns des programmeurs et juste faire de la programmation de paire.

J'aime l'idée en théorie, mais je ne sais pas comment vous pouvez vraiment faire juste pour chaque candidat. Comment les qualifieriez-vous? Ne leur entrée vraiment dépendre de ce que chaque programmeur travaillait ce jour-là?

Toute réflexion sur que ce soit une bonne idée / mauvaise idée ou comment le faire fonctionner est ce que je suis une sorte de recherche ici.

Vive!

EDIT:

RÉSULTAT - AS demandé

Nous allons effectuer les premières étapes de l'entretien, le même que précédemment. Suivi par téléphone face à face. Au lieu de les ramener pour une grillade troisième et dernière, nous allons apporter 3 développeurs revenir à s'asseoir avec les 7 membres de l'équipe. Nous avons décidé de laisser l'équipe de décider qui est alors engagé.

Nous sommes arrivés à cette conclusion pour deux raisons. Nous pensons que cela permettra aux développeurs en leur donnant un choix qui ils travaillent. La deuxième raison est dynamique de groupe. Nous pensons qu'il est vraiment important d'avoir un bon groupe dynamique et il est difficile de dire jusqu'à ce que vous embauchez une personne s'ils s'adapter ou non.

Ainsi, le résultat final est que nous allons aller de l'avant avec les séances de programmation de paire mais d'une manière complètement différente et une manière complètement différente que ce qui était initialement prévu.

Toute pensée ou la critique de cette approche est plus que bienvenu !! (Cette modification est affiché comme une réponse ci-dessous alors ne hésitez pas à downvote si vous vous sentez ce n'est pas la meilleure approche)

Était-ce utile?

La solution

J'espère que vous avez un tas d'étapes avant de celui-ci. Pour que cela fonctionne, il faut un excellent curriculum vitae et l'écran du téléphone. Vous ne voulez pas passer des tas de temps sur les candidats que vous ne devriez pas parler au premier lieu.

  

Alors, vous suggérez une première entrevue   et peut-être avoir la deuxième entrevue   comme la session de programmation de paire? - Ted   Smith (il y a 1 minute)

Oui. Vous pourriez même penser à avoir un entretien simple codage se produire sur le Web en utilisant quelque chose comme CoPilot .

Autres conseils

Sauf si vous utilisez la programmation paire largement dans votre développement dans le monde réel, je serais très réticents à utiliser. Je l'ai rencontré un certain nombre de développeurs professionnels de haute qualité qui ont mentionné une forte aversion pour la programmation paire et dont la compétence ne serait pas bien jugé dans un tel processus.

La meilleure façon est de donner à chacun le même programmeur pour travailler avec et exactement le même morceau de code.

Le problème que vous allez courir en est que l'embauche n'est pas comme la programmation. Il n'y a pas un processus étape par étape pour conduire à la bonne réponse à qui embaucher. (Vous pouvez avoir plusieurs mesures pour rendre la décision plus facile). Vous devez évaluer chacun sur leurs points forts, etc., et essentiellement faire une supposition quant à ce qui est le meilleur à la location. Parfois, vous devinez mal.

L'autre chose au sujet de la programmation paire que vous allez avoir à surveiller est la quantité de temps nécessaire pour que chaque candidat à ce stade de passer par ce genre de test. Si je cherche un emploi, je serais hésité à aller une interview à une entreprise qui me demandait de le faire. Pourquoi? Parce que c'est beaucoup de temps, et si j'interviewe à plusieurs endroits, je pourrais passer littéralement jours seulement aller à des entrevues pour des emplois, je ne peux pas même obtenir ou si vous voulez. Someplaces comme Google ou MS serait une exception, mais la plupart des endroits ne sont pas comme ces deux. (Sans parler du fait que si elles travaillent sur le code réel, vous êtes essentiellement en leur demandant de faire gratuitement le travail de quelqu'un).

Je viens d'avoir un entretien avec une entreprise basée à San Francisco qui se targue sur les méthodes Agile / etc. Je devais interviewer le PDG lui-même. J'ai environ 20 ans d'expérience dans l'industrie, mais ne l'ai jamais programmé ou paire développée en utilisant l'approche TDD. On m'a dit que ce serait une « entrevue de programmation », mais n'avait pas à quoi nous attendre, et avant que nous commencions le gars a dit qu'il pensait que j'accepter que toutes les entrevues devraient se faire de cette façon. (Qui, rétrospectivement, était rien de plus qu'une déclaration arrogante).

Quoi qu'il en soit, lors de l'entretien de l'exercice était de développer une classe en utilisant TDD. Il m'a fallu une seconde pour ajuster ma réflexion sur l'ensemble du processus, encore une fois que je ne l'avais jamais fait ou paire programmé TDD. Alors que je suis tombé ici et là, je l'ai fait ok à la fin. mais sa réponse était la je ne présentait pas le caractère agressif back-et-vient dont ils ont besoin pour leur environnement de programmation de paire. Maintenant, cela pourrait aussi avoir été une façon sournoise de dire: « Je ne pensais pas que tu as fait beaucoup » genre de message.

Heureusement, je ne l'ai pas besoin du travail et pour être honnête l'expérience m'a fait comprendre que je préfère trouver une autre carrière que d'avoir à être un ingénieur logiciel qui doit travailler à deux, jour après jour, quand il est venu à développer du code. chose étrange est que, à l'occasion, je travaille avec une autre personne sur le code en même temps, donc tout est possible.

En fin, je pense que ce fut un bon résultat car ils ne pensaient pas que j'étais un bon ajustement et je ne se soucient pas de leurs méthodes de travail. Mais nous aurions est venu à la même conclusion si j'avais parlé un pendant quelques minutes de plus sur moi-même et il ne me avait donné un peu plus d'informations sur la façon dont ils vont sur leur travail. Ce qui veut dire qu'il ya d'autres façons de trouver un bon candidat apte à les faire passer par le stress de la programmation en binôme avec un inconnu; manière fausse d'évaluer la compétence imo.

Comme une anecdote personnelle, je me suis claqué autour dans une interview à cause d'une technique comme celui-ci. J'étais allé loin dans leur processus d'entrevue; passé les contrôles de curriculum vitae, la soumission de code et ce fut la partie face à face de l'entrevue.

Je suis sortie de l'université et n'avait jamais programmé avant paire, ni fait TDD. Ils me sont assis pour faire une plate-forme d'exercice de la carte et il floppé. Mal! Je ne comprenais pas pourquoi l'enquêteur écrivait des tests qui semblait si stupide * (IE « return null; ») et ils n'ont pas expliquer pourquoi et bien sûr être étranger à TDD je ne savais pas quelles questions poser. Le résultat final était qu'il semblait que je ne pouvais pas programmer mon chemin d'un sac en papier.

Si vous allez faire ce type d'exercice que vous devez répondre à la personne interviewée parce qu'ils vont être dans des endroits différents avec leur aptitude. Cela signifie que vous aurez différentes évaluations qui peuvent ne pas être fondées sur le talent réel et vont donc être fortement biaisé.

** Maintenant que je comprends TDD, je comprends des tests comme celui-ci et la façon dont il est censé fonctionner, mais l'homme a fait que jamais paraître stupide au moment! *

Je viens d'avoir un entretien de programmation paire il y a quelques jours et pour être honnête, je ne suis pas vraiment comme ça. Je suis informé de ce jour juste avant l'entrevue et l'enquêteur m'a dit que la programmation de paire est ce que finalement je vais faire de toute façon dans le travail. Je suis entré dans le bureau et a été jumelé avec quelqu'un qui est un ingénieur logiciel très haut niveau. La société est à San Francisco et ils sont une entreprise bien réputée pour la programmation en binôme, chacun des programmes de paire dans le bureau. Au début, il semblait bien, at-il expliqué au sujet de tous les outils utilisés, leur propre cadre de tests unitaires qu'ils construisent, et un peu du projet. Il a ensuite écrit au fond un tas de tests unitaires et me voulait travailler sur la mise en œuvre pour le faire passer. Tout comme un FYI, la base de code qui existe déjà est énorme, je dirais 10k lignes, il est pas comme un super projet complexe, mais il est complexe pour quelqu'un à l'étape juste et écrire du code sans connaissance préalable de la hiérarchie des classes, etc. . Je trouve vraiment difficile de croire qu'il attend quelqu'un à sauter tout de suite en ligne 10k de code source qui existe déjà. Il ne correspond pas seulement pour une paire entrevue de programmation, une plus petite base de code aiderait. Je luttais un peu de naviguer dans les classes et des allers-retours parce que je ne me souviens pas des noms de classe que j'ai été submergé par la quantité de classes / code qui existe déjà. Pour être honnête, ce qui m'a fait faire horrible dans le processus d'entrevue. En fin de compte, je ne me sentais pas vraiment bien à ce sujet. Je ne l'ai pas fait la programmation paire avant, la plupart du temps est juste au cours des interventions de mon année de collège.

Pour moi, la puissance de la programmation paire peut être mise à profit si vous êtes déjà compétent / à l'aise avec votre paire, mais n'est pas vraiment adapté pour un entretien. Parfois, je voudrais poser des questions à ma paire, mais je pensais que si je pose des questions trop, ils estimeraient que j'étais stupide et ne peut pas effectuer. Si cela était déjà un vrai travail, je ne serais pas hésité à demander, mais dans une interview, il est difficile .. que vous voulez poser parce que votre paire devrait vous aider lorsque vous êtes coincé, mais en même temps, il est une interview , de sorte que vous ne pouvez pas vraiment demander beaucoup.

C'est juste mon expérience que j'ai de l'interview de programmation paire, ma suggestion si vous voulez vraiment faire ceci:

  1. assurez-vous que vous ne donnez pas le candidat de travailler avec une base de code, travailler avec un  plus petit et donc il / elle peut montrer ses compétences / ses au maximum
  2. être à l'avant avec le candidat avant entrevue de programmation paire, pouvez-vous poser des questions quand vous êtes coincé, vous devriez être en mesure de faire ceci et cela, ce qui ne peut vous faire
  3. être aussi détaillé que possible

En fin de compte, je ne suggérer. Il est difficile de mesurer la performance d'un candidat dans la programmation de paire, et il pourrait être biaisé aussi bien.

Une entreprise particulière utilise une technique appelée extrême entrevue . Pour l'entretien extrême, ils apporteront à, disons, 30 développeurs et de les regrouper en 15 paires. Ils expliqueront qu'ils recherchent des gens qui travaillent bien avec les autres. Ce qu'ils feront une décision d'embauche fondée uniquement sur leur capacité à travailler avec les autres.

Ils fourniront un problème pour les couples à résoudre. Ils seront l'accent qu'ils ne sont pas intéressés par la solution juste chaque capacité des programmeurs de travailler avec les autres. Pour chaque paire, ils fourniront un observateur de la paire. Au cours de l'exercice (environ 2 à 4 heures dans la durée), l'observateur prend des notes sur une capacité de personne à paire ... pas la solution.

Ils sont étonnés combien de programmeurs se concentrent sur la résolution du problème au lieu de collaborer. Sur les 15 paires, ils identifieront environ 4 à 6 développeurs pour une deuxième entrevue. Les développeurs seront invités à revenir et passer une semaine avec l'équipe (ils sont payés). Après une semaine, ils décident qui garder. En général, environ la moitié d'entre eux (2 à 3 développeurs).

Quand ils sont faits, ils ont les développeurs qui sont capables de collaborer et après une semaine de travail avec différentes paires, l'équipe a une forte indication qui peut se développer efficacement des logiciels. Le procédé est à la fois innovante et efficace. Ils ont eu un taux de réussite élevé avec ceux qu'ils ont embauché.

J'aime cette idée. Cependant, je pense qu'il pourrait être difficile à faire car il faudrait que le candidat d'avoir une certaine connaissance du projet que vous jumeler avec lui. En outre, 4 à 5 heures semble un peu long. Que faire si vous voyez immédiatement qu'il ne va pas travailler, vous allez assister à la séance entière avec le candidat?

Bonne question cependant. Choses à penser.

Pourquoi pas? En outre, il est pas comme des entrevues sont toujours (ou jamais) équitable. Vous devez évaluer les résultats finaux de la nouvelle approche contre l'approche fondée sur l'entrevue traditionnelle.

En outre, une mini-interview avant la session de programmation de paire pourrait être bon pour ne pas perdre avec des gens qui seraient un mauvais ajustement du temps des programmeurs.

D'après mon expérience limitée, mes sentiments sont mélangés. J'aime l'idée de jumelage dans le cadre d'une interview, esp. si l'entreprise utilise souvent appariement, car il donne à la fois une meilleure idée de l'ajustement. En tant que candidat, je suis souvent allé à travers des interviews où je me suis assis dans une pièce à répondre aux questions pendant quelques heures, mais après ne pas avoir une bonne idée de ce qu'il serait vraiment que de travailler dans leur environnement. Appariement peut être plus bénéfique qu'un exercice de codage aléatoire, à moins que l'enquêteur est qualifié pour travailler quelqu'un à travers ceux-ci. Et j'aime pouvoir discuter du contenu technique des deux côtés. Et en tant que candidat, je préfère interagir avec quelqu'un que simplement répondre à des questions ou résoudre les problèmes de code sur le mien.

Mais ... comme d'autres l'ont noté, le temps nécessaire peut être un problème. Je suis passé par quelques jours d'entretiens d'appariement et trouvé quelques périodes bien, tandis que d'autres se sentaient comme quelques heures ont été gaspillés: (. Esp donné mon arrière-plan) l'un parce que le développeur ne fonctionnait pas sur quelque chose qui se prête à l'appariement, l'autre parce qu'une question env a empêché beaucoup de travail utile pendant un certain temps. Si le travail ne fonctionne pas, il peut être frustrant d'avoir pris un jour ou deux de congé pour cela.

Un lieu d'essayer cette approche était pas sûr si elles devraient avoir quelqu'un à l'extérieur de l'entreprise travaillant sur le projet d'un client. Ils craignent également que expliquant le domaine et le travail accompli prendrait trop de temps, sans pour autant que le candidat peut ne pas être en mesure de contribuer beaucoup. Donc, ils ont choisi un projet open source que l'employé travaillait.

Cela semble être un point clé: il doit y avoir une tâche bien choisi que le candidat peut comprendre rapidement et être en mesure de contribuer à La dernière partie dépendra quelque peu sur les compétences du candidat.. Un autre élément clé serait la capacité de l'employé d'évaluer quelqu'un avec cette approche. Tout le monde est grand à la normale entrevue, et qui est probablement plus vrai d'un entretien d'appariement.

En outre, si une entreprise ne fait pas beaucoup appairage alors ce genre d'entretien peut ne pas être aussi utile. Il ne semble bénéficier à voir le code quelqu'un (comme les notes Joel Spolsky), et cela pourrait être une bonne façon de le faire. Mais si l'appariement ne fait pas partie typique du travail, alors peut-être une séance d'appariement complet ne convient pas. Peut-être une version modifiée.

Je serais curieux de ce que les entreprises qui ont pris cette réflexion approche des résultats. En lisant les autres réponses à cette question montre qu'il ne semble pas toujours idéal point de vue du candidat.

Pour garder membre juste, vous auriez à faire tous les employés participants ont un problème prêt à évaluer le candidat. De préférence quelque chose pris forme le monde réel dans leur expérience de l'entreprise, mais quelque chose qui a déjà été résolu. Ceci est une bonne occasion d'évaluer les connaissances sur un problème et d'évaluer non seulement des compétences en programmation.

Je déteste quand des questions aussi spécifiques sont une réponse. J'ai eu une entrevue une fois où un programmeur a testé ma connaissance du TSL que j'ai utilisé beaucoup et ai essayé de me faire répondre un allocateur personnalisé était nécessaire. Je l'avais entendu parler d'eux, mais jamais utilisés (en particulier dans les fenêtres) et m'a fait sentir stupide. OIEau, éviter de porter un jugement.

Donc, mon point est, poser des questions pratiques qui ne sont pas tant sur le test de connaissances en programmation que vous pouvez évaluer plus de personnalité qualitative et des approches de résolution de problèmes si vous utilisez l'idée « de programmation de paire ».

Bonne question!

Honnêtement, cela semble être une bonne idée, bien que Jason Punyon est certainement raison que vous devriez faire beaucoup de désherber avant de perdre des quantités importantes de temps sur vos développeurs de abattages. Vous obtenez un aperçu d'une mesure importante de ce qui est par ailleurs presque impossible à obtenir en entrevue. Ce que quelqu'un est comme travailler avec

Je ne pense pas qu'il y ait vraiment besoin d'être préoccupé qu'il soit « équitable » fondée sur l'objet ou d'essayer de présenter des situations cohérentes aux différents candidats, si vous maintenez la bonne attitude évaluateur - qu'il n'est pas de savoir si elles « ont obtenu la bonne réponse » ou a sauté dans le bon ensemble de cerceaux, mais ce genre d'effort, résolution de problèmes, aptitude à la communication et la flexibilité qu'ils ont montré. Vous perdriez la plupart des avantages de l'exercice en le transformant en un test artificiel, sans parler de changer de quelque chose que vos développeurs peuvent obtenir quelque avantage (ou du moins encore obtenir un certain travail effectué au cours) pour une perte massive de leur temps.

Joel Spolsky a un excellent Guide de Guerrilla à Interviewer qui parle, entre autres, tâches de programmation.

Anecdote: Joel Spolsky est un co-fondateur de stackoverflow.com

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top