Edit : Je ne pense pas qu'il soit raisonnable de poser toutes ces questions lors d'un seul entretien. J'ai simplement énuméré toutes les questions qui ont été suggérées dans les réponses fournies.
Je choisirais entre cinq et huit questions qui sont importantes pour toi. Vous pourriez peut-être en poser davantage si vous avez plusieurs entretiens prévus. Si c'est le cas, vous pouvez même adapter les questions en conséquence.
Je commence par le Test de Joel et travailler à partir de là.
Une question très importante :
Votre proxy web bloque-t-il Stack Overflow ?
Questions pour le développement :
- Quelle méthodologie de développement logiciel utilisez-vous, par exemple Waterfall, Agile, Scrum, XP ?
- Une formation est-elle prévue pour la méthodologie utilisée ?
- Quelles sont les parties du cycle de vie du développement logiciel que les développeurs effectuent ?
- Quelle est la répartition de la journée d'un développeur, par exemple combien de temps pour le support ou le dépannage, combien de temps pour le codage, l'analyse des besoins, etc.
- Quelle est la durée de votre cycle de conception, de codage et de test ? Moins de trente secondes, moins de cinq minutes, moins de dix minutes, etc.
- Encouragez-vous la refactorisation si des tests unitaires suffisants existent ?
- Quel banc d'essai utilisez-vous ?
- Avez-vous des normes de codage ?
- Les normes sont-elles révisées ou sont-elles simplement laissées telles quelles, c'est-à-dire "gravées dans la pierre", en 2001 ?
- Prévoyez-vous du temps pour l'examen du code par les pairs ?
- Pouvez-vous me donner un exemple d'une revue de code qui est faite ici. Y a-t-il différents niveaux de révision, par exemple, un nouveau système est traité dans une explication d'une journée, alors qu'une correction rapide de bogue est nécessaire au plus vite.
- Le projet utilise-t-il intégration continue ?
- (S'ils utilisent l'intégration continue) votre logiciel est-il actuellement construit et testé proprement ? Quel est le taux actuel de construction réussie ?
- Le projet prévoit-il des tests de régression réguliers ?
- Les métriques sont-elles conservées pour la base de code ? SLOC ? Le nombre de tests unitaires ? Le nombre de tests de régression ?
- Comment les conflits sont-ils résolus entre les testeurs et les développeurs ? Je pose cette question parce qu'il y a eu des cas dans le passé où j'ai vu des doigts se pointer du doigt en disant "Eh bien, j'ai interprété la chose de telle façon et il l'a interprétée de telle autre", ce qui m'a poussé à demander comment cela est géré.
- Comment sont traitées les demandes de modifications importantes à effectuer rapidement ? Par exemple, quelqu'un demande qu'une application web qui prendrait normalement deux semaines soit réalisée en deux jours pour un client potentiel qui pourrait être un gros client.
- Utilisez-vous un référentiel de logiciels ? (Si la réponse est non, sortez).
- Quel est le budget pour les outils ?
- Offrez-vous à vos développeurs une sorte de prime pour commander des livres techniques ?
Questions sur l'estimation :
- Disposez-vous d'un modèle standard d'estimation de l'effort de développement pour les nouveaux travaux afin de vous assurer que rien n'est oublié ?
- Un processus pour obtenir une telle estimation ?
- Quel pourcentage d'imprévus intégrez-vous à vos estimations ?
- Accordez-vous du temps pour revisiter
Questions concernant l'équipe :
- Qu'est-ce que l'équipe a réalisé jusqu'à présent ?
- Qu'a appris l'équipe ?
- Quels aspects de l'équipe voudriez-vous changer pour améliorer l'équipe ?
- Comment est l'esprit d'équipe ?
- Où les membres de l'équipe déjeunent-ils généralement ?
- L'équipe sort-elle ensemble de temps en temps ?
- Encouragez-vous les membres de l'équipe à faire des présentations pour améliorer leurs compétences ?
- Faites-vous de même avec l'écriture ?
- Puis-je parler de manière informelle à certaines des personnes de l'équipe que je vais rejoindre ? (C'est utile pour aller au-delà du discours de la direction et se faire une idée de la réalité).
Questions concernant les politiques de type personnel :
- L'entreprise a-t-elle une politique de formation ?
- Quels étaient les derniers cours que l'entreprise a envoyés aux gens ?
- L'entreprise a-t-elle une politique de mentorat ?
- Quel type de mécanisme de retour d'information existe-t-il pour déterminer les performances des employés, par exemple, à quelle fréquence mon travail est-il évalué et des suggestions me sont-elles données sur les points à améliorer ?
- Y a-t-il un code vestimentaire ? Les employés travaillent-ils selon un horaire fixe ?
- Le travail comporte-t-il des périodes de garde ?
- Encouragez-vous les employés à se fixer des objectifs et à fournir des incitations pour atteindre ces objectifs ?
- L'auto-amélioration est-elle une valeur commune à cette organisation ?
- Quelle est la politique Internet de votre entreprise ?
- Quels sites bloquez-vous ? (J'ai travaillé dans des endroits où l'on ne pouvait pas accéder à divers sites techniques de qualité).
- Puis-je travailler à des heures irrégulières si j'en ai besoin ? Par exemple, la nuit, toutes les heures de la semaine en deux jours ?
- Puis-je travailler à domicile ?
- Avez-vous une politique interdisant aux employés d'écouter de la musique pendant qu'ils travaillent ?
- Combien de temps les développeurs doivent-ils travailler en dehors de la journée de travail normale ?
Questions sur la gestion :
Pour le manager :
- Quel est votre style de gestion ?
- Comment il/elle motive les gens
- Comment les problèmes sont gérés (je laisse cette question ouverte pour voir quel type de problème ils supposent - concernant ceux qui sont sous eux ou ceux qui sont au-dessus d'eux ou des questions qui n'ont rien à voir avec les gens du tout, et je demande ensuite ce qu'ils n'ont pas couvert).
- Ce que l'entreprise fait pour les aider à développer leurs compétences en matière de gestion.
- Ce qui les motive
- Combien de temps ils travaillent (heures typiques/horaire)
- Quelle est la réalisation dont ils sont le plus fiers (je ne précise pas si elle est liée au travail, et s'ils mentionnent quelque chose d'autre, je pose également des questions sur le travail).
- Comment ils développent la cohésion de l'équipe et ce qu'ils ont réussi à accomplir dans ce domaine.
- Ce qu'ils considèrent comme la prochaine étape importante pour l'équipe, pour l'entreprise, pour les projets ou pour toute autre mission principale du groupe.
Je leur demande ensuite de répondre au même type de questions pour l'entreprise dans son ensemble, en expliquant que je considère qu'il existe une "personnalité" de l'entreprise qui émane généralement de la direction. Je leur demande comment cela a changé au fil des ans (s'ils sont là depuis très longtemps).
Autres questions sur la gestion :
- Quel est votre taux de rotation du personnel ?
- Quel est le pire projet auquel vous avez participé ici ?
- Combien de temps l'employé type de mon niveau reste-t-il dans l'entreprise ?
- Comment les projets sont-ils catégorisés, par exemple les changements par rapport à un petit projet par rapport à un grand projet ?
- Quel type de gestion existe-t-il au sein de l'entreprise, par exemple, le responsable du développement est-il également le chef de projet ou s'agit-il généralement de personnes distinctes ?
Questions sur l'environnement de travail :
- Puis-je voir mon lieu de travail ?
- Et, plus précisément, puis-je voir le bureau où je vais travailler, s'il vous plaît ?
- Quelle est la politique de l'entreprise en matière de téléchargement de logiciels ? (J'ai travaillé dans des endroits où l'on peut télécharger des zip, mais il faut une semaine pour que l'équipe d'aide télécharge l'éditeur hexadécimal dont vous aviez besoin hier).
- Dans quelle mesure les PC sont-ils verrouillés ? (J'ai travaillé dans des entreprises où les PC étaient tellement verrouillés qu'il était presque impossible de faire quoi que ce soit, par exemple, aucun accès à l'invite de commande).
- Les développeurs ont-ils des droits d'administration sur leur PC ? (Règle générale : plus le PC est verrouillé, plus l'entreprise est mauvaise). Les vrais sites de développement sur lesquels j'ai travaillé donnent à tous les développeurs des droits d'administration. Ils leur font confiance et les responsabilisent avec des augmentations correspondantes de la productivité).
- Quel logiciel est chargé par défaut sur un PC standard de développeur ? Par exemple, puis-je utiliser Eclipse ou suis-je condamné à l'enfer du bloc-notes).
- Puis-je choisir mes propres outils de développement ?
- Quel type d'équipement fournissez-vous à vos développeurs ? Par exemple, tous les développeurs disposent-ils d'un ordinateur portable pour travailler, ont-ils accès à deux moniteurs, sont-ils autorisés à commander d'autres équipements (par exemple, un clavier ergonomique) ?
Questions diverses :
- Pourquoi le gars que je remplace est parti ?
- Comment puis-je vous aider ?
- Quels sont vos plus grands besoins en ce moment ?
- Quel genre de choses voudriez-vous que quelqu'un à ce poste fasse ?
- Si vous me choisissez, y a-t-il des choses que je pourrais lire sur votre domaine problématique qui m'aideraient à être efficace dès le premier jour ?
- Pourquoi la ou les personnes interrogées y travaillent (ou aiment y travailler, ou continuent d'y travailler, etc. Leurs réponses me donnent généralement une bonne idée de l'entreprise.