Meiner Erfahrung nach haben Sie vor Ihrem Einstieg in ein Unternehmen keine Gelegenheit, sich die Code-Basis anzusehen (ich habe gefragt und aus Gründen der Vertraulichkeit haben alle immer nein gesagt, ich halte das für fair), also was während des Interviewprozesses Denken Sie, es sind die wichtigsten Fragen, die Sie stellen müssen, um herauszufinden, in welchem Zustand sich der Code befindet? (Wenn es sich um einen Hund handelt, gehören Sie zu den Armen, die jeden Tag laufen müssen.)
AKTUALISIEREN:
Eine Checkliste: Fragen Sie;
- Was sie von der Codebasis halten. Und wenn Sie dies tun, achten Sie genau auf die Mimik und die Zeit, die sie benötigen, um zu reagieren. [Anon]
- Was ist die CMM-Stufe des Unternehmens [DPD] (und wenn Sie hören, dass Stufe 5 in die andere Richtung läuft [Doug T])?
- Welchen Lebenszyklus sie verwenden [DPD] (und wenn Sie "Agile" hören, beginnen Sie, einige durchdringende Fragen zu stellen, um herauszufinden, ob mit "Agile" "Agile" oder "Cowboy-Codierung" gemeint ist [Carson63000])
- Mit welchen Tools bewerten sie die Codequalität? [DPD]
- Welche Tools verwenden sie für die Entwicklung? [DPD] (Nach Refactoring-Tools und Continuous Build-Servern suchen)
- Welches Quellcode- (Versionskontroll-) System verwenden sie, und eine gute Fortsetzung ist die Frage, warum sie es verwenden. [Zachary K].
- Wie sind ihre Testverfahren? [Karl Bielefeldt] (Achten Sie besonders auf Teams, die spöttische Frameworks verwenden, und legen Sie den Schwerpunkt auf gründliche automatisierte Komponententests durch etablierte Frameworks wie NUnit / JUnit. Lassen Sie sich nicht von Teams abschrecken, die kein testgetriebenes Entwicklungs-TDD verwenden Seien Sie vorsichtig, wenn Sie das Testen nicht als integralen Bestandteil und Grundpfeiler einer soliden Softwareentwicklung betrachten. Suchen Sie nach Teams mit engagierten Testern.)
- Welche Aufgaben erhalten neue Entwickler? Erfahrene Entwickler? [Karl Bielefeldt]
- Wie viele Leute arbeiten an einem Projekt? [Karl Bielefeldt]
- Ist Refactoring erlaubt? Ermutigt? [Karl Bielefeldt]
- Welche qualitätsbezogenen Prozess- oder Architekturänderungen werden in Betracht gezogen oder wurden kürzlich durchgeführt? [Karl Bielefeldt]
- Wie viel Autonomie haben Einzelpersonen über ihre Module? [Karl Bielefeldt]
- Werden Sie neuere Projekte (Greenfield Development) oder Legacy-Projekte (Brownfield Development) entwickeln? (Greenfield-Entwicklung macht im Allgemeinen mehr Spaß und hat weniger Probleme, da Sie nicht mit den Fehlern anderer aufräumen).
- Ist die Mitarbeiterfluktuation in der Organisation oder im Team hoch? (Dies deutet oft auf eine schlechtere Codequalität hin.) [M.Sameer]
- Einige eigene Programmierprobleme; aber vermeiden Sie es, wie ein Idiot zu wirken. [Sparky]
- Wie arbeiten die Entwickler zusammen und wie wird das Wissen im Team geteilt? (Dies sollte zu Ihrer Persönlichkeit passen. Ich würde sagen, dass eine Mischung aus Einzel- und Paararbeit am besten ist, wobei das Verhältnis Ihren sozialen Bedürfnissen entspricht.)
- Wie nah ist ihre Datenbank an der 3. Normalform (3NF) und ob sie wo und warum davon abweicht? (Wenn sie "3NF ???" sagen, gehen Sie. Wenn nicht, und es könnte gute Gründe dafür geben, dann finden Sie heraus, was sie sind).
ANMERKUNG: Ich habe Anons Antwort akzeptiert, weil die Community nach ungefähr einer Woche der Meinung ist, dass es das Beste ist. Ich denke, dies legt nahe, dass es nur etwas ist, für das Sie irgendwie einen sechsten Sinn entwickeln müssen. Aber ich denke, jeder hat etwas Wertvolles zu sagen gehabt.