Довольно подробный обзор и анализ исследований различий в производительности представлен в двух статьях, написанных Стивом Макконнеллом :
Первая статья ( Изменения производительности ... ) гласит:
... В конце 1960-х годов Сакман, Эриксон и Грант (1968) провели первоначальное исследование, в котором были обнаружены огромные различия в производительности отдельных программ. Они изучали профессиональных программистов со средним опытом работы 7 лет и обнаружили, что соотношение времени начального кодирования между лучшими и худшими программистами было около 20 к 1; соотношение времени отладки свыше 25 к 1; размером программы от 5 до 1; и со скоростью выполнения программы около 10 к 1. Они не нашли никакой связи между опытом программиста и качеством кода или производительностью.
Детальное изучение выводов Сэкмана, Эриксона и Гранта показывает некоторые недостатки в их методологии ... Однако даже после учета недостатков их данные по-прежнему показывают более чем десятикратную разницу между лучшими программистами и худшими.
За годы, прошедшие с момента первоначального исследования, общий вывод о том, что «между программистами существуют различия по порядку величины», был подтвержден многими другими исследованиями профессиональных программистов (Curtis 1981, Mills 1983, DeMarco и Lister 1985, Curtis et al. 1986 , Card 1987, Boehm and Papaccio 1988, Valett и McGarry 1989, Boehm et al 2000) ...
Эта статья также имеет интересное примечание:
Эта степень вариации не уникальна для программного обеспечения. Исследование, проведенное Нормом Августином, показало, что в самых разных профессиях - писательском деле, футболе, изобретательстве, работе в полиции и других профессиях - около 20 процентов людей производят около 50 процентов результатов, независимо от того, являются ли результаты приземлениями или патентами. , раскрытые дела или программное обеспечение (Августин 1979).
Вторая статья ( ... Насколько обоснованным является базовое исследование? ) Была написана в основном для критического обзора первой статьи Лорана Боссавита :
Во второй статье, в разделе « Более глубокое погружение в исследования, поддерживающее« 10x »», Макконнелл более детально проверяет ссылки, использованные в первой статье, и делает вывод:
... Проанализировав эти цитаты еще раз при написании этой статьи, я снова пришел к выводу, что они подтверждают общий вывод о том, что между программистами существует 10-кратная разница в производительности. В исследованиях приняли участие сотни профессиональных программистов по всему спектру программ.
... объем исследований, поддерживающих утверждение 10x, столь же прочен, как и любые исследования, которые проводились в области разработки программного обеспечения. Исследования, которые подтверждают утверждение 10x, как правило, не подлежат методологическому ограничению, описанному на рисунке 1, поскольку они изучают саму индивидуальную изменчивость (т. Е. Только левую сторону рисунка). Bossavit не ссылается ни на одно исследование - ошибочное или иное, - которое опровергает требование 10x, и я также не видел таких исследований. Тот факт, что ни одно исследование не дало результатов, противоречащих заявке 10х, обеспечивает еще большую уверенность в заявке 10х. Когда я рассматриваю количество проведенных исследований, в совокупности я нахожу исследование не только наводящим на размышления, но и убедительным, что редко встречается в исследованиях по разработке программного обеспечения.
Для полноты, список ссылок, используемых в вариациях производительности ... также цитируется ниже:
Рекомендации
Августин, NR 1979. "Законы Августина и основные программы развития системы". Обзор управления оборонными системами: 50-76.
Бём, Барри В. и Филипп Н. Папаччо. 1988. «Понимание и контроль стоимости программного обеспечения». IEEE Сделки по программной инженерии SE-14, нет. 10 (октябрь): 1462-77.
Бём, Барри и др., 2000. Оценка стоимости программного обеспечения с Cocomo II, Бостон, Массачусетс: Addison Wesley, 2000.
Boehm, Barry W., TE Grey и T. Seewaldt. 1984. «Прототипирование против спецификации: мультипроектный эксперимент». IEEE Транзакции по программной инженерии SE-10, нет. 3 (май): 290-303. Также в Джонс 1986б.
Кард, Дэвид Н. 1987. "Программа оценки программных технологий". Информационные и программные технологии 29, нет. 6 (июль / август): 291-300.
Кертис, Билл. 1981. «Обоснование изменчивости программиста». Труды IEEE 69, нет. 7: 846.
Кертис, Билл и др. 1986. «Психология программного обеспечения: необходимость междисциплинарной программы». Труды IEEE 74, нет. 8: 1092-1106.
Демарко, Том и Тимоти Листер. 1985. "Работа программиста и влияние на рабочем месте". Материалы 8-й Международной конференции по программной инженерии. Вашингтон, округ Колумбия: IEEE Computer Society Press, 268-72.
DeMarco, Tom and Timothy Lister, 1999. Люди: продуктивные проекты и команды, 2-е изд. Нью-Йорк: Дорсет Хаус, 1999.
Миллс, Харлан Д. 1983. Производительность программного обеспечения. Бостон, Массачусетс: Литтл, Браун.
Sackman, H., WJ Erikson и EE Grant. 1968. «Исследовательские экспериментальные исследования, сравнивающие эффективность онлайн и оффлайн программирования». Коммуникации ACM 11, нет. 1 (январь): 3-11.
Валетт Дж. И Ф.Е. МакГарри. 1989. «Краткое изложение опыта измерения программного обеспечения в лаборатории разработки программного обеспечения». Журнал систем и программного обеспечения 9, нет. 2 (февраль): 137-48.
Вайнберг, Джеральд М. и Эдвард Л. Шульман. 1974. «Цели и производительность в компьютерном программировании». Человеческий фактор 16, нет. 1 (февраль): 70-77.