Nella mia esperienza prima di iniziare a lavorare per un'azienda non hai l'opportunità di consultare la base di codice (ho chiesto e per motivi di riservatezza tutti hanno sempre detto di no, penso che sia giusto), quindi durante il processo di intervista cosa pensi che siano le domande più importanti da porre per scoprire in che stato si trova il codice (dopotutto, se è un cane, allora sarai sui poveri sfortunati che devono percorrerlo ogni giorno)?
AGGIORNARE:
Una lista di controllo: Chiedi;
- Quello che pensano del codice di base. E quando lo fai, presta molta attenzione alle espressioni facciali e al tempo necessario per rispondere. [Anon]
- Qual è il livello CMM dell'azienda [DPD] (e se senti il livello 5 correre nell'altro modo [Doug T])
- Quale ciclo di vita usano [DPD] (E se senti "Agile", è quando inizi a porre alcune domande penetranti per cercare di capire se per "Agile" significano "Agile o" codifica da cowboy "[Carson63000])
- Quali strumenti usano per valutare la qualità del codice? [DPD]
- Quali strumenti usano per lo sviluppo? [DPD] (Cerca strumenti di refactoring e server di generazione continua)
- Quale sistema di codice sorgente (controllo versione) usano e un buon follow-up è chiedere perché lo usano. [Zachary K].
- Come sono le loro procedure di test? [Karl Bielefeldt] (Cerca in particolare i team che utilizzano framework di derisione e pongono l'accento su test di unità automatici approfonditi attraverso framework consolidati come NUnit / JUnit; non lasciarti scoraggiare da team che non utilizzano TDD di sviluppo guidato dai test, ma sii diffidare se non considerano i test integrali e la pietra angolare del solido sviluppo del software. Cerca team con tester dedicati.)
- Quali tipi di incarichi vengono assegnati ai nuovi sviluppatori? A sviluppatori esperti? [Karl Bielefeldt]
- Quante persone lavorano su un progetto? [Karl Bielefeldt]
- È consentito il refactoring? Incoraggiato? [Karl Bielefeldt]
- Quali processi di qualità o modifiche all'architettura sono in esame o sono state apportate di recente? [Karl Bielefeldt]
- Quanta autonomia hanno le persone sui loro moduli? [Karl Bielefeldt]
- Svilupperai nuovi progetti (sviluppo greenfield) o progetti legacy (sviluppo brownfield)? (Lo sviluppo di Greenfield è generalmente più divertente e ha meno problemi in quanto non si sta pulendo con gli errori di qualcun altro).
- Il tasso di turnover dei dipendenti è elevato nell'organizzazione o nel team? (Ciò indica spesso una qualità inferiore del codice) [M.Sameer]
- Alcuni problemi di programmazione personali; ma evita di sembrare un coglione. [Sparky]
- Come collaborano gli sviluppatori e in che modo le conoscenze sono condivise tra il team? (Questo dovrebbe corrispondere alla tua personalità; direi che un mix di lavoro solista e di coppia è probabilmente il migliore, con il rapporto che corrisponde alle tue esigenze sociali)
- Quanto è vicino il loro database alla 3a forma normale (3NF) e se devia dove e perché? (Se dicono "3NF ???", vattene. In caso contrario, e potrebbero esserci buone ragioni per non farlo, allora scopri cosa sono).
NOTA: ho accettato la risposta di Anon perché dopo circa una settimana la comunità pensa che sia la migliore - penso che questo suggerisca che è solo qualcosa per cui in qualche modo devi sviluppare un sesto senso. Ma penso che tutti abbiano avuto qualcosa di prezioso da dire.