командная работа
May 15, 2019

Синхронизация процессов в распределённых командах

Расскажу сегодня про то, как в нашей команде устроены процессы синхронизации прогресса, планов и просто общение внутри команды.

Я уже писал про то, зачем это всё нужно: менеджерам нужно понимать над чем в данный момент ведётся работа, инженерам нужно видеть общую картину и прогресс, клиентам нужно как-то влиять на приоритеты.

В классической команде, которая базируется в одном офисе, всё более-менее стандартно:

  • митинги
  • стендапы
  • планирование спринта
  • другие активности "по книжке"

В случае удаленной разработки, особенно, если команда распределена по различным часовым поясам, добавляются новые челленджи. Вот про то, как мы их решаем и будет этот пост. Для контекста уточню, что всё это рассматривается на примере небольшой (до 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.