| |||
![]()
|
![]() ![]() |
![]()
Фраза дня, или Основная фишка парного программирования Собираю информацию по технологии разработки софта (в том числе и сайтостроения). Возник вопрос - а что, модное в некоторых кругах (например, являющееся одним из стандартов eXtremal proramming) парное программирование дает какой-то выигрыш в производительности? Полез в Гугль и нашел вот это: По опыту двух проектов и по рассказам знакомых участовавших в парном программировании я вынес для себя две вещи: 1. Скорость разработки возрастает, в основном за счет того, что программистам приходится работать целый день. 2. Программистам быстро надоедает это занятие, в основном за счет того, что программистам приходится работать целый день А если серьезно, то здесь лежит 7-мегабайтный PDF с серьезным сопоставлением "парного программирования" с одиночным. Четырехлетнее исследование, около трехсот участников, разделение на простые/сложные задачи и начинающих/средних/опытных Java-программистов. Пары при этом составлялись из программистов одинакового класса - начинающий с начинающим, профи с профи. Вот результаты (эффект от парного программирования в сравнении с одиночным): ![]() Здесь Duration - календарная продолжительность работы (число часов от момента получения задания до сдачи результата), Effort - реальная продолжительность работы (число человеко-часов на задачу, которое при равном времени вдвое больше у пары), Correctness - процент удовлетворяющих техтребованиям результатов (то есть часть заданий было сдано в не полностью рабочем состоянии). А вот как выглядят те же результаты раздельно для простых и сложных задач: ![]() Как легко видеть, результативность парного программирования по сравнению с обычным очень сильно зависит от квалификации - начинающим позволяет исправлять больше ошибок, середнякам - работать быстрее и меньше (143% Effort на двоих вместо 200%), а вот на профессионалов действует расхолаживающе (-8% по корректности). Когда квалификации середняков оказывается недостаточно (второй график, сложные задания) - парное программирование также приходит им на выручку, позволяя улучшить качество кода. А вот профессионалам работа в паре, похоже, только вредит - времени уходит больше, качество снижается. Ну а теперь самый главный вывод. В реальной жизни (не слишком квалифицированные программисты и не слишком простые задачи) за счет парного программирования работодатель имеет возможность получить 16% ускорение разработки и 92% прирост в качестве, заплатив на 68% больше (Effort). Ускорение в 16% таких затрат, разумеется, не окупает; следовательно, основная выгода от парного программирования проявляется в том, что оно заставляет программистов работать более внимательно и выдавать более качественный код. А что такое работать более внимательно? Это и означает работать целый день, а не в ЖЖ сидеть :) |
|||||||||||||
![]() |
![]() |