Получение участия в моб-программировании в вашей организации

сент. 14, 2018·
Денис Трофимов
Денис Трофимов
· 5 мин чтения
blog team lead

Репост https://simpleprogrammer.com/mob-programming/.

![Эта статья была написана в сотрудничестве Нейтом Уиксомом и Торри Пауэллом.](https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2018/09/mod-square.png «Эта часть была совместной работой Нейта Уиксома и Торри Пауэлла.»)

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

Исследование Pulse of the Profession, проведенное Институтом управления проектами в 2017 году, сообщает, что 71 процент организаций в настоящее время используют гибкие методы для завершения проектов. В число гибких подходов входит массовое программирование, определяемое Agile Alliance как «подход к разработке программного обеспечения, при котором вся команда работает над одним и тем же, в одно и то же время, в одном пространстве и на одном компьютере». Представьте себе нескольких инженеров на одной станции, совместно работающих над одним проектом.

Хотя многие организации приняли массовое программирование в качестве основной части своего набора навыков разработки, не все организации-разработчики согласились.

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

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

Получение поддержки от руководства

Еще в 2000 году преимущества объединения разработчиков над проектами для решения проблем оценивались по сравнению с результатами отдельных людей. Часто цитируемое совместное исследование Университета Северной Каролины и Университета Юты показало, что программисты, работающие в паре, на 15 процентов более успешны в решении задач и что для их решения требуется меньше строк кода.

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

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

Если вам удастся добиться от руководства согласия на испытательный срок от шести до 12 месяцев для программирования мафии, вот некоторые преимущества, которые увидит ваша организация:

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

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

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

Получение поддержки от программистов, разработчиков и инженеров

![Получение поддержки со стороны высшего руководства – это одно. Получить поддержку от людей, которые на самом деле будут заниматься программированием мафии, - это совсем другое.](https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2018/09/team-work.png «Получить поддержку от высшего руководства - это одно. Получить поддержку от людей, которые на самом деле будут заниматься программированием мафии, - это совсем другое.»)

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

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

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

Каждый моб имеет две роли: водитель и штурман(ы). Водитель сидит за компьютером и вводит код, а навигаторы говорят ему, что набирать. Эти роли в толпе меняются с регулярными интервалами от восьми до 15 минут, давая каждому равные возможности управлять автомобилем и ориентироваться.

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

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

Делаем прыжок

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

Мы дали вам некоторую навигацию, так что будьте готовы к поездке.

  • Photo by Georgia National Guard CC 2.0
Денис Трофимов
Авторы
Архитектор ПО, Архитектор данных

Архитектор ПО, Архитектор данных


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


  • Инженер Go, Python, C++, C с 2006 года.
  • Последние 3 года: инженерия платформ, создание внутренних порталов разработчиков (IDP) и сдвиг организаций влево в DevOps.
  • Проектировал и строил автономные и клиент-серверные приложения с базами Oracle DB, PostgreSQL и MySQL.
  • Разрабатывал CRM-системы, веб-автоматизированную обработку заказов и симуляции для эксплуатации железнодорожного подвижного состава.