Моя команда займалася парним програмуванням з моменту заснування, задовго до того, як я працювала там, як частина магазину стилів здебільшого "екстремального програмування". Парне програмування - це стан за замовчуванням ; люди дійсно йдуть одноособово, якщо є непарна кількість, або періодично для розслідувань, особливо тих, які включатимуть возитися з ворожою технікою та намагатись змусити її працювати.
"Молодший / старший" - не єдиний шлях. «Проміжний / молодший» корисний; це допомагає хлопцеві середнього рівня синтезувати отримані знання, змушуючи його передавати його комусь іншому. "Проміжні / проміжні" виклики двоє людей працюють разом, щоб ділитися своїми знаннями, спілкуватися та працювати як частина команди. І навіть якщо у вас є два дійсно старших хлопця, швидше за все, вони мають різні сфери знань і можуть придумати різні підходи. Аспекти обміну знаннями не закінчуються, коли хтось розпливчасто «набирає швидкість» на проекті. Скоріше, парне програмування є втіленням організації навчання . Нові методи та передовий досвід швидко поширюються.
Парне програмування також допомагає підтримувати якість коду (менша кількість дефектів) та розумність коду (він не просто робить те, що має намір, але робить те, що повинен ... Ідеально, не знижуючи багатотижневого кролика, дірка робить неправильну річ або дві різні правильні речі, які будуть дико конфліктувати). Це допомагає програмістам зберегти свою увагу: тут, в самому центрі Силіконової долини, будинку 80-годинного робочого тижня, ми можемо працювати лише 40 годин на тиждень, тому що робимо інтенсивне кодування вісім годин на день, перемикаючи речі одне з одним. (Крім того, якщо ви більше не займалися парним програмуванням, ви, ймовірно, вигортаєте. Або принаймні вигораєте.) Це чудово підходить для балансу між роботою та життям, а також допомагає вашій організації, коли важливо мати швидкий поворот (зокрема, з низькою затримкою).
Це не все, повністю, 100% персики і вершки; Я вважаю, що парне програмування періодично перешкоджає моєму застосуванню інтуїтивних мозкових процесів, які корисні при певних проблемах. Зовсім недавно на завдання з витоку пам’яті я провів деякий час як з парами, так і без них; без одного я почував себе вільніше возитися і пробувати експерименти, не знаючи, як саме пояснити, що я робив у будь-який момент. Є також деякі переваги в роботі синглтон, вміння виходити на дотичну і робити певні динамічні зміни (оцінені в методології XP) на примху.
Але все, що сказано, переваги набагато перевищують витрати, і спарювання для нас спрацювало вражаюче: від стадії запуску через придбання більшою компанією та подальшої нашої інтеграції. (Якщо говорити про це, парне програмування допомогло нам зберегти наступність культури шляхом розширення і, незважаючи на невеликий оборот).
(Ми розробляємо програмний прилад в Perl, ~ $ 4000 - $ 40 000 за ціновою лінією.)