Встречи: как не утонуть, как отказываться и как работать асинхронно
Почему это отдельная статья, а не абзац в главе про календарь
Все предыдущие техники курса — сбор задач, приоритизация, блоки в календаре, ограничение WIP — это техники управления своим временем. Встречи ломают их все сразу, потому что встреча — единственный механизм, которым другой человек может записать расход в вашем бюджете времени без вашего согласия. Вы можете идеально настроить инбокс и канбан, но если восемь часов в неделю вам назначили другие люди, а ещё шесть часов вокруг этих встреч не годятся ни на что серьёзное, никакая личная система это не компенсирует.
Поэтому глава про встречи — это на 30% про личные привычки и на 70% про переговоры, письменную культуру и умение аккуратно менять правила вокруг себя. Она же — самая политическая глава курса: почти любой совет вида «просто откажитесь» игнорирует, что вы работаете в организации с иерархией, а отказ имеет цену. Мы будем считать эту цену явно.
Арифметика: сколько стоит встреча на самом деле
Стандартный аргумент «это же всего час» опирается на календарь, а календарь показывает только один компонент стоимости. Полная себестоимость встречи для инженерной команды складывается минимум из шести:
- Время в встрече. Число участников × длительность. Единственный компонент, который видит календарь.
- Переключение «до». За 10–15 минут до встречи содержательная работа уже не начинается: вы не полезете в незнакомый модуль, зная, что скоро вставать. Это описано как «fragmented time» ещё у Грэма в «Maker’s Schedule, Manager’s Schedule».
- Восстановление «после». Возврат в задачу после прерывания у программистов измеряли: Парнин и Ругабер получили порядка 10–15 минут до первого содержательного изменения кода (Parnin & Rugaber, 2011), Марк с коллегами — около 23 минут до полного возврата к прежней задаче (Mark et al., CHI 2005). Подробнее это разобрано в статье про фокус.
- Подготовка. Чтение pre-read, сбор цифр, подготовка демо. Часто ноль — и это тоже стоимость, только она проявится в качестве решения.
- Фрагментация остатка дня. Встреча в 14:00 не отнимает час — она превращает шестичасовой день в два куска по два с небольшим часа. Для задачи, которая требует трёх часов удержания контекста, это эквивалентно вычёркиванию дня.
- Хвост. Заметки, рассылка решений, отдельный пересказ тем, кто не пришёл, и повторное обсуждение того же вопроса через неделю, потому что решение нигде не зафиксировали.
Коэффициент 2–2,5× между «часами в календаре» и реальным списанием — рабочая оценка для инженерной команды. Она не универсальна: для менеджера, у которого день и так состоит из получасовых слотов, коэффициент близок к 1,2, потому что фрагментировать уже нечего. Именно из-за этой асимметрии одна и та же встреча честно кажется дешёвой тому, кто её назначает, и дорогой тому, кого позвали. Это не злой умысел, это разная структура дня.
from dataclasses import dataclass
@dataclass
class Meeting:
minutes: int
attendees: int
prep_minutes: int = 0 # чтение pre-read / подготовка на человека
breaks_focus_block: int = 0 # у скольких участников встреча рубит блок фокуса
SWITCH_BEFORE = 12 # мин: содержательная работа уже не начинается
RECOVERY_AFTER = 20 # мин: возврат в контекст после прерывания
BLOCK_LOSS = 45 # мин: потеря от разрезания блока глубокой работы
def true_cost_hours(m: Meeting) -> float:
"""Полная себестоимость встречи в человеко-часах."""
per_person = m.minutes + m.prep_minutes + SWITCH_BEFORE + RECOVERY_AFTER
total = per_person * m.attendees + BLOCK_LOSS * m.breaks_focus_block
return total / 60
weekly_sync = Meeting(minutes=60, attendees=6, prep_minutes=10, breaks_focus_block=3)
print(round(true_cost_hours(weekly_sync), 1)) # 13.7 вместо «шести человеко-часов»
print(round(true_cost_hours(weekly_sync) * 45, 1)) # 616 ч в год — почти треть FTE
Числа в константах — это оценки, а не измерения вашей команды. Ценность модели не в точности, а в том, что она делает разговор конкретным: «эта встреча стоит нам примерно пол-ставки инженера в год» — аргумент, на который можно отвечать, а «встреч слишком много» — нет. Shopify в 2023 году встроил такой калькулятор прямо в интерфейс календаря, показывая организатору предполагаемую стоимость встречи в деньгах; это, разумеется, не исследование, а управленческий приём, но приём с правильной механикой — он переносит издержку туда, где принимается решение.
Короткая история проблемы
Ключевое изменение произошло не в теории менеджмента, а в интерфейсе. Пока встречу надо было организовывать вручную (найти комнату, обзвонить людей), у неё был естественный барьер входа. Общий электронный календарь снизил стоимость назначения почти до нуля, но не изменил стоимость участия. Любая система, в которой издержки несёт не тот, кто принимает решение, будет производить избыток — это классическая экстерналия, и лечится она так же, как экстерналии в экономике: возвращением издержки инициатору.
Что говорят исследования — и где они слабы
Литература о встречах существует, но она заметно слабее, чем литература о прерываниях. Разбираем честно.
Встречи связаны с удовлетворённостью работой. Рогельберг с коллегами показали, что удовлетворённость встречами — отдельная и значимая грань удовлетворённости работой в целом (Rogelberg et al., 2010). Вывод обоюдоострый: плохие встречи бьют по отношению к работе сильнее, чем кажется, но и хорошие встречи — не нейтральный фон, а актив.
Хорошие встречи коррелируют с результатами команды. Кауффельд и Леманн-Вилленброк кодировали реальные записи командных совещаний и обнаружили, что доля «конструктивных» речевых актов (предложения решений, уточняющие вопросы) предсказывает продуктивность команды и организационный успех, а доля «дисфункциональных» (жалобы, обвинения) — предсказывает обратное (Kauffeld & Lehmann-Willenbrock, 2012). Ограничение: это корреляция на 92 командах, и направление причинности неочевидно — успешные команды могут просто меньше жаловаться.
Meeting recovery syndrome. Понятие из исследовательской традиции Аллена и Рогельберга: после плохой встречи человеку нужно время на восстановление, и это время не отражено нигде. Обзор — в «The Cambridge Handbook of Meeting Science» (2015). Эффект правдоподобен и согласуется с литературой о прерываниях, но измерен в основном самоотчётами.
Back-to-back встречи и ЭЭГ. Microsoft Human Factors Lab в 2021 году сняли ЭЭГ у 14 участников в двух режимах: четыре получасовых звонка подряд и те же звонки с десятиминутными перерывами. В режиме подряд накапливалась бета-активность, интерпретированная как нарастающий стресс (описание исследования). Слушайте это со скепсисом: n = 14, исследование не прошло рецензирование, проведено компанией, продающей календарную функцию «сокращать встречи по умолчанию». Направление вывода правдоподобно, величина эффекта — нет.
«Сократили встречи на 40% — продуктивность выросла на 71%». Эту цифру из HBR-статьи Лейкера с соавторами цитируют чаще всего. Основание — опрос сотрудников 76 компаний о субъективно воспринимаемой продуктивности. Люди, у которых стало меньше встреч, ожидаемо сообщают, что стали продуктивнее. Это не измерение выпуска. Пользуйтесь как гипотезой, не как доказательством.
Zoom fatigue. Бейленсон предложил теоретическое объяснение через невербальную перегрузку: избыточный зрительный контакт крупным планом, необходимость видеть себя, ограничение подвижности, повышенная когнитивная нагрузка на производство и чтение жестов (Bailenson, 2021). Это теоретическая статья, а не эксперимент; последующие работы по шкале ZEF показали, в частности, более выраженную усталость у женщин. Практический вывод устойчив: видео по умолчанию — не бесплатная опция, и «камера обязательна» стоит команде реальных ресурсов.
Контраргумент к асинхронности. Самое важное исследование в этом разделе — не про встречи, а против наивного «давайте всё в текст». Ян с коллегами проанализировали данные более 60 000 сотрудников Microsoft до и после перехода на удалёнку и обнаружили, что сети сотрудничества стали более замкнутыми и статичными: меньше мостов между группами, меньше новых связей, сдвиг от синхронной коммуникации к асинхронной, и вместе с этим — затруднённая передача сложной, неявной информации (Yang et al., Nature Human Behaviour, 2022). Это наблюдательное исследование в период пандемии, причинность спорна, но игнорировать его нельзя: у асинхронности есть системная цена, и платит её не тот, кто её вводит, а те, кто ещё не встроен в сеть — новички, смежные команды, джуны.
Отсюда честный вывод главы: цель — не ноль встреч. Цель — чтобы каждая встреча существовала по причине, которую можно назвать вслух, и чтобы остальное шло в текст.
Таксономия: какие встречи бывают у инженера
Универсальный совет «сокращайте встречи» бесполезен, потому что встречи разного типа имеют разную ценность и по-разному ломаются.
| Тип | Зачем нужна | Хорошая длительность | Что её убивает | Заменяется текстом? |
|---|---|---|---|---|
| Дейли / стендап | синхронизация по блокерам | 10–15 мин | превращается в отчёт руководителю | да, при зрелой команде и одном часовом поясе — частично |
| Планирование спринта | согласование объёма и рисков | 60–90 мин | обсуждение деталей реализации | нет, но черновик — асинхронно |
| Ретроспектива | обучение команды | 60 мин | отсутствие последующих действий | нет: нужен эмоциональный канал |
| Дизайн-ревью | найти дыры в решении до кода | 45–60 мин | нет документа заранее | документ — асинхронно, обсуждение — синхронно |
| Разбор инцидента | восстановить факты, найти системные причины | 60 мин | поиск виноватого | нет |
| 1:1 с руководителем | обратная связь, карьера, проблемы | 30 мин / нед или 2 нед | превращение в статус-апдейт | нет, никогда |
| Груминг бэклога | сделать задачи понятными | 45 мин | вся команда вместо двух человек | во многом да |
| Статус-митинг | «где мы находимся» | — | сам факт существования | да, почти всегда |
| Демо / показ клиенту | обратная связь от реальности | 30–45 мин | демонстрация без вопросов | частично: запись + текст |
| Интервью кандидата | наём | 45–60 мин | несогласованные роли интервьюеров | нет |
| Handoff дежурства | передача контекста | 15 мин | устная передача без записи | нет, но с обязательным письменным следом |
| Инцидентный мостик | координация в реальном времени | пока горит | «все говорят одновременно» | категорически нет |
Три наблюдения по таблице.
1:1 отменять нельзя. Это единственная встреча, которая почти всегда окупается, и первая, которую отменяют при загрузке. Она — канал, по которому вы узнаёте о проблемах до того, как они станут кризисом, и по которому обсуждаются вещи, которые не пишут в общий чат. Хороший разбор жанра — у Майкла Лоппа в «The Update, The Vent, and The Disaster». Если 1:1 превратился в статус-апдейт — это повод чинить формат, а не отменять слот.
Инцидентные мостики — противоположный полюс. Здесь синхронность не роскошь, а требование: нужна быстрая петля обратной связи, явные роли (incident commander, operations lead, communications lead) и общий контекст в реальном времени. См. главу «Managing Incidents» в SRE Book. Не переносите инженерную нелюбовь к встречам на дежурства.
Статус-митинг — почти всегда дефект инструментов. Если встреча существует, чтобы кто-то узнал состояние работ, значит, состояние работ не видно в трекере. Чинить надо трекер.
Решающее правило: нужна ли здесь встреча
или только информирование?} B -->|Информирование| C[Пост / рассылка / документ
Встреча не нужна] B -->|Решение| D{Понятно, кто принимает
решение?} D -->|Нет| E[Сначала определить владельца
DACI/RACI — это не встреча] D -->|Да| F{Есть письменный вариант
решения на руках?} F -->|Нет| G[Написать RFC/дизайн-док
Собрать комментарии асинхронно] G --> H{Комментарии сходятся?} H -->|Да| I[Решение принято в тексте
Встреча не нужна] H -->|Нет: спор, эмоции,
больше 2 итераций| J[Встреча нужна] F -->|Да| H B -->|Обсуждение без цели| K{Есть кто-то, кому
это блокирует работу?} K -->|Нет| C K -->|Да| J J --> L[30–45 мин, 3–5 человек,
повестка = список вопросов,
на выходе — решения в тексте] style C fill:#6aa84f,color:#fff style I fill:#6aa84f,color:#fff style J fill:#4f8ef7,color:#fff style E fill:#e07a5f,color:#fff
Ключевая развилка — «больше двух итераций в комментариях». Это самый полезный эмпирический триггер, который я знаю. Асинхронное обсуждение прекрасно сходится, пока люди уточняют факты, и катастрофически расходится, когда начинается спор о ценностях или когда участники устали. Тред на сорок комментариев с тремя параллельными подветками — это не «мы работаем асинхронно», это встреча, которую растянули на четыре дня и провели хуже. Правило: две итерации комментариев — и в календарь на 30 минут с явным вопросом.
Обратное правило тоже работает: если на встречу выносится вопрос, по которому не написано ни строчки, встреча уйдёт на введение в контекст, а решение всё равно примут потом.
Синхронно или асинхронно: как выбрать
Читается так: чем размытее предмет и чем дороже ошибка, тем сильнее аргумент за синхронный разговор. Два практических следствия.
Правый верхний угол нельзя загонять в текст. Обратная связь о работе человека, конфликт, разбор инцидента — здесь письменный канал систематически ухудшает результат: теряется тон, растёт вероятность прочитать нейтральное как враждебное, и никто не может переспросить в моменте. «Я написал в личку, что его код плохой» — это не асинхронная культура, это избегание.
Левый нижний угол нельзя загонять в календарь. Ровно там живут статус-митинги, «давай созвонимся на пять минут» по вопросу с однозначным ответом и еженедельная встреча, которая существует потому, что существует.
Отдельный случай — онбординг новичка (левее и ниже, чем кажется по важности, но с высокой неявностью). Именно здесь исследование Яна и коллег бьёт больнее всего: асинхронная культура прекрасно работает для тех, кто уже знает, кого спрашивать. Новичок этого не знает, и «у нас всё в документах» для него означает «спрашивать нельзя». Здоровое решение — сознательно повысить синхронность для первых недель: ежедневный короткий созвон с бадди, парное программирование, явное разрешение прерывать.
Как отказываться от встреч
Это самая практическая часть. Работает она не через слово «нет», а через возврат инициатору вопроса о цели.
Уровень 0: снизить спрос заранее
- В календаре — постоянные блоки фокуса с понятным названием: не «Занят», а «Deep work: платёжный шлюз, перенос возможен». Люди уважают конкретику и игнорируют абстрактную занятость. Детали настройки — в главе про календарь.
- Настроить рабочие часы в календаре и включить приглашение по умолчанию с 25/50 минутами вместо 30/60 (Google Calendar и Outlook умеют это на уровне организации — «speedy meetings»).
- Держать состояние работ видимым в трекере, чтобы спрос на статус-встречи не возникал.
Уровень 1: уточняющий вопрос (срабатывает чаще всего)
«Привет! Посмотрел приглашение на «Обсудить интеграцию». Подскажи, какой вопрос нужно закрыть — я подготовлюсь. Если это про формат события, я могу ответить в треде сегодня до обеда, тогда встреча не понадобится.»
Половина встреч не переживает этого вопроса — не потому, что человек передумал, а потому, что сформулированный вопрос часто оказывается решаемым в переписке. Формулировка важна: вы не отказываете, вы предлагаете более быстрый путь к его цели.
Уровень 2: асинхронная замена
«Я не смогу быть в четверг. Записал свою позицию по трём пунктам повестки вот здесь: [ссылка]. По первому и третьему согласен с предложением Ани, по второму — против, причины в документе. Если моё мнение по второму окажется решающим — напишите, найду 15 минут.»
Это самый сильный ход, потому что он снимает главное возражение против отказа: «без тебя не сможем решить». Вы не блокируете решение, вы даёте свой вход в него асинхронно.
Уровень 3: делегирование или частичное присутствие
«На дизайн-ревью пойдёт Костя — он владеет этой частью и может принимать решение по схеме БД. Я подключусь, если понадобится по авторизации.»
«Мой блок повестки — первые 15 минут. Уйду после него, дальше моё присутствие ничего не добавит.»
Уходить с середины встречи — нормально, если предупредить заранее и в первую минуту, а не молча исчезнуть.
Уровень 4: прямой отказ с называнием компромисса
«В этом спринте я не могу взять ещё еженедельную встречу — у меня уже 9 часов в календаре при цели релиза 20-го. Если эта встреча важнее, чем текущий приоритет, давай я сниму что-то другое: могу выйти из синка по аналитике. Что выбираем?»
Ключевая техника: отказ не как «нет», а как выбор из двух зол, который делает запрашивающий. Вы не решаете за руководителя, что важнее, — вы делаете видимым, что ресурс конечен. Эта формулировка почти никогда не воспринимается как саботаж, потому что вы демонстрируете готовность выполнить его приоритет.
Уровень 5: изменение системы
Единичные отказы решают вашу проблему на неделю. Устойчиво работают только правила:
- No-meeting day — один день в неделю без встреч на уровне команды или отдела. Работает, только если он общий: личный «мой вторник свободен» разрушится за месяц.
- Обязательная повестка — приглашение без повестки можно отклонить без объяснений. Норма должна быть проговорена командой, иначе выглядит как грубость.
- Батчинг — все регулярные встречи команды сдвинуты в один-два коридора (например, вторник и четверг после 14:00).
- Лимит по времени — «встречи не больше 25% времени инженера» как договорённость с руководителем, с ежемесячной проверкой по календарю.
Про то, как проводить такие изменения, не выглядя человеком, который просто не хочет работать, лучше всего написано у Элизабет Эйер в «Don’t ask forgiveness, radiate intent»: не просить разрешения и не ставить перед фактом, а заранее и громко объявлять намерение, оставляя людям возможность возразить.
Чего делать не надо
- Отклонять приглашение молча. Это гарантированный конфликт: организатор узнаёт об отказе в момент, когда уже поздно перестроиться.
- Соглашаться и не приходить. Разрушает доверие быстрее, чем десять отказов.
- Отказываться от 1:1 и ретроспектив, потому что они «неэффективны». Это встречи, которые платят не сразу.
- Читать нотации про стоимость встреч в момент, когда встреча уже идёт.
- Применять всё это на первой неделе в компании. Право менять чужой календарь зарабатывается сделанной работой.
Если встречу собираете вы
Обратная сторона: половина проблемы обычно ваша собственная.
Повестка = список вопросов, а не список тем. «Обсудить кэширование» — тема, и она гарантирует расплывание. «Решить: инвалидируем кэш по TTL или по событию из шины?» — вопрос, у него есть состояние «закрыт».
Рабочий шаблон приглашения:
## Цель
Принять решение по стратегии инвалидации кэша каталога до конца недели —
блокирует задачу CAT-412.
## Решение принимает
Марина (владелец сервиса каталога). Остальные — консультируют.
## Вопросы (в таком порядке)
1. TTL или инвалидация по событию? — 15 мин
2. Если событие: гарантируем ли at-least-once или допускаем потери? — 10 мин
3. Кто и когда делает — 5 мин
## Прочитать до встречи (10 мин)
RFC-17, разделы «Варианты» и «Замеры»: <ссылка>
Если не прочитали — скажите в начале, перенесём.
## Не обсуждаем
Переезд на Redis Cluster (отдельный разговор, RFC-19).
Явная роль решающего. Больше всего времени сжигают встречи, где никто не знает, кто вправе сказать «делаем так». Формализуйте — например, через DACI (Driver, Approver, Contributors, Informed). Даже простого «решает Марина» в приглашении обычно достаточно.
Pre-read вместо презентации. Практика Amazon: вместо слайдов — письменный нарратив на несколько страниц, и первые 15–20 минут встречи все молча его читают. Безос описывал логику в письме акционерам за 2017 год: хороший письменный документ требует от автора продумать связи, чего слайды не требуют. Тихое чтение решает проблему «половина не подготовилась» честнее, чем призывы готовиться. Издержка реальна: написать шестистраничник дороже, чем накидать слайды, и это оправдано только для дорогих решений.
Список приглашённых — самый недооценённый рычаг. Каждый лишний участник — это не только его час, это ещё и рост длительности: обсуждение растягивается под число людей. Рабочее правило: те, без кого решение не может быть принято — обязательны; те, кому просто интересно — получают заметки. «Позвал на всякий случай» — это перекладывание собственной неуверенности на чужой календарь.
Решения фиксируются в тексте в тот же день. Не «протокол», а три строки: что решили, кто делает, к какому сроку. Незафиксированное решение будет обсуждаться снова.
Отменяйте бесстрашно. Если повестки нет — отмените за пару часов. Регулярная встреча, которую отменили дважды подряд, скорее всего, не нужна вовсе; ставьте таким встречам дату пересмотра в описании («пересмотреть 1 сентября — нужна ли ещё»).
Асинхронный контур: что должно происходить между встречами
Асинхронность — не «пишите в чат вместо звонков». Это набор артефактов, каждый со своим сроком жизни.
внутри своих часовых поясов R-->>D: комментарии (итерация 1) A-->>D: правки, ответы на комментарии R-->>D: комментарии (итерация 2) alt Сошлись A->>L: ADR-017: решение, контекст, последствия Note over M: встреча не нужна else Не сошлись за 2 итерации A->>M: 30 мин, повестка = список расхождений M->>L: ADR-017 пишется в тот же день end L-->>R: журнал доступен всем, включая тех, кто придёт через год
Три артефакта, которые заменяют львиную долю встреч в инженерной команде:
Дизайн-док / RFC. Документ с проблемой, вариантами, компромиссами и рекомендацией. Отличный разбор жанра — «Design Docs at Google» Мальте Убля. Главное свойство: он делает мышление автора проверяемым до того, как написан код. Важная деталь — явный дедлайн на комментарии. Документ без дедлайна не читают.
ADR (Architecture Decision Record). Короткая запись принятого решения: контекст, решение, последствия. Формат предложил Майкл Найгард в 2011 году, сводка практик — на adr.github.io. Это лекарство от самого дорогого класса встреч — повторного обсуждения того, что уже решали полтора года назад, потому что никто не помнит почему.
Письменный статус. Короткий регулярный апдейт в общем канале: что сделано, что следующее, где блокирует. Убивает статус-митинги при условии, что его правда читают. Обширный материал по практикам — в хендбуке GitLab про асинхронную работу; у GitLab это доведено до предела, и не всё оттуда переносимо в команды с другой культурой.
Инженерные детали асинхронности
- SLA на ответ важнее скорости ответа. «Отвечаю на комментарии в PR в течение рабочего дня» — договорённость, на которой можно строить планы. «Отвечаю мгновенно» — нельзя: она несовместима с блоками фокуса.
- Overlap-окно. В распределённой команде договоритесь о 2–3 часах пересечения и держите синхронные вещи только внутри него. Всё остальное — асинхронно.
- Ревью — асинхронный жанр по умолчанию. Но если PR собрал больше двух раундов комментариев или комментарии стали короткими и резкими — это сигнал перейти в 15-минутный звонок, а не эскалировать в тексте.
- Ротация неудобства. Если встреча неизбежна и часовые пояса не сходятся, время должно ротироваться. Неявная норма «неудобно всегда одной стороне» разрушает распределённые команды медленно и надёжно.
- Запись и конспект. Запись встречи полезна не тем, что её посмотрят (её почти никогда не смотрят), а тем, что позволяет не звать людей «просто послушать». Конспект из трёх строк работает лучше часовой записи.
Как выглядит неделя, где встречи под контролем
Логика раскладки, а не сама раскладка:
- Два коридора вместо пяти проколов. Встречи собраны в вторник и четверг после обеда. Понедельник, среда и утро остальных дней остаются целыми. Это ровно то, о чём Друкер писал как о «консолидации дискреционного времени».
- No-meeting day в середине недели, а не в пятницу. Пятница и так наименее продуктивна, и защищать её — самообман. Среда даёт целый день в фазе, когда контекст недели уже загружен.
- Утро защищено везде. Для большинства инженеров пик когнитивной работоспособности приходится на первую половину дня — см. главу про внимание и энергию. Встреча в 10:00 стоит дороже такой же встречи в 15:00.
- Пятница — не «свободный день», а батч мелочей. Ревью, документация, техдолг, недельный обзор — работа, которая переносит фрагментацию нормально. Про сам недельный обзор — в главе про горизонты планирования.
- Буфер после встреч. 25-минутные встречи вместо 30-минутных дают пять минут на переход. Это не педантизм: именно back-to-back режим показывает худшие результаты в цитированном выше исследовании Microsoft.
Ограничение, которое надо признать: у дежурного инженера этой схемы нет. В неделю дежурства планировать блоки глубокой работы бессмысленно — правильная стратегия наоборот, брать на эту неделю фрагментируемую работу (ревью, мелкие багфиксы, документация) и явно снижать ожидания по фичам. Команда, которая этого не признаёт, получает дежурного, который стабильно не выполняет обязательства, и считает это его проблемой.
Измерьте, прежде чем спорить
Разговор «встреч слишком много» проигрывается на этапе «слишком» — это не число.
Выгрузите свой календарь в .ics (Google Calendar: Настройки → Экспорт; Outlook:
Файл → Сохранить календарь) и посчитайте.
"""Оценка встречной нагрузки по экспорту календаря (.ics).
Считает: часы встреч в неделю, долю от рабочего времени и — главное —
самый длинный непрерывный свободный блок в каждом рабочем дне.
Сложность: O(n log n) по числу событий (доминирует сортировка), O(n) памяти.
"""
from collections import defaultdict
from datetime import datetime, timedelta
from icalendar import Calendar # pip install icalendar
WORK_START, WORK_END = 10, 19 # рабочее окно, часы
DEEP_BLOCK = timedelta(minutes=90) # что считаем пригодным для глубокой работы
def load_events(path):
with open(path, "rb") as f:
cal = Calendar.from_ical(f.read())
for c in cal.walk("VEVENT"):
start, end = c.get("DTSTART").dt, c.get("DTEND").dt
if not isinstance(start, datetime):
continue # событие на весь день — не встреча
if str(c.get("STATUS", "")) == "CANCELLED":
continue
yield start, end, str(c.get("SUMMARY", ""))
def analyze(path):
by_day = defaultdict(list)
for start, end, title in load_events(path):
if start.weekday() >= 5: # выходные не считаем
continue
by_day[start.date()].append((start, end, title))
total = timedelta()
fragmented_days = 0
for day, events in sorted(by_day.items()):
events.sort() # O(n log n)
cursor = datetime.combine(day, datetime.min.time(),
tzinfo=events[0][0].tzinfo)
cursor = cursor.replace(hour=WORK_START)
day_end = cursor.replace(hour=WORK_END)
longest_free = timedelta()
for start, end, _ in events:
total += end - start
longest_free = max(longest_free, start - cursor)
cursor = max(cursor, end)
longest_free = max(longest_free, day_end - cursor)
if longest_free < DEEP_BLOCK:
fragmented_days += 1
print(f"{day} встреч: {sum((e - s for s, e, _ in events), timedelta())}"
f" макс. свободный блок: {longest_free}")
weeks = max(1, len(by_day) / 5)
print(f"\nВ среднем встреч в неделю: {total / weeks}")
print(f"Дней без блока ≥90 мин: {fragmented_days} из {len(by_day)}")
# analyze("calendar.ics")
Какие числа смотреть. Не «сколько часов встреч» — эта метрика вводит в заблуждение. Смотрите два показателя:
- Доля дней, где нет ни одного свободного блока ≥ 90 минут. Если она выше 40%, вы структурно не можете делать работу, за которую вам платят, и это разговор с руководителем, а не вопрос личной организации.
- Доля встреч, где вы за час не сказали ничего. Считайте неделю вручную. Обычно выходит от трети до половины — и это самый быстрый список кандидатов на выход.
Дальше — разговор в терминах, на которые можно ответить: «за последние четыре недели у меня в среднем 11 часов встреч и 12 дней из 20 без единого блока в полтора часа. Релиз 20-го числа требует примерно 25 часов сфокусированной работы. Мы не сходимся. Какие встречи снимаем?»
Важное ограничение: не меряйте вечно. Замер на 3–4 недели ставит диагноз; постоянный учёт становится ещё одной формой прокрастинации — см. главу про прокрастинацию.
Типичные ошибки
- Бороться с количеством вместо структуры. Восемь часов встреч в двух коридорах переносятся лучше, чем четыре часа, размазанные по пяти дням. Сначала батчинг, потом сокращение.
- Отказываться от встреч, не предлагая альтернативы. Отказ без асинхронной замены читается как «мне всё равно на этот вопрос» — и обычно приводит к тому, что решение примут без вас.
- Считать асинхронность бесплатной. Она требует писать, а писать дорого. Команда, объявившая «мы асинхронные» и не вложившаяся в письменную культуру, получает не асинхронность, а тишину и рассинхрон.
- Уносить конфликт в текст. Спор, который в звонке решается за десять минут, в треде превращается в трёхдневную позиционную войну с эскалацией тона.
- Отменять то, что платит не сразу. 1:1, ретроспективы, онбординг-встречи новичков. Их эффект отложен, а издержка немедленна — идеальная мишень для ложной оптимизации.
- Строить личную систему в одиночку. Договорённость команды о тихом дне даёт больше, чем весь личный тулинг вместе взятый.
- Ставить встречу вместо того, чтобы дописать документ. Встреча кажется дешевле, потому что её стоимость платят все, а стоимость документа — только вы.
- Пропускать фиксацию решений. Встреча без записанного решения гарантированно породит вторую встречу. Это самый дорогой вид долга в календаре.
- Требовать камеру всегда. Видео повышает нагрузку; для длинных рабочих сессий разумно делать его опциональным.
- Приходить неподготовленным и компенсировать это длительностью. Час неподготовленной встречи стоит дороже, чем двадцать минут подготовки плюс полчаса встречи.
Когда это перестаёт быть вопросом тайм-менеджмента
Есть ситуация, в которой все техники этой главы бессильны: когда встречная нагрузка — не следствие плохих привычек, а следствие того, как устроена организация. Признаки: согласование любого решения требует четырёх уровней, встречи существуют для распределения ответственности, календарь заполняется не вашей командой, а смежниками, а попытки изменить это встречают сопротивление на уровне «у нас так принято».
Здесь важно сказать прямо: это организационная проблема, а не ваш дефицит дисциплины. Хроническая перегрузка, невозможность влиять на собственный график и постоянное чувство, что настоящая работа не делается, — это факторы риска, которые ВОЗ прямо связывает с профессиональным выгоранием как явлением, обусловленным хроническим рабочим стрессом (ВОЗ, 2019). Если вы месяцами не можете выйти из этого режима, если после рабочего дня не осталось ничего, если мысль о завтрашнем календаре вызывает физическую реакцию — это повод говорить с руководителем о нагрузке и, если состояние не улучшается, обратиться к специалисту. Мы разбираем тему бережно и подробно в главе про выгорание, но здесь важна одна мысль: техники управления встречами — инструмент влияния в пределах вашего контроля, а не способ выдержать среду, которая не выдерживается.
Мини-итог
- Реальная себестоимость встречи в 2–2,5 раза выше календарной: сумма времени участников плюс переключение до, восстановление после, подготовка, фрагментация дня и хвост. Считайте её вслух — это меняет разговор.
- Асимметрия «дёшево назначить, дорого поучаствовать» — экстерналия, а не злой умысел. Лечится возвратом издержки инициатору: повестка, короткий список приглашённых, pre-read.
- Доказательная база слабее, чем кажется по цитатам. Самая громкая цифра («−40% встреч → +71% продуктивности») — самоотчёт, а не измерение выпуска.
- У асинхронности есть системная цена: сети сотрудничества замыкаются, страдают новички и связи между командами (Yang et al., 2022). Цель — не ноль встреч.
- Триггер на встречу: две итерации комментариев без сходимости, дорогая ошибка, размытый предмет, эмоции. Всё остальное — в текст.
- 1:1, ретроспективы, инцидентные мостики и онбординг новичков — встречи, которые нельзя оптимизировать вниз.
- Отказ работает не как «нет», а как уточняющий вопрос о цели, асинхронная замена или явный выбор из двух приоритетов, который делает запрашивающий.
- Три артефакта заменяют львиную долю встреч: RFC с дедлайном на комментарии, ADR с зафиксированным решением, письменный статус вместо статус-митинга.
- Батчинг важнее сокращения: два коридора встреч и защищённые утра работают лучше, чем меньшее число размазанных встреч.
- Меряйте не часы встреч, а долю дней без свободного блока ≥ 90 минут. Меряйте месяц, чтобы поставить диагноз, а не постоянно.
Источники
- Steven G. Rogelberg. The Surprising Science of Meetings. Oxford University Press, 2019. oup.com
- Joseph A. Allen, Nale Lehmann-Willenbrock, Steven G. Rogelberg (eds.). The Cambridge Handbook of Meeting Science. 2015. DOI
- Leslie A. Perlow, Constance Noonan Hadley, Eunice Eun. Stop the Meeting Madness. HBR, 2017. hbr.org
- Ben Laker et al. Dear Manager, You’re Holding Too Many Meetings. HBR, 2022. hbr.org
- Simone Kauffeld, Nale Lehmann-Willenbrock. Meetings Matter: Effects of Team Meetings on Team and Organizational Success. Small Group Research, 2012. DOI
- Steven G. Rogelberg et al. Employee satisfaction with meetings: A contemporary facet of job satisfaction. Human Resource Management, 2010. DOI
- Jeremy N. Bailenson. Nonverbal Overload: A Theoretical Argument for the Causes of Zoom Fatigue. Technology, Mind, and Behavior, 2021. DOI
- Longqi Yang et al. The effects of remote work on collaboration among information workers. Nature Human Behaviour, 2022. DOI
- Chris Parnin, Spencer Rugaber. Resumption strategies for interrupted programming tasks. Software Quality Journal, 2011. PDF
- Gloria Mark, Victor González, Justin Harris. No Task Left Behind? Examining the Nature of Fragmented Work. CHI 2005. PDF
- Microsoft Human Factors Lab. Research Proves Your Brain Needs Breaks. Work Trend Index, 2021. microsoft.com
- Paul Graham. Maker’s Schedule, Manager’s Schedule. 2009. paulgraham.com
- Peter Drucker. The Effective Executive. 1967.
- Antony Jay. How to Run a Meeting. HBR, 1976. hbr.org
- Jeff Bezos. 2017 Letter to Shareholders (о «шестистраничниках»). aboutamazon.com
- Malte Ubl. Design Docs at Google. industrialempathy.com
- Michael Nygard и сообщество. Architecture Decision Records. adr.github.io
- Atlassian Team Playbook. DACI: decision-making framework. atlassian.com
- GitLab Handbook. Asynchronous work. handbook.gitlab.com
- Google SRE Book. Managing Incidents. sre.google
- Michael Lopp. The Update, The Vent, and The Disaster. randsinrepose.com
- Elizabeth Ayer. Don’t ask forgiveness, radiate intent. medium.com
- Cal Newport. A World Without Email. 2021. calnewport.com
Что дальше
Встречи — самый заметный источник чужих требований к вашему времени, но не самый объёмный. Между встречами остаётся непрерывный поток писем, сообщений в мессенджерах, упоминаний, уведомлений трекера и алертов — и именно он определяет, сможете ли вы воспользоваться освобождённым календарём. Следующая глава — про информационную гигиену.
Почта, мессенджеры, уведомления: информационная гигиена инженера