Советы, которые можно и нельзя для более эффективного сочетания

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

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

Никогда не говорите партнеру, что делать, сначала спросите, имеет ли это смысл

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

Прежде чем что-либо делать, четко укажите, что будет сделано дальше, и убедитесь, что оба согласны с этим.

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

При потере синхронизации верните его как можно скорее

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

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

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

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

Установите время сеанса, чтобы не забывать о ненужных обсуждениях и временных затратах.

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

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

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

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

Поощряйте объединение всех ролей в команде между собой и разработчиками.

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

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

Задавать правильный вопрос гораздо ценнее, чем верить в правильный ответ.

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

Убей свое эго

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

Дело в том, что сила парного программирования заключается не только в механике его применения, но и в мышлении тех, кто его применяет.

Парное программирование - это не только механика его применения, но и образ мышления того, кто его применяет.

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

Как любил говорить Уэйн Гретцки, бывший профессиональный канадский хоккеист:

Вы пропускаете 100% снимков, которые не делаете.

Достаточно показать, как это делать правильно. Если вы хотите узнать, как выполнять парное программирование неправильным путем, см. Как выполнять парное программирование неправильным путем.

Спасибо за прочтение. Если у вас есть отзывы, напишите мне в Twitter, Facebook или Github.