вторник, 20 мая 2008 г.

Парное программирование - что это такое и какие дает преимущества

Сегодняшний тренинг по инженерным практикам XP окончательно убедил меня в том, что очень многие у нас плохо себе представляют (или представляют хорошо, но неверно), что такое парное программирование и какие преимущества можно извлечь из его применения в проекте.
Собственно, поэтому родился этот пост.

Итак, Парное программирование - одна из методик Экстремального Программирования (eXtreme Programming), заключающаяся в том, что два человека ОДНОВРЕМЕННО трудятся над ОДНОЙ ЗАДАЧЕЙ и сидят при этом ЗА ОДНИМ компьютером.

Очень важно помнить, что в каждый момент времени они ОБА заняты решением задачи, например пока один (driver) пишет тест, другой (navigator) думает о коде, который реализует этот тест.

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

За счет чего это достигается?

  • При работе в паре решения задач приходят быстрее (две головы лучше, чем одна), и эти решения более качественные.


  • Пока вы пишите код, партнер думает на шаг вперед, и как только вы остановились, он берет у вас клавиатуру и продолжает писать, а вы смотрите, что он делает и начинаете думать над вашим следующим шагом.


  • Постоянное общение и совместная работа позволяет максимально повысить обмен знаниями и опытом внутри пары. Это идеальный способ для ввода в команду нового разработчика


  • Работа в паре дисциплинирует (нельзя просто встать и пойти курить или начать общаться по ICQ или смотреть любимые сайты).


  • Увеличивается кроссфункциональность в проекте, т.е. снижаются риски, связанные с отсутствием человека на работе (болезнь, увольнение).


  • И, наконец, это просто постоянное общение! (да, программистам это тоже нужно)


  • Не верите? Нужно просто попробовать!

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

    У вас получится!

    Для примера: эпизод экстремального программирования (конечно же в паре)