Думайте глобально, кодируйте локально: секрет для удаленных команд
Распределенные команды и удаленные офисы не уходят. Но могут ли они быть частью процветающей agile культуры? Мы думаем, что так.
Agile разработка изначально создавалась для кластерных групп или групп, физически расположенных в одном и том же офисе. В соответствии с идеей, что «самый производительный и эффективный способ передачи информации в команду разработчиков и внутри нее - это личный разговор», ранние agile команды должны были работать вместе в непосредственной близости.
Но сегодня у большинства компаний есть несколько распределенных команд. Это не просто тенденция; это имеет хороший смысл. Распределенные команды могут работать над проектами круглосуточно, и сильные таланты можно найти на менее конкурентных рынках.
(Не говоря уже о том, что талант легко удерживается, не требуя нежелательного перемещения.) Но преимущества распределенных команд не обходятся без некоторых компромиссов. Многим распределенным командам трудно принять agile практику взаимодействия лицом к лицу.
Другие вызовы, которые возникают для распределенных программных команд:
- Координация по часовым поясам.
- Построение отношений, когда все находятся не в одном офисе.
- Сотрудничество между различными культурами разработки.
- Планирование встреч или неформальных бесед, когда обе команды находятся в сети одновременно в течение нескольких часов (или меньше)
Это настоящие проблемы. Но не неразрешимые. Давайте рассмотрим некоторые стратегии, которые помогут преодолеть разрыв между локальными и удаленными офисами, а также идеи, которые помогут смягчить и другие потенциальные проблемы.
Как структурировать глобальные команды
Хорошая программная архитектура требует модульного дизайна, поэтому структурируйте свои команды одинаково. Каждый офис должен быть самодостаточным в разработке единой технологии, которая сводит к минимуму объем требуемой совместной работы с командами в других часовых поясах и делает их в целом автономными. Когда для проекта требуются команды из разных мест, они могут сосредоточиться на своих точках интеграции и API.
Ревью кода также играют важную роль. Поскольку люди находятся в сети в разное время, распространение знаний о коде между офисами значительно облегчает поддержку и обслуживание. Если производственная проблема возникает, когда команда не подключена к сети, другой офис может легко вмешаться, чтобы поддержать и решить проблему, благодаря ноу-хау, полученному в результате ревью кода между командами или между местами.
Построение хороших отношений
В любой программе, особенно в agile программах, важно иметь надежную связь со всей командой. Личная связь создает доверие, сводит к минимуму пропущенные ожидания, облегчает самоорганизацию и повышает моральный дух. В вашем офисе найдите время, чтобы узнать всех в вашей команде. И, насколько это возможно, делайте то же самое с людьми, с которыми вы работаете в удаленных офисах. Личные связи важны. Чем сильнее они становятся, тем больше шансов увидеть этих коллег как своих, а не отдаленных коллег из незнакомых мест без хороших взамоотношений.
PRO TIP:
В Atlassian каждый новый сотрудник публикует «вступительный блог» на нашем внутреннем экземпляре Confluence, инструменте для совместной работы с контентом Atlassian. В блоге рассказывается о новом найме как на профессиональном, так и на личном уровне (хобби, интересы, семья и т. д.), Что действительно помогает преодолеть разрыв между офисами. Чем больше мы знаем друг друга как людей, тем сильнее мы работаем вместе как команды.
Прежде всего, ничто не заменяет встречи лицом к лицу. Члены команды в каждом офисе получат выгоду от регулярного личного общения, включая видеоконференции, так же как и посещения удаленных офисов.
Видеоконференцсвязь очень помогает преодолеть разрыв между командами, особенно для распределенных agile команд. Тем не менее, команды, которые полагаются на видеоконференции, должны знать об определенных ограничениях.
- Видеоконференцсвязь позволяет только очень короткое окно общения, а работа в одном офисе дает значительную видимость в другой мир: проблемы, успехи и возможности.
- Между офисами возникают проблемы с сетью, из-за которых видео и аудио могут быть нестабильными или трудно понимаемыми.
- Большинство людей все еще считают видеоконференции запланированным временем. Создание культуры использования видеочата для спонтанных случайных разговоров требует времени.
Чтобы смягчить некоторые проблемы с видеоконференцией, предложите членам группы проводить еженедельные сеансы видеочата 1к 1 (один к одному). Они могут быть менее формальными и помогают облегчить обмен знаниями случайным образом. Товарищи по команде могут использовать эти возможности, чтобы построить взаимопонимание и работать лучше вместе.
Помните, что тон, голос и осанка играют важную роль в общении. Личное время помогает команде узнать своих удаленных коллег с высокой точностью, что, в свою очередь, делает будущую видеоконференцию более эффективной.
Будь то дом или продукт, вам нужно определить видение и наметить стратегические темы. Думайте о темах как об широко-организационных фокусируемых (сосредотачиваемых) областях. На чем вы хотите сосредоточиться в течение следующего квартала, 6 месяцев, года?
Где вы хотите провести время и ресурсы? Производительность, удобство использования, безопасность, новые конкурентные функции (джакузи какая-нибудь?) или комбинация всего этого?
КАК МЫ ЭТО ДЕЛАЕМ:
Стажировки (Командировки) - это временные назначения на новую должность или место работы, которые варьируются от нескольких недель до года. Это не только эффективный способ наладить взаимопонимание и распространение культуры в коллективе, но и отличный способ познакомить сотрудников с другой культурой.
Постройте единую культуру разработки
Есть четыре простых способа, которыми команды могут упростить работу в разных регионах и использовать общую культуру разработчиков:
- Чрезмерное общение во всех регионах.
- Минимизирование трения при настройке среды разработки.
- Четко определить сделанное определение.
- Создание рекомендаций по составлению эффективных отчетов об багах.
Давайте разберемся с этим.
Во-первых, при переходе от расположенного рядом офиса к распределенной культуре общение становится значительно сложнее. Первая задача - научить команду понимать, что, когда принимаются решения, и когда о их необходимо сообщать. Звучит (элементарно) как ежу понятно, но это легко забыть! Часто важные решения принимаются в коридорах, на неформальных встречах с местными командами или отдельными лицами. Плюс, можно легко отклонить маленькие решения как неважные.
ТВИИТ:
При переходе к распределенной культуре, есть ошибка на стороне чрезмерного общения.
Сообщайте даже мелкие детали, пока оба офиса не найдут здоровую канавку.
Когда решения принимаются, все в каждом офисе должны понимать решение и в идеале, почему оно было принято. Не используйте электронную почту. Слишком легко потерять важную информацию. Используйте систему управления контентом, такую как вики, где члены команды могут легко просматривать обновления для всей команды (и получать уведомления об обновлениях по электронной почте или через инструмент группового чата). Задержки, вызванные тем, что члены команды работают над устаревшей информацией, сталкиваются с препятствиями, а затем задают вопрос, стоит команде значительно больше времени, чем активный обмен информацией.
Во-вторых, согласованные среды разработки в коллективе облегчают совместную работу и отслеживают проблемы. Потратьте время на создание простого руководства «Приступая к работе» и устраните трения первого дня, максимально автоматизировав настройку.
В-третьих, при работе между офисами четкие стандарты в отношении определения «сделанное» облегчают управление ожиданиями и налаживают взаимодействие между командами. Твердое определение сделанного устраняет двусмысленность в работе. Например, при отправке выпуска релиза, в котором участвуют несколько групп, проясните, что значит быть «завершенным»: написан код, создан запрос на извлечение, код проверен, протестирован и объединен в соответствующую ветку.
И, наконец, распространение разработки означает, что не все находятся в сети, когда возникают проблемы. Наличие четких руководств по отчетам об багах и способов устранения неполадок облегчает отслеживание проблемы для любого члена команды. Проверка кода и хорошие автоматизированные тесты также делятся знаниями о кодовой базе и дают возможность пострадавшей команде исправить и проверить, что изменение не имеет никаких неожиданных побочных эффектов. Таким образом, ни одна команда не становится блокирующей.
Максимизируйте золотые часы
Каждый фотограф знает, что «золотые часы» - как до, так и после восхода и заката солнца - это один из самых эффективных моментов для съемки великолепных пейзажей. Золотые часы для распределенных команд разработчиков программного обеспечения - это когда локальные и удаленные группы находятся в своих офисах одновременно. Когда все команды находятся в офисе, это отличное время для летучек.
Для команд, которые разделяют работу между часовыми поясами, летучки - прекрасное время, чтобы передать эстафету, чтобы команда, которая только что вышла в онлайн, могла узнать, где остановилась другая. А удерживание летучки с помощью видеоконференции позволяет легко задавать вопросы и быстро набирать скорость, чтобы все были готовы к работе, как только встреча будет завершена.
Иногда офисы настолько далеко друг от друга, что встречи могут причинить одной форму боли для одной команды. (Встать в 5 утра, чтобы встать с другой командой? Ммм ... нет, спасибо.) Поверните время встречи так, чтобы это было общим бременем, вместо того, чтобы постоянно подвергать удаленную команду нечетным часам - верный способ разрушить мораль. Внимательно следите за участием всей команды в летучке. Если возникает чрезмерное напряжение или команда не получает от нее многого, члены команды начинают отключаться и перестают слушать или делиться. И летучки не обязательно должны быть ежедневным собранием. Встречайтесь с удаленной командой несколько раз в неделю и используйте другие дни для локальных встреч. Точно так же, вставание не должно быть утренней рутиной, также. Какое бы время суток ни было наиболее удобным для всех участников, это лучшее время дня.
Каждая команда распределена
В распределенной организации реальность такова, что каждая команда является удаленной. Все команды должны адаптироваться и научиться распределять работу между офисами, эффективно общаться и развивать согласованную культуру в разных регионах. Самые эффективные команды не просто приводят удаленный офис в соответствие с культурой штаб-квартиры, потому что они понимают, что каждый офис может чему-то научиться у других. Они стремятся найти и поделиться успешными практиками во всех местах. Они также охватывают «мы», предпочтительнее чем культуру «мы против них».
ТВИИТ: Даже команды в пределах одного офиса могут извлечь выгоду, работая как распределенная команда.
Потому что другая реальность такова, что они становятся распределенными время от времени. Деловые поездки выводят сотрудников за пределы офиса, а работа на дому иногда может помочь сотрудникам лучше управлять балансом между работой и личной жизнью. Команды, которые охватывают как структуру, так и прозрачность, масштабируются более эффективно. Когда ваш проект выходит за рамки вашего офиса, культура будет настроена на то, чтобы делать правильные вещи естественным путем.
По материалам Agile Coach "Remote-teams"