Синхронизация процессов в распределённых командах
Расскажу сегодня про то, как в нашей команде устроены процессы синхронизации прогресса, планов и просто общение внутри команды.
Я уже писал про то, зачем это всё нужно: менеджерам нужно понимать над чем в данный момент ведётся работа, инженерам нужно видеть общую картину и прогресс, клиентам нужно как-то влиять на приоритеты.
В классической команде, которая базируется в одном офисе, всё более-менее стандартно:
- митинги
- стендапы
- планирование спринта
- другие активности "по книжке"
В случае удаленной разработки, особенно, если команда распределена по различным часовым поясам, добавляются новые челленджи. Вот про то, как мы их решаем и будет этот пост. Для контекста уточню, что всё это рассматривается на примере небольшой (до 20 человек) команде, с разницей в 6-10 часов.
Ежедневные апдейты
Ежедневные апдейты, или стендапы можно проводить в формате видео-конференции или просто голосового звонка, но все начинают работать в разное время, кто-то работает из отелей или из коворкингов, в целом получается не очень удобно, занимает больше времени, чем обычный стендап.
К тому же мы заметили, что люди постоянно опаздывают и регулярно имеют проблемы с качеством связи. В итоге мы пришли к ежедневным апдейтам в Slack.
Сначала завели отдельный канал, куда все кратко писали свои апдейты. Позднее пришли к использованию бота, который умеет напоминать о времени апдейта (заодно позволяет выбрать удобное для человека время).
Выглядит это так:
Утром бот вежливо напоминает о себе (иногда тупит, и напоминает ночью, как на этом скриншоте, хех). Боту нужно ответить на три вопроса: что делал вчера, что будешь делать сегодня, и какие проблемы у тебя есть.
После аккуратно оформленное саммари будет опубликовано в #daily-updates канале, где все могут его прочитать, и получить представление о делах в проекте.
Так как мы использум тайм-трекеры, то апдейт не составляет большого труда, просто просматриваешь записи со врчерашнего дня. Занимает это пару минут с утра, пока пьёшь утренний кофе.
Планирование итераций
Спринты в классическом понимании у нас не прижились, слишком уж такие вещи опираются на личное общение. Со временем формат работы трансформировался в некое подобие Канбана, но сохранил идею итераций, сфокусированных на одной цели.
Тим-лиды, совместно с менеджерами готовят задачи на новую итерацию, затем в понедельник утром команда созванивается и уже голосом кратко обсуждает итоги прошедшей недели, и основной фокус и задачи на новую итерацию.
Раньше общались через Hangouts, но после внезапного бана нашего корпоративного аккаунта Гуглом, мы переехали к Майкрософту и сейчас используем Skype for Business. Работают они примерно одинаково сносно, так что особой разницы не заметили.
Такой звонок занимает 30-50 минут в зависимости от загруженности команды и сложности планирования. Но в целом мы стараемся держать его максимально коротким.
Хочу отметить, что многие сотрудники не включают камеры во время этого митинга, что плохо влияет на сплоченность команды, но в целом объяснимо. У кого-то это раннее утро, и звонок проходит из дома. Я и сам часто общаюсь с телефона и в это время выхожу погулять по ближайшему парку или по тихим каналам Амстердама.
Периодически мы вспоминаем про камеры и стараемся включать их, но постепенно народ начинает лениться через какое-то время звонки проходят лишь голосом.
Синхронизация работы
В течении дня в нашей (да и в других известных мне распределенных командах) происходит борьба двух противоположностей.
С одной стороны всем хочется получать ответы на свои вопросы максимально быстро, что по-сути является требованием быть он-лайн весь рабочий день.
С другой стороны — разница в часах, периодические несинхронизированные обеды, праздничные дни в разных странах и личные дела, всё это требует строить работу максимально асинхронно.
К счастью, у нас достаточно приличное пересечение по рабочим часам. Около трёх-четырёх часов в сутки. Таким образом мы можем планировать некоторые активности, требующие личного присутствия, на это время. Например демо, или какие-то обсуждения.
Приходится вводить какой-то порядок в слак-каналах. Есть каналы для асинхронного общения (какие-то объявления, соглашения или решения с митингов публикуются там).
Кроме них присутствуют "оперативные" каналы, в которых можно попросить помощи, посоветоваться. Конечно же длинные дискуссии прерываются и переводятся в формат звонка. Как правило голосом через тот же Слак. Там уже можно и экран пошарить и долго пообсуждать что либо.
Так вышло, что Слак у нас не только тул для общения, но и инструмент для организации работы. Активно используются ремайндеры и интеграции, туда же приходят различные нотификации от деплоймент тулов, билд систем, алерты от мониторингов и многое другое.
Чтобы избежать полного хаоса приходится тренировать команду. Нужно обращать внимание на то, как использовать меншены (@here vs @channel vs @username), куда и что постить. Очевидно, что нужно вовремя покидать ненужные каналы, мьютить не релевантные обсуждения. Но в итоге работает хорошо.
1-on-1 митинги
Подобных митингов у нас практически нет, но при необходимости они проводятся на нерегулярной основе. В основном их цель выполняют разные вне рабочие активности. Люди из одного города могут куда-то схоить вместе, иногда поработать у кого-то дома или потусить в коворкинге.
Кроме того стараемся регулярно кататься в соседнюю страну, где можно уже что-то отметить, посидеть в ресторане или просто во дворе или на крыше у сотрудников.
Тут везёт не всем, и часть команды, живущая в другом полушарии таких возможностей лишена. У них там своя локальная тусовочка.
Как там у них?
По результатам опроса в твиттере я узнал, что многие команды используют любопытные приёмы. Помимо стандартных есть такие штуки, как:
- Запись митингов и выкладывание их в формате внутреннего подкаста
- Запись видео-конференций с демо и обсуждениями
- Кто-то считает, что стендапы не нужны вообще и прекрасно живёт без них
- Кто-то считает, что чат должен быть не основным инструментом общения
Посты на эти и другие темы публикую в канале: https://t.me/your_soft_skillzz
и твиттере https://twitter.com/soft_skillzz
Напоминаю, что мне можно задать вопрос или предложить свою тему для нового поста через форму обратной связи: https://goo.gl/forms/1G2206MfVzfoowHf2
Подписывайтесь и рассказывайте друзьям.
МS.