Как вы исследуете во время парного программирования?

20

Недавно я начал работать на новой работе, и спаривание помогло мне быстро начать работать там. Однако у меня трудные времена, когда мы должны провести краткое совместное исследование в ходе нашего рабочего процесса, охватывающее функции API, примеры кода или параметры команд. Руководитель группы настоятельно рекомендует нам проводить все исследования на нашей станции сопряжения, а не на отдельных ноутбуках, и синхронизировать наши исследования путем устного согласования шагов между различными веб-ресурсами.

Я исследую, читаю и воспринимаю информацию не так, как мой партнер по связыванию, и чувствую себя намного более продуктивно, когда я могу проследить поток исследований до следующей веб-страницы именно тогда, когда я этого хочу, вместо того, чтобы пытаться идти в ногу со временем и чтение моего партнера. Мы оба умные и быстрые, но мы не можем не двигаться по-разному и мгновенными скоростями, когда разбираемся. Кажется, гораздо легче пообщаться по отдельности на минуту, пока один из нас не скажет: «Я понял», а затем снова собраться и написать код.

Когда вы создаете пару программ, как вы решаете короткие исследовательские задачи? Что работает лучше для вас, и как вы должны синхронизироваться с вашим партнером?

traffichazard
источник

Ответы:

14

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

Таким образом, если ситуация требует этого, оторвитесь, когда это необходимо, и попробуйте снова, когда это необходимо.

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

Когда один из вас найдет ответ, возобновите pair programmingсеанс.

Короче, это называется Pair Programming,нет Pair Researching.

jmort253
источник
8

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

westcoastdiff
источник
1
Не отвлекается ли нетипир от того, что пара пытается достичь? Как он или она догоняет то, что сделал другой программист, пока они не смотрели?
Адам Лир
2
Если два человека работают на двух компьютерах, это не парное программирование!
Johnsyweb
6
Если человек на станции парного программирования занимается исследованиями, а не программированием, то процесс наверстывания просто подразумевает «Эй, чувак! Посмотри, что я только что нашел ...». То, что оба человека что-то исследуют независимо, не означает, что они перестают общаться.
jmort253
Я не думаю, что хочу зайти так далеко - когда код пишется, я хочу посмотреть на него. Я больше говорю о ситуации, когда мы оба знаем, что нам делать дальше, но мы не знаем, как это сделать - поэтому мы потратим минуту, чтобы разобраться в этом.
Транспортная опасность
2
Чтобы уточнить мой ответ. Нетипизирующий член, как правило, будет проводить исследования, только если код не был написан в то время. Например, печатный член тоже строит или исследует. @Johnsyweb Я думаю, что важно признать, что парное программирование (или, в этом отношении, муравейник) не является предложением «все или ничего».
Westcoastdiff
3

Параллельное исследование очень эффективно, если вы ищете ответы в разных местах. «Вы прочитали эту статью, я просмотрю книгу, и мы синхронизируемся через 10 минут». Кто бы ни придумал (возможное) решение, он, конечно, должен поделиться своими знаниями.

Один из отличных способов справиться с этим - использовать « шип ». Это происходит во время собрания по оценке, чтобы помочь сделать оценки более точными. Короче говоря, вы откладываете оценку конкретной задачи до тех пор, пока пик (с временными рамками) не будет завершен, и вы не будете достаточно знать о проблеме, чтобы уверенно поставить на нее цифру. Это может включать в себя опробование новой библиотеки или компонента или написание небольшой программы в качестве подтверждения концепции.

Мартин Викман
источник