Подход Mob Programming — это метод разработки программного обеспечения, при котором весь коллектив работает над одним и тем же заданием. Одновременно, в одном пространстве и за одним компьютером. Это расширяет концепцию парного программирования от работы двух человек вместе. До сотрудничества всей команды за одним компьютером для достижения одного рабочего элемента за раз.
Кроме кодинга, команды, практикующие Mob Programming, совместно работают над почти всей работой типичной команды разработки программного обеспечения. Включая определение историй, работу с клиентами, проектирование, тестирование и развертывание программного обеспечения. Эта работа выполняется на воркшопах или «рабочих встречах».
Команда включает всех, кто участвует в создании программного обеспечения, включая клиентов.
Подход Mob Programming опирается на такие концепции как:
- личное общение, бок о бок
- полное участие команды
- непрерывный обзор кода
- самоорганизующиеся команды
Ожидаемые преимущества
Сотрудничество в Mob Programming приводит к исчезновению многих проблем. С которыми обычно сталкиваются команды разработки программного обеспечения. Эти проблемы включают:
Коммуникация
Проблемы связи, такие как ожидание ответов на вопросы, затрачиваемое время на обратное электронное общение и вероятность недопонимания из-за общения через документацию. Эти проблемы уменьшаются или исключаются благодаря сотрудничеству в личном общении в Mob Programming.
Принятие решений
Проблемы принятия решений, такие как неохота принимать решения и необходимость защищать принятые решения. Поскольку всей командой принимаются решения, эти решения принимаются с более актуальной и релевантной информацией. Кроме того, команды, использующие Mob Programming, видят решения как возможность учиться и непрерывно направляться к более хорошему решению.
Делать больше
Избыточное включение того, что необходимо только на минимум, приводит к потере. Когда команда работает над одним заданием за раз и стремится доставлять что-то в реальное использование каждый день, команда имеет тенденцию сохранять вещи простыми и предотвращать добавление ненужных элементов. Вовлечение всей команды, включая владельца продукта, в эти ежедневные усилия предотвращает случайное добавление чего-то лишнего.
Технический долг
Технический долг — это все, что делает код более сложным для поддержания. Mob programming ставит множество глаз на текущую работу и значительно уменьшает вероятность введения многих видов технического долга. Множество глаз также увеличивает вероятность того, что команда выявит технический долг где-то еще, что замедляет их прогресс по текущей работе.
Потеря фокуса
Потеря времени и фокуса от переключения контекста между членами команды и самой командой. Подход предотвращает потерю времени через использование одного потока работ и снижает воздействие потери времени, потому что другие члены команды могут продолжить работу, даже если одного из членов команды попросили переключить контекст.
Разделение уровня задач
Политика на уровне индивидуального разработчика, такая как насколько люди будут помогать друг другу. Может иметь неблагоприятное воздействие на эффективность команд. Mob programming поддерживает работу команды и побуждает людей разобраться, как они лучше всего подходят для помощи команде.
Собрания
Встречи могут привести к разделению работы и созданию знаний от принятия решений. Иронично, через использование постоянных «рабочих встреч» Mob Programming обеспечивает объединение работы. Создания знаний и принятия решений, ведет к гораздо более тесной согласованности и более эффективным действиям.
Распространенные ошибки
Есть некоторые вещи, которые стоит учесть при внедрении Mob Programming:
Работа в состоянии постоянного сотрудничества с командой весь день может не всем подойти. Некоторые члены команды могут найти другие возможности или вызвать сбои. Потому что им не удобен такой способ работы. В таких случаях команда может решить проблемы с помощью рабочих практик. Позволяющих членам уходить из группы на определенные периоды. Если им нужно время для концентрации, или те члены, которым не удобен такой способ работы, могут найти другую группу для сотрудничества.
Когда группа людей тесно работает вместе день за днем, повышается риск, что заразные болезни будут распространяться по команде. Практики команды, которые признают этот факт и учитывают его, могут уменьшить вероятность и воздействие этого риска.
Mob programming будет работать только в том случае, если команда видит ценность в таком подходе и выбирает работать таким образом. Поскольку подход требует обязательства и изменений в рабочем стиле для всех, участвующих в этом, изменение не будет столь эффективным, если люди почувствуют, что им приказывают внести изменения.
История появления mob programming
Происхождение
2011 год. Команда разработки программного обеспечения в Hunter Industries случайно наталкивается на Mob Programming как эволюцию практики TDD и Coding Dojos. И применяет эти методы для ознакомления с проектом, который был приостановлен на несколько месяцев. Постепенное развитие практик, а также ежедневный цикл проверки и адаптации привели к подходу, который сейчас известен как Mob Programming.
2014 год. Woody Zuill изначально описал Mob Programming в Experience Report на Agile2014 на основе опыта его команды в Hunter Industries.
Внешние признаки использования mob programming
Команда, эффективно использующая Mob Programming, будет обладать следующими характеристиками:
- Члены команды подходят ко всем своим взаимодействиям друг с другом с добротой, вниманием и уважением.
- Физическое пространство команды настроено, чтобы вся команда могла работать над одним и тем же заданием. Одновременно на одном компьютере без эргономических проблем.
- Команда практикует поток одного элемента. Начиная, работая и доставляя один рабочий элемент перед переходом к следующему.
- Команда всегда стремится к улучшению через частые ретроспективы, сочетающиеся с конкретными пунктами действий.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.