Является ли этот тип непрерывного программирования пары хорошим?

Я работаю в компании, где я вынужден заниматься парным программированием с парнем на 6 лет более опытным, чем я. В то же время мы работаем над тем же кодом, дизайном или какой-либо другой проблемой на том же ПК.

Неудобство.
Это устраняет чувство собственности на результат. Каждое другое настроение начинает влиять на оба.

Преимущество.
Хороший продуманный результат и выход для компании.

Я хочу знать, как другие разработчики решают эту ситуацию.

Ответ 1

Программирование пар как фигурное катание

  • вам не нужно быть вместе 24x7, только когда вы на льду! (т.е. существует много частей проекта, которые выигрывают от кодирования по отдельности, в результате повторная группировка пары в конечном итоге для просмотра/отладки, но не активно "конкурирующих" за ее завершение).
  • Все зависит от вашего партнера: он может работать очень хорошо или вообще не работать независимо от навыков катания (или программирования).
  • это требует правильного баланса честности и терпения (говорите, откровенно, но в нужное время, о вашей очевидной нехватке собственности или о большом удовольствии, которое у вас есть с некоторыми задачами или вашей гандикапом с другой частью и т.д..)

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

Конечно, программисты должны пробовать эту дисциплину в целом и работать с конкретными партнерами всерьез (в течение достаточно долгого времени, а также для разных типов проектов) до объявления конфликта личности. Может случиться так, что данная пара лучше работает с конкретными типами проектов.

Ответ 2

Я полагаю, вы хотите что-то владеть, взять на себя ответственность модуля/набора модулей и назвать его своим? Это действительно зависит от вашего проекта, возможно, садится с вашим PL, и говорить об этом было бы хорошей идеей. Таким образом, он мог бы отдать какую-то часть ответственности за это, вы все равно могли бы спарить программу.

Ответ 3

Одним словом - YES!

Но я думаю, что сначала всем сложно.

Большинство хороших программистов, которых я знаю, делают XP, сказал: "Сначала мой босс заставляет меня спарить". Вы не одиноки!

Продюсер Если вы хотите больше ощутить лидерство, вы можете представить роль "продюсера истории" в команде. В каждой истории есть "производитель" - человек, ответственный за то, чтобы удостовериться, что конкретная история полностью завершена (продуманная, очищенная с клиентом, проверенная, развернутая и демонстрационная). Быть продюсером может означать выбивание существенного куска функциональности и чувство ответственности за что-то - даже если вы не работаете над ним каждый день на итерации. Devs подписывается как продюсер в начале итерации, называя свое имя на истории.

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

Есть положительные моменты:

  • Вы можете увидеть различные способы решения проблем.
  • Вы научитесь намного лучше объяснять вещи.
  • В том, что вы делаете спаривание, гораздо больше разнообразия - вы не застреваете в той же части кода.
  • Поскольку разработчики учатся работать вместе, вы пишете лучший код и разрабатываете "командный стиль".
  • Вы можете заниматься тем, что обычно было бы за пределами вашего непосредственного набора навыков - например, сопряжение с администратором баз данных или графическим дизайнером. Это здорово иметь представление о нескольких новых вещах.

Отрицательных:

  • Выбор пар может быть сложным, и некоторым парам труднее установить взаимопонимание.
  • Некоторые "знают все это" рассматривают спаривание, поскольку они говорят другим людям, что делать. Это действительно сложно заставить их сотрудничать должным образом.
  • Очень сильный разработчик, с которым я работал, получил разочарование, потому что он больше не был единственным парнем, работающим на конкретной кодовой базе. Он потерял чувство собственности.

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

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

Вы постепенно привыкаете к спариванию. Иногда я нахожусь в желании обсудить "какой путь идти" с дизайном - что, когда я пропускаю спаривание... Я почти повернулся и спросил эту бабушку, которая вязала рядом со мной в поезде об объекте дизайна однажды!; -)

Ответ 4

Снижение собственности может рассматриваться как преимущество

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

Pair Programming Увеличивает средний уровень навыка/опыта команды

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

Принуждение людей, особенно программистов, является проблемой

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

Если вы не можете решить проблемы с людьми, и вы не можете жить с ними, кому-то может потребоваться

Конечно, личности могут вызвать трение во время парного программирования. Но если люди не могут это сделать зрелым, то я считаю, что это проблема людей, а не проблема практики. Есть еще разработчики, которые предпочитают работать в одиночку и "владеть" частью проекта. Может быть трудно убедить их работать иначе. Если он не может быть проработан, то он либо торжествует, либо кто-то уходит добровольно, либо кто-то отпускается.

Ответ 5

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

Исключением является то, что ваш партнер менее компетентен, чем вы, несмотря на более многолетний опыт.

Ответ 6

Есть несколько факторов, которые повлияли бы на то, как я бы ответил на это:

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

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

Вы могли бы рассматривать это как способ работать над тем, как вы пациент, и насколько хорошо вы действительно понимаете кого-то другого. Может быть полезно быть настолько близким к кому-то, что вы могли бы почти закончить свои предложения для них.

Где я работаю, мы можем иметь парное программирование на новых функциях, и это вообще хорошо. Всего в команде около 7 разработчиков, поэтому могут быть несколько пар и некоторая сольная работа. Были даже прозвища, даваемые некоторым парам, которые помогают дать команде некоторую сплоченность и привязанность к моему разуму. Обычно пара работает над историей, и когда история завершается, пара распадается, если нет другой истории, которую оба хотели бы сделать. Как правило, мне полезно объяснять вещи и привлекать кого-то другого к моему поезду или если я даю обратную связь, так как у другой половины пары есть идея, что я могу проверить и посмотреть, насколько она будет работать.

Ответ 7

Вы решаете проблему очень быстро. Вероятно, вы уменьшите количество ошибок в этом процессе. В чем проблема?

Считаете ли вы, что ваш более опытный партнер доминирует над процессом и лишает вас чувства собственности на результат?