Заметки с конференции по массовому программированию 2018 года¹ в Берлингтоне, Массачусетс.

Почему бандитское программирование?

Я скептически относился к программированию мобов. Многие люди, включая меня, задают повторяющийся вопрос, напоминающий комаров, когда они думают о моббинге: как я могу быть продуктивным в моббинге весь день? Оказывается, это неправильный вопрос. Вместо этого, как сказал Вуди Зуилл², спросите

Является ли команда более эффективной, когда она моббирует?

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

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

Что такое моб-программирование и как мне его практиковать?

В группе из 3 или более человек работайте над одной задачей на одном компьютере. Используйте одну клавиатуру и одного человека для набора текста на этой клавиатуре. Этот человек является водителем. Все остальные - навигаторы.

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

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

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

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

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

Ссылки

[1] https://agilegamesnewengland.com/index.php/mob-programming-conference

[2] Вуди Зуилл, член команды, открывшей моб-программирование в 2011 году. Https://www.agilealliance.org/resources/experience-reports/mob-programming-agile2014/

[3] Основной доклад Джессики Керр. Https://the-composition.com/the-origins-of-opera-and-the-future-of-programming-bcdaf8fbe960