schegloff (schegloff) wrote,
schegloff
schegloff

Category:

Фраза дня, или Основная фишка парного программирования

Собираю информацию по технологии разработки софта (в том числе и сайтостроения). Возник вопрос - а что, модное в некоторых кругах (например, являющееся одним из стандартов eXtremal proramming) парное программирование дает какой-то выигрыш в производительности? Полез в Гугль и нашел вот это:

По опыту двух проектов и по рассказам знакомых участовавших в парном программировании я вынес для себя две вещи:
1. Скорость разработки возрастает, в основном за счет того, что программистам приходится работать целый день.
2. Программистам быстро надоедает это занятие, в основном за счет того, что программистам приходится работать целый день


А если серьезно, то здесь лежит 7-мегабайтный PDF с серьезным сопоставлением "парного программирования" с одиночным. Четырехлетнее исследование, около трехсот участников, разделение на простые/сложные задачи и начинающих/средних/опытных Java-программистов. Пары при этом составлялись из программистов одинакового класса - начинающий с начинающим, профи с профи.

Вот результаты (эффект от парного программирования в сравнении с одиночным):



Здесь Duration - календарная продолжительность работы (число часов от момента получения задания до сдачи результата), Effort - реальная продолжительность работы (число человеко-часов на задачу, которое при равном времени вдвое больше у пары), Correctness - процент удовлетворяющих техтребованиям результатов (то есть часть заданий было сдано в не полностью рабочем состоянии).

А вот как выглядят те же результаты раздельно для простых и сложных задач:



Как легко видеть, результативность парного программирования по сравнению с обычным очень сильно зависит от квалификации - начинающим позволяет исправлять больше ошибок, середнякам - работать быстрее и меньше (143% Effort на двоих вместо 200%), а вот на профессионалов действует расхолаживающе (-8% по корректности). Когда квалификации середняков оказывается недостаточно (второй график, сложные задания) - парное программирование также приходит им на выручку, позволяя улучшить качество кода. А вот профессионалам работа в паре, похоже, только вредит - времени уходит больше, качество снижается.

Ну а теперь самый главный вывод. В реальной жизни (не слишком квалифицированные программисты и не слишком простые задачи) за счет парного программирования работодатель имеет возможность получить 16% ускорение разработки и 92% прирост в качестве, заплатив на 68% больше (Effort). Ускорение в 16% таких затрат, разумеется, не окупает; следовательно, основная выгода от парного программирования проявляется в том, что оно заставляет программистов работать более внимательно и выдавать более качественный код. А что такое работать более внимательно? Это и означает работать целый день, а не в ЖЖ сидеть :)

UPD. Друзья, большое спасибо! Лучшая дискуссия о PP, которую я читал!
Tags: ТССУ
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 76 comments