Одноименная статья Джо Э. Ханнея из «Идеальная разработка ПО» (почти вся статья есть на англ., с 78 стр, первая страница которая скрыта). Небольшие заметки. Статья скорее является обзором последних исследовательских данных на тему определения качеств программиста, влияющих на разработку.
Личностные факторы
Результаты, основанные на модели большой пятерки при оценке личностных факторов таковы, что зависимости выявлены немногие. Несмотря на то, что чаще всего обращают внимание на добросовестность, корреляция на качество разработки выявлена только для двух случаев. Это две положительные связи с фактором "открытость опыту" и с разными уровнями экстраверсии при работе в паре.
Открытость опыту — активное познание и усвоение опыта «ради его самого», терпимость и склонность к познанию неизвестного. Чем этот фактор выше, тем лучше.
Разные уровни экстраверсии — чем уровни более разные, тем лучше. Два человека с близким уровнем в среднем по больнице имеют меньшую производительность. Один из механизмов — в таких парах недостаточен уровень обсуждения.
Интеллект и квалификация
Рассматриваются два фактора: GMA (General Mental Ability, приблизительно что и IQ, но более обобщенно) и квалификация (опыт в конкретной области).
И следующие утверждения на основе исследований.
GMA определяет способность к обучению и способность прогнозировать результат для работников без опыта. То есть, если необходимо нанять неопытных программистов для работы в какой-то области, то определяющим фактором будет GMA. При этом его влияние существенно для стабильных задач (таких задач, в которых имеются сходные стратегии решения). Если область такова, что стратегии постоянно разные и меняются, то влияние GMA сходит на нет.
Квалификация работает тогда, когда она относится к соответствующей предметной области. Если область другая, то квалификация теряет свое значение и может даже стать отрицательной. Квалификация может быть приобретена (в отличие от GMA, на который влиять сложнее), но при этом она имеет конечный предел (нельзя её повышать бесконечно, происходит насыщение).
Повлиять на GMA можно разными способами — в основном теми, что стимулируют когнитивные способности (увеличение емкости рабочей памяти мозга, мероприятия для улучшения запоминания и др.).
В связи с этим успехом в работе является сочетание квалификации и интеллекта. В краткосрочной перспективе влияние GMA мало, но в долгосрочной идет каскад: GMA способствует накоплению знаний (долговременная память), знания постепенно повышают квалификацию.
Работа в срочном режиме не способствует повышению квалификации. Срочные проекты может сделать квалифицированная, но не умная группа.
Оценка затрат на работы
В оценке затрат на проект много проблем и конца не видно. Такой список:
- за прошедшие десятки лет точность оценок не улучшилась;
- на оценку влияет ряд подсознательных неконтролируемых процессов;
- оценки различны в зависимости от постановки вопроса (что можно сделать за время t? или за сколько вы сделаете работу w? — в одном и том же случае второй вариант ведет к занижению оценок).
- для малых задач идет переоценка, для больших — недооценка;
- опытные руководители мало чем отличаются от неопытных оценщиков; качество оценки зависит от программных навыков и знания предметной области (но насколько ещё не выяснено); то есть, IQ хорошо подходит для приобретения навыков, но не для прогнозирования уже приобретенных навыков;