Перейти к основному содержимому

Удалённая и распределённая команда

Руководителю Разработчику

Удалёнка — это другой режим работы

Удалённая команда — люди работают не из одного офиса: разные города, страны, часовые пояса. Распределённая команда — то же по сути; иногда подчёркивают, что нет "главного" офиса, где принимают все решения.

Новичку кажется: "есть Zoom и Slack — чем не офис?" Проблема в неявном контексте. В офисе вы подслушали обсуждение у доски. Удалённо — если это не в тикете или wiki, для вас этого не было.

Базовые опоры распределённой работы:

  1. Documentation-first — решение в wiki или ADR, не только в записи звонка.
  2. Async-first — сначала текст; созвон, когда текст не помог.
  3. Overlap window — общие часы для синхронных встреч.
  4. Явные ожидания — SLA ответа в чате, без культуры "онлайн 24/7".

См. команду и управление, методологию, итоги раздела.

Для junior

Не стесняйтесь задавать вопросы в тикете с @mention — так ответ увидят все, кто подключится позже. Личка "быстрый вопрос" часто теряется для команды.


Async-first — асинхронность по умолчанию

Async-first — способ организации работы, при котором основной канал асинхронный: тикет, комментарий, PR, документ. Синхронный созвон — исключение, когда:

  • за разумное время (4–8 рабочих часов) текстом не сдвинулись;
  • нужен парный разбор сложного бага или дизайна;
  • эмоционально заряженный конфликт лучше снять голосом (и сразу зафиксировать итог письменно).

Что писать асинхронно

СитуацияКаналМинимум в сообщении
Новая задачаТикетЦель, AC, ссылки, assignee
Вопрос по APIТред к тикетуЧто пробовали, лог, версия
Code reviewPRКонкретные комментарии к строкам
Архитектурный выборADR + ссылка в PRАльтернативы, решение, последствия
БлокерТикет + @тимлидЧто блокирует, что нужно, до когда

Чего избегать

  • "Созвонимся?" без контекста в одном предложении — собеседник в другом TZ не понимает срочность.
  • Решение только в DM — коллеги из EU проснутся без контекста.
  • Пинг "ты тут?" без вопроса — лучше сразу сформулировать запрос; человек ответит в SLA.

SLA ответа

Команда договаривается явно, например:

  • Срочный инцидент — канал on-call, реакция по runbook.
  • Обычный вопрос в чате — ответ в течение рабочего дня автора в его TZ.
  • PR review — первый ответ в 24 рабочих часа или в договорённый день (например, "review по вторникам и четвергам").
Async ≠ медленно

Хорошо оформленный тикет с AC экономит дни переписки. Это связано с Definition of Ready: задача готова к работе, когда её можно взять без созвона.


Documentation-first

Documentation-first — критичные решения фиксируют письменно до или сразу после обсуждения.

Тип информацииГде хранить
Требования, ACТикет (YouTrack/Jira)
АрхитектураADR
Процессы, онбордингWiki, онбординг-пакет
Итог встречиSummary в тикете: решения, action items, владельцы
API контрактOpenAPI + wiki для потребителей

Запись Zoom — дополнение, не замена. Запись редко пересматривают; текст ищут за секунды.

Шаблон summary после созвона:

## Итог созвона 2026-06-15 (overlap MSK/CET)

**Участники:** @anna, @pavel, @marie

**Решения:**
1. Используем OAuth2 client credentials для интеграции X — ADR-042.
2. Релиз на stage — 2026-06-18 EOD UTC.

**Action items:**
- [ ] @pavel — PR auth middleware — до 2026-06-17
- [ ] @marie — тест-кейсы login — тикет QA-881

**Открытые вопросы:** лимит rate limit — эскалация к PO.

Часовые пояса

Time zone (TZ) — смещение локального времени относительно UTC. Москва — UTC+3 (MSK), Берлин — UTC+1/+2 (CET/CEST летом), Лондон — UTC+0/+1 (GMT/BST).

Ошибки без TZ-дисциплины:

  • "К пятнице" — чья пятница?
  • "Утренний daily" — для EU это ещё ночь или наоборот ранний стресс каждый день.
  • On-call handoff без явного времени — инцидент "висит" между регионами.

Практики работы с TZ

ПрактикаРезультат
В профиле и календаре указан TZ каждогоМеньше случайных звонков в нерабочее время
Ротация времени общих встреч раз в 1–2 месяцаНагрузка распределена справедливо
Summary daily в треде чатаПропустившие live в курсе
Дедлайны в UTC или "2026-06-20 18:00 MSK / 17:00 CEST"Нет двусмысленности
World Clock / календарь с несколькими TZPO видит overlap до планирования

Подробнее — FAQ команды и управления.

Overlap window

Overlap window — 2–4 часа, когда рабочие дни пересекаются у большинства участников. В это окно ставят:

  • daily (если sync);
  • planning / refinement (короткие);
  • парное программирование;
  • эскалацию блокеров.

Вне overlap — только async, кроме инцидентов по runbook.


Пример: команда Россия + EU

Типичный состав продуктовой команды:

РольЛокацияTZРабочие часы (локально)
BackendМоскваMSK UTC+310:00–19:00
FrontendСанкт-ПетербургMSK UTC+311:00–20:00
QAБерлинCEST UTC+209:00–18:00
POЛондонBST UTC+109:30–18:30
DevOpsВаршаваCEST UTC+210:00–19:00

Overlap MSK ↔ CEST: примерно 10:00–14:00 MSK = 09:00–13:00 CEST — все онлайн.

Расписание ритуалов (пример):

РитуалВремяФормат
Daily10:30 MSK / 09:30 CEST15 мин sync + summary в Slack
RefinementВт 11:00 MSKAsync-вопросы за день до; sync 45 мин
PlanningРаз в 2 недели, overlapAgenda в wiki заранее
RetroПт 10:00 MSKMiro + 30 мин sync

Дедлайн спринта: "2026-06-27 17:00 UTC" — все переводят в локальное время сами.

On-call: primary EU 09:00–21:00 CEST, secondary MSK 10:00–22:00 MSK — handoff в wiki с точным UTC.

Летнее и зимнее время

EU переводит часы, Россия — нет. Раз в год overlap "съезжает" на час. Обновите wiki и календарь recurring-встреч.


Ежедневная синхронизация удалённо

Daily (ежедневный стендап) — короткая синхронизация: вчера / сегодня / блокеры. В удалёнке допустимы форматы:

Sync daily (в overlap)

  • Длительность ≤ 15 минут; детали — в тикете.
  • Камера — по желанию команды.
  • Модератор следит за временем; "парковка" длинных тем — отдельный созвон.
  • Сразу после — 3–5 строк summary в треде для тех, кто спал.

Async daily

Каждый до 10:00 своего локального времени пишет в канал #daily:

Вчера: закрыл PR-441, миграция на stage.
Сегодня: интеграционные тесты checkout.
Блокеры: жду доступ к sandbox партнёра (тикет INT-90).

Тимлид раз в overlap просматривает блокеры и эскалирует.

КритерийSyncAsync
Команда в одном TZУдобноРеже нужно
Russia + EUВ overlapХорошая альтернатива в "тяжёлые" дни
Много блокеровSync быстрееНужен быстрый ответ тимлида

См. ежедневные стендапы.


Инструменты удалённой команды

КатегорияПримерыЗадача
Чат с тредамиSlack, Teams, MattermostОбсуждения без потери контекста
ВидеоZoom, Meet, TeamsСозвоны по необходимости
ТрекерJira, YouTrack, LinearСтатус, assignee, блокеры
WikiConfluence, NotionПроцессы, runbook, онбординг
Git + CIGitHub, GitLabPR, review, автотесты
ДоскаMiro, FigJamRetro, схемы на sync-сессиях

Правила:

  • Один источник правды по статусу — трекер, не "готово" только в чате.
  • Треды — для тем >3 сообщений.
  • @channel — только инциденты и критичные объявления.

Базы знаний и трекеры · Git.


Онбординг без офиса

Новый человек в удалёнке не может "посидеть рядом". Нужен онбординг-пакет:

  • доступы (Git, трекер, wiki, чаты) — чек-лист первого дня;
  • buddy на 2–4 недели в том же или соседнем TZ;
  • первая задача с чётким DoR — не "разберись с проектом";
  • ссылки на ADR, как мы делаем PR;
  • welcome-созвон в overlap — знакомство, не лекция на 2 часа.

См. начало работы на проекте.


Язык и смешанные команды

Часть команды работает на русском, часть на английском — норма для EU+RU продуктов.

АртефактЯзык
Код, комментарии в PRАнглийский (обычно)
User-facing release notesЯзык продукта / рынка
Runbook on-callЯзык дежурных или bilingual summary в шапке
Wiki процессовЯзык команды + ключевые термины в глоссарии
ТикетыОдин язык на проект — договорённость в wiki
Bilingual summary

В шапке runbook: EN: Restart service X if queue > 1000. RU: Перезапустить сервис X при очереди > 1000. On-call не тратит минуты на перевод в инциденте.


Безопасность и границы в удалёнке

  • Корпоративный VPN и ИБ-политика — не обходить "потому что дома".
  • Экран на созвоне — без окон с секретами; демо на stage.
  • Личные устройства — по политике компании (MDM, запрет на prod-доступ).
  • П Right to disconnect — не ожидать ответа вне SLA без инцидента.

ИИ и Copilot в распределённой команде

Когда Copilot/LLM в IDE — политика в wiki, доступная всем TZ:

  • что можно отправлять в облачную модель;
  • обязательность review PR;
  • запрет секретов в промптах.

Async-команда особенно зависит от прозрачности в PR ("использовал Copilot для тестов").


Planning и refinement в удалёнке

Sprint planning и backlog refinement — моменты, где без подготовки sync растягивается на 3 часа.

Refinement async-first

  1. PO публикует agenda за 24–48 ч: список тикетов с черновыми AC.
  2. Dev/QA оставляют комментарии в тикетах: вопросы, риски, missing DoR.
  3. BA дополняет AC до sync-сессии в overlap.
  4. Sync 45–60 мин только на спорные пункты и оценку.
АртефактГдеКогда
Agenda refinementWiki / pinned в канале−2 дня
Обновлённые ACТикет−1 день
Решения syncSummary в тикете+1 ч после встречи

Scrum planning · DoR.

Sprint planning

  • Capacity считают до встречи (отпуска, праздники EU vs RU).
  • В план попадают только DoR-ready задачи.
  • Sprint Goal — одно предложение в wiki; mid-sprint change — через change.

Парная работа и mob-сессии

Pair programming в удалёнке возможен в overlap:

  • инструменты: VS Code Live Share, JetBrains Code With Me, screen share;
  • слоты 60–90 мин в календаре, не "когда получится";
  • rotate driver/navigator каждые 25 мин;
  • итог — commit или тикет "что сделали".

Если overlap нет — async pair: один открывает draft PR, второй review в течение SLA с комментариями; на следующий день overlap — 30 мин sync только если комментарии не закрыли вопрос.


Retro и team health удалённо

Retrospective без офиса:

ФорматКогда
Async board (Miro, FigJam) 48 чБольшая TZ-разница
Sync 45 мин в overlapНужен эмоциональный разговор
Опрос (Google Form) + sync top-3Смешанная команда

Правила:

  • action items — в тикетах с assignee;
  • не превращать retro в status meeting;
  • тема TZ fatigue — отдельный пункт раз в квартал.

Команда и управление.


Календарь и focus time

  • No-meeting blocks — 2–4 ч в локальном календаре; уважать у коллег.
  • В описании встречи: цель, ссылка на тикет, agenda.
  • Отмена optional meetings, если async summary достаточно.
  • Праздники: RU vs EU — календарь в wiki (8 марта, Рождество EU и т.д.).
Focus time в EU+RU

Overlap 4 ч — не значит 4 ч только созвоны. Зафиксируйте: daily 15 мин + один слот collaboration; остальное overlap — доступность в чате, не обязательные meetings.


Недельное расписание (пример Russia + EU)

ДеньMSK (Backend)CEST (QA)Активность
Пн10:00 daily09:00 dailySync 15 мин + summary
ВтRefinement asyncКомментарии в Jira
Ср11:00 refinement sync10:0045 мин спорные тикеты
ЧтPR review batchPR review batchAsync
Пт10:00 retro (раз в 2 нед.)09:0030–45 мин

Release cut: четверг 17:00 UTC — release notes опубликованы; EU QA успевает sign-off, MSK dev — hotfix window до пятницы 14:00 UTC.


Конфликты и обратная связь

В удалёнке недопонимание копится в тексте. Правила:

  1. Assume good intent — начинать с уточнения в треде, не с passive-aggressive.
  2. Эскалация к тимлиду — с ссылками на тикеты, не пересказ "он сказал".
  3. Сложный feedback — короткий sync 1:1 в overlap, затем summary договорённостей.
  4. Публичный конфlict в канале — модератор переводит в тред или тикет.

Метрики зрелости удалёнки

МетрикаЗдоровоТревога
% встреч с опубликованным summary>90%<50%
Среднее время ответа в чате (раб. часы)В пределах SLAЧасы молчания
Задачи, возвращённые из IP (no DoR)СнижаетсяРастёт
On-call handoff без gap0 gapИнцидент "между" регионами

Не KPI наказания — input для retro.


Типичные ошибки

ОшибкаПоследствиеЧто делать
Все решения на созвонахEU не в курсеSummary + ADR
Нет overlapБлокеры висят сутки2–4 ч общего окна
"К пятнице" без TZСрыв релизаUTC + явные TZ
Daily 45 минутУсталость, пропуски15 мин + тикеты
Онбординг = "спроси в Slack"Потерянный juniorОнбординг-пакет
DM вместо тикетаBus factorОдин URL на задачу

Связь с доставкой и качеством

Удалёнка усиливает значение DoR/DoD:

  • DoR — задачу можно взять без созвона с PO;
  • DoD — результат проверяем по чек-листу, demo не обязательно live для всех.

Release notes и feature flags помогают выкатывать без "все собрались в 3 ночи по MSK".


Итоги и чек-лист

Краткое резюме — итоги. Самопроверка команды — чек-лист.