Парное программирование


Парное программирование — это метод гибкой разработки программного обеспечения , при котором два программиста работают вместе на одной рабочей станции. Один, водитель , пишет код , а другой, наблюдатель или навигатор , [1] просматривает каждую строку кода по мере ее ввода. Два программиста часто меняются ролями.

При рассмотрении наблюдатель также рассматривает «стратегическое» направление работы, выдвигая идеи по улучшению и вероятные будущие проблемы, которые необходимо решить. Это предназначено для того, чтобы водитель мог сосредоточить все свое внимание на «тактических» аспектах выполнения текущей задачи, используя наблюдателя в качестве подстраховки и проводника.

Парное программирование увеличивает количество человеко-часов , необходимых для написания кода, по сравнению с программистами, работающими индивидуально. [2] Однако в полученном коде меньше дефектов. [3] Наряду со временем разработки кода на окупаемость инвестиций влияют и другие факторы, такие как затраты на поддержку на местах и ​​обеспечение качества. Парное программирование теоретически могло бы компенсировать эти расходы за счет уменьшения дефектов в программах. [3]

Помимо предотвращения ошибок по мере их совершения, могут существовать и другие нематериальные выгоды. Например, вежливость отказа от телефонных звонков или других отвлекающих факторов во время совместной работы, меньшее количество перерывов в согласованные промежутки времени или общие перерывы для ответа на телефонные звонки (но быстрое возвращение к работе, поскольку кто-то ждет). У одного члена команды может быть больше внимания, и он может помочь управлять или разбудить другого, если он потеряет внимание, и эта роль может периодически меняться. Один участник может иметь знания по теме или методу, которых нет у другого, что может устранить задержки с поиском или тестированием решения или позволить найти лучшее решение, тем самым эффективно расширяя набор навыков, знаний и опыта программиста по сравнению с к работе в одиночку. Каждое из этих нематериальных преимуществ, а также многие другие, может быть сложно точно измерить.[ нужна ссылка ]

Система с двумя программистами обладает большим потенциалом для генерации более разнообразных решений задач по трем причинам:

Пытаясь разделить цели и планы, программисты должны открыто договариваться об общем курсе действий, когда между ними возникает конфликт. При этом они рассматривают большее количество способов решения проблемы, чем мог бы сделать один программист в одиночку. Это значительно улучшает качество дизайна программы, поскольку снижает вероятность выбора некачественного метода. [4]


Парное программирование
Парное программирование двух коллег, 2007 г.