По моему опыту, прежде чем вы начнете работать в компании, у вас нет возможности взглянуть на кодовую базу (я спрашивал, и из соображений конфиденциальности все всегда говорили «нет», я думаю, что это справедливо), поэтому во время собеседования Как вы думаете, самые важные вопросы, которые нужно задать, чтобы выяснить, в каком состоянии находится код (в конце концов, если это собака, то вы окажетесь среди бедных несчастных, которым приходится каждый день выгуливать его)?
ОБНОВИТЬ:
Контрольный список: Спросите;
- Что они думают о кодовой базе. И когда вы это сделаете, обратите пристальное внимание на выражения лица и время, которое требуется им, чтобы ответить. [Анон]
- Каков уровень CMM компании [DPD] (и если вы слышите, как Уровень 5 работает в другом направлении [Doug T])
- Какой жизненный цикл они используют [DPD] (И если вы слышите «Agile», тогда вы начинаете задавать некоторые проницательные вопросы, чтобы попытаться выяснить, означают ли «Agile» «Agile» или «ковбойское кодирование» [Carson63000])
- Какие инструменты они используют для оценки качества кода? [DPD]
- Какие инструменты они используют для разработки? [DPD] (ищите инструменты рефакторинга и серверы непрерывной сборки)
- Какую систему исходного кода (контроля версий) они используют, и хорошее продолжение - спросить, почему они ее используют. [Захари К].
- Каковы их процедуры тестирования? [Карл Билефельдт] (Особенно обратите внимание на команды, которые используют фальшивые фреймворки и делают упор на тщательном автоматизированном модульном тестировании с помощью установленных фреймворков, таких как NUnit / JUnit; не откладывайтесь на команды, которые не используют TDD для разработки через тестирование, но Осторожно, если они не считают, что тестирование является неотъемлемой частью и краеугольным камнем надежной разработки программного обеспечения. Ищите команды с преданными тестерами.)
- Какие виды заданий даются новым разработчикам? Для опытных разработчиков? [Карл Билефельдт]
- Сколько людей работает над проектом? [Карл Билефельдт]
- Разрешен ли рефакторинг? Воодушевленный? [Карл Билефельдт]
- Какие изменения в процессе или архитектуре, связанные с качеством, рассматриваются или были сделаны недавно? [Карл Билефельдт]
- Сколько автономии имеют люди над своими модулями? [Карл Билефельдт]
- Будете ли вы разрабатывать новые проекты (разработка новых месторождений) или унаследованные проекты (разработка новых месторождений)? (Разработка с нуля, как правило, более увлекательна и имеет меньше проблем, поскольку вы не исправляете чужие ошибки).
- Высока ли текучесть кадров в организации или команде? (Это часто указывает на более низкое качество кода) [M.Sameer]
- Некоторые собственные проблемы программирования; но старайтесь не казаться придурком. [Спарки]
- Как сотрудничают разработчики и как знания распространяются среди команды? (Это должно соответствовать вашей индивидуальности; я бы сказал, что сочетание одиночной и парной работы, вероятно, лучше всего, с соотношением, соответствующим вашим социальным потребностям)
- Насколько близка их база данных к 3-й нормальной форме (3NF), и если она отклоняется, где и почему? (Если они говорят «3NF ???», уходите. Если нет, и для этого могут быть веские причины, то выясните, что они собой представляют).
ПРИМЕЧАНИЕ: я принял ответ Анона, потому что примерно через неделю сообщество считает его лучшим - думаю, это говорит о том, что для этого нужно как-то развить шестое чувство. Но я думаю, что у каждого было что-то ценное, чтобы сказать.