D'après mon expérience, avant de commencer à travailler pour une entreprise, vous n'avez pas la possibilité de consulter la base de code (j'ai demandé et pour des raisons de confidentialité, tout le monde a toujours dit non, je pense que c'est juste), donc pendant le processus d'entrevue, pensez-vous que ce sont les questions les plus importantes à poser pour savoir dans quel état se trouve le code (après tout, si c'est un chien, alors vous allez faire partie des pauvres malheureux qui doivent le marcher tous les jours)?
MISE À JOUR:
Une liste de contrôle: demandez;
- Ce qu'ils pensent de la base de code. Et lorsque vous le faites, portez une attention particulière aux expressions faciales et au temps qu'il leur faut pour réagir. [Anon]
- Quel est le niveau CMM de l'entreprise [DPD] (et si vous entendez le niveau 5 fonctionner dans l'autre sens [Doug T])
- Quel cycle de vie ils utilisent [DPD] (Et si vous entendez "Agile", c'est là que vous commencez à poser des questions pénétrantes pour essayer de comprendre si par "Agile" ils veulent dire "Agile ou" codage cowboy "[Carson63000])
- Quels outils utilisent-ils pour évaluer la qualité du code? [DPD]
- Quels outils utilisent-ils pour le développement? [DPD] (Rechercher des outils de refactoring et des serveurs de construction continue)
- Quel système de code source (contrôle de version) ils utilisent, et un bon suivi est de demander pourquoi ils l'utilisent. [Zachary K].
- À quoi ressemblent leurs procédures de test? [Karl Bielefeldt] (Recherchez en particulier les équipes qui utilisent des frameworks de simulation et mettez l'accent sur des tests unitaires automatisés approfondis via des frameworks établis comme NUnit / JUnit; ne soyez pas rebutés par les équipes qui n'utilisent pas le développement piloté par les tests TDD, mais soyez méfiez-vous s'ils ne considèrent pas les tests comme partie intégrante et comme pierre angulaire d'un développement logiciel solide. Recherchez des équipes avec des testeurs dédiés.)
- Quels types de missions sont attribués aux nouveaux développeurs? Aux développeurs expérimentés? [Karl Bielefeldt]
- Combien de personnes travaillent sur un projet? [Karl Bielefeldt]
- La refactorisation est-elle autorisée? Encouragé? [Karl Bielefeldt]
- Quels changements de processus ou d'architecture liés à la qualité sont à l'étude ou ont été effectués récemment? [Karl Bielefeldt]
- Quelle est l'autonomie des individus sur leurs modules? [Karl Bielefeldt]
- Allez-vous développer de nouveaux projets (développement de nouveaux sites) ou d'anciens projets (développement de sites contaminés)? (Le développement Greenfield est généralement plus amusant et a moins de problèmes car vous ne nettoyez pas les erreurs de quelqu'un d'autre).
- Le taux de roulement des employés est-il élevé dans l'organisation ou l'équipe? (Cela indique souvent une qualité de code inférieure) [M.Sameer]
- Certains problèmes de programmation de votre choix; mais évitez de ressembler à un imbécile. [Sparky]
- Comment les développeurs collaborent-ils et comment les connaissances sont-elles partagées au sein de l'équipe? (Cela devrait correspondre à votre personnalité; je dirais qu'un mélange de travail en solo et en binôme est probablement le meilleur, avec un rapport correspondant à vos besoins sociaux)
- À quel point leur base de données est-elle proche de la 3e forme normale (3NF), et si elle s'écarte où et pourquoi? (S'ils disent "3NF ???", partez. Sinon, et il pourrait y avoir de bonnes raisons pour cela, alors découvrez ce qu'ils sont).
NOTE: J'ai accepté la réponse d'Anon parce qu'après environ une semaine, la communauté pense que c'est la meilleure - je pense que cela suggère que c'est juste quelque chose pour lequel vous devez en quelque sorte développer un sixième sens. Mais je pense que tout le monde a quelque chose de précieux à dire.