Conway's Law, Team Topologies, Spotify model, найм EM, сохранение культуры при масштабировании
Умение вырастить инженерную организацию — один из наиболее недооценённых навыков технического лидерства: большинство компаний обнаруживают проблемы только тогда, когда они уже горят. Понимание структурных законов роста позволяет строить организации, которые ускоряются, а не тормозят при найме.
Быстрый справочник
- Conway's Law: архитектура вашей системы будет отражать коммуникационные структуры организации — проектируйте команды под желаемую архитектуру.
- Когнитивная нагрузка команды конечна: если команда не понимает, что делает соседний сервис, — это сигнал разделения.
- Brooks' Law: добавление людей в опаздывающий проект делает его опаздывать ещё больше — n*(n-1)/2 каналов растут квадратично.
- Spotify Model — это эволюционный снимок одной компании в 2012 году, а не шаблон для копирования.
- Team Topologies даёт язык для осознанного проектирования команд: stream-aligned, platform, enabling, complicated-subsystem.
- Промоутировать лучшего инженера в EM — типичная ошибка: IC-экспертиза и управленческая экспертиза ортогональны.
- Культура — это реальные паттерны поведения, а не ценности на стене; она передаётся через то, что лидеры делают, а не что говорят.
Рост организации не линеен. Три фундаментальных закона объясняют, почему компании, успешные при 10 инженерах, испытывают острые кризисы при 50.
Сформулированный Мелвином Конвеем в 1967 году закон звучит так: «Организации, разрабатывающие системы, неизбежно создают системы, структура которых копирует коммуникационные структуры организации».
На практике это означает: если у вас три команды — фронтенд, бэкенд, инфраструктура — вы получите три-уровневую архитектуру с жёсткими границами. Если хотите микросервисы — формируйте команды вокруг бизнес-доменов. Inverse Conway Maneuver: сначала переструктурируйте команды, потом позвольте архитектуре эволюционировать.
Практический вывод: прежде чем рефакторить архитектуру, нарисуйте org chart — вы уже видите свою будущую систему.
Каждая команда имеет конечный объём когнитивной нагрузки — системы, сервисов и зависимостей, которыми она может эффективно владеть и развивать. Этот предел не зависит от талантливости разработчиков; он определяется размером команды и сложностью предметной области.
Три типа когнитивной нагрузки по Team Topologies:
Задача лидера — минимизировать extraneous нагрузку (через platform team), чтобы освободить место для germane.
Фред Брукс в книге «Мифический человеко-месяц» (1975) сформулировал: добавление людей в опаздывающий проект делает его опаздывать ещё больше.
Математика коммуникации: в команде из n человек существует n(n-1)/2* двусторонних каналов. При 5 людях — 10 каналов, при 10 — 45, при 20 — 190. Координационные издержки растут квадратично, продуктивность — нет. Это объясняет, почему команды из 8–12 человек часто работают эффективнее, чем из 20+.
Функциональные команды (фронтенд, бэкенд, QA, DevOps): специалисты объединены по профессии. Плюсы — глубокая экспертиза, карьерные треки, стандарты. Минусы — фича требует координации между несколькими командами, возникают зависимости и бутылочные горлышки.
Feature teams (продуктовые команды): кросс-функциональные команды, владеющие конкретным доменом или фичей. Плюсы — быстрая доставка, полное владение результатом. Минусы — риск дублирования решений, ослабление технических стандартов без горизонтальных структур (chapters, guilds).
Matrix: инженеры формально принадлежат функциональной команде, но временно работают на продуктовую. Плюсы — гибкость. Минусы — двойное подчинение, конфликт приоритетов, «мой менеджер говорит одно, product owner — другое».
Большинство зрелых организаций склоняются к feature teams с горизонтальными структурами для поддержания стандартов.
В 2012 году Spotify описала свою организационную модель через четыре концепта:
Критика: Spotify Model — эволюционный снимок конкретной компании в конкретный момент. Сами создатели модели предупреждали, что к 2015 году Spotify уже не работала по этой схеме. Слепое копирование порождает карго-культ: организации создают tribes и squads, сохраняя все старые дисфункции — просто с новыми названиями. Не копируйте ответ; изучайте вопросы, которые Spotify пыталась решить.
Книга Скелтона и Пайса (2019) предлагает более строгий язык.
Stream-aligned team — основная производительная команда, выровненная под конкретный поток ценности (домен, продукт, пользовательский путь). Пример: команда «Оформление заказа». Цель — быстрая независимая доставка. Это должен быть самый распространённый тип в организации.
Platform team — предоставляет внутреннюю платформу как сервис, снижая когнитивную нагрузку stream-aligned команд. Пример: команда, управляющая CI/CD, observability, managed Kubernetes. Ключевое слово — «как продукт»: платформа должна иметь внутренних пользователей, SLA и roadmap.
Enabling team — небольшая группа специалистов, которая временно помогает stream-aligned командам освоить новые практики и потом уходит. Пример: команда внедрения Site Reliability Engineering. Цель — передача знаний, а не долгосрочная зависимость.
Complicated-subsystem team — команда, владеющая специализированным сложным компонентом, требующим глубокой экспертизы (алгоритм рекомендаций, видеокодек, DSP-движок). Stream-aligned команды потребляют этот компонент через API, не погружаясь в его внутреннее устройство.
Превышение когнитивного порога команды проявляется конкретными симптомами:
Разделение команды без чётких контрактов между частями системы — путь к хаосу. Правило: перед тем как организационно разделить команду, определите API между частями системы. Если вы не можете чётко описать интерфейс — вы не готовы к разделению.
Порядок действий:
Правило двух пицц Безоса: команда должна быть достаточно маленькой, чтобы накормить двумя пиццами (6–10 человек). Интуитивное правило, хорошо работающее как эвристика.
Team Topologies: правильный размер определяется не количеством людей, а когнитивной нагрузкой. Команда из 4 человек, владеющая сложным финансовым доменом, может быть перегружена. Команда из 12 человек с чёткими границами ответственности может работать эффективно. Вопрос не «сколько людей?», а «может ли команда полностью понимать свой домен и уверенно вносить изменения?»
При команде до 8 человек один человек часто совмещает роли TL и EM. При росте эта модель ломается: у технического лидерства и у управления людьми — разные временные горизонты, разные навыки, разные типы переключения контекста.
TL думает в терминах архитектурных решений, технического долга, системной надёжности. EM думает в терминах карьерного роста, мотивации, найма, связей с другими командами. Попытка одного человека делать оба хорошо при команде 12+ приводит к тому, что один из аспектов страдает — обычно управление людьми, потому что технические проблемы более видимы и срочны.
Что искать в первом EM:
Типичная ошибка: промоутировать лучшего инженера в EM, потому что он «лучший». IC-экспертиза и управленческая экспертиза ортогональны. Отличный инженер, ставший плохим EM, теряет инженерную радость и не приносит пользу как менеджер. Если человек хочет расти технически — создайте IC-трек (Staff Engineer, Principal Engineer).
Первые 30 дней нового EM — критичны для завоевания доверия команды:
Культура — это не то, что написано в корпоративных ценностях. Культура — это то, что происходит, когда лидер выходит из комнаты. Это реальные паттерны поведения, которые воспроизводятся снова и снова.
Несколько примеров: если CTO публично наказывает за неудачные эксперименты, культура будет избегать рисков — что бы ни говорилось про «инновации». Если лидер говорит «у нас нет blame culture», но постмортемы всегда заканчиваются поиском виноватых — команда видит реальную культуру. Лидер транслирует культуру действиями, а не словами.
При росте компании критически важно, кто становится «носителями культуры» при найме. Culture carrier — сотрудник, который глубоко понимает и воплощает ценности организации, и при этом сам участвует в интервью и онбординге новичков.
Без осознанных culture carriers масштабирование размывает культуру: каждый новый сотрудник приходит со своими предположениями о том, «как правильно», и постепенно организация теряет связность.
Практика: определите 5–10 поведений, которые для вас являются признаками культурного соответствия, и включите их в структурированные интервью — не как «culture fit» (склонность к однородности), а как «culture add» (разделяет ценности, привносит новое).
Маленькая команда поддерживает культуру через стихийное общение: обеды, случайные разговоры, общий опыт. При 50+ людях стихийные механизмы перестают работать — инженер в одной части компании может не иметь никакого контакта с инженером в другой.
Решение — структурированные ритуалы: регулярные All-Hands с пространством для вопросов, публичные признания (shoutouts), postmortem культура без blame, Engineering Week с хакатонами. Ритуалы — это намеренные механизмы воспроизведения культуры в масштабе.
Decision Log — централизованный реестр важных решений с контекстом: что решили, почему, какие альтернативы рассматривались. Не только архитектурные (ADR), но и организационные, процессные.
RFC (Request for Comments) — процесс предложения изменений через письменный документ с периодом для обратной связи. Применим не только к техническим решениям, но и к процессам, OKR, организационным изменениям. При 30+ инженерах синхронные обсуждения перестают масштабироваться: RFC позволяет каждому высказаться в удобное время.
Хороший RFC содержит: контекст и мотивацию, предлагаемое решение, альтернативы и их trade-offs, открытые вопросы. RFC не должен быть длинным — одна страница лучше, чем десять.
Engineering All-Hands — регулярная (ежемесячная или ежеквартальная) встреча всей инженерной организации. Цели:
Как проводить эффективно: начинайте с бизнес-контекста («куда движется компания»), затем инженерные достижения, затем открытые вопросы. Анонимный Q&A (через Slido или аналог) снижает барьер для неудобных вопросов.
При росте технических решений больше одной команды — необходима структура для архитектурной координации. Architecture Guild или Principal Group — горизонтальная структура из старших инженеров и архитекторов, которая:
Синхронные коммуникации — митинги — не масштабируются. При >30 человек митинг на 20 минут, требующий 10 участников, стоит организации более 3 часов инженерного времени. Принципы async-first:
Исходная ситуация (месяц 0): 8 инженеров, монолитный Node.js-бэкенд, общий репозиторий, ежедневные стендапы всей командой. CTO принимает все архитектурные решения, сам делает ревью всех PR. Скорость высокая, коммуникация стихийная.
Кризис роста (месяц 6, 22 инженера): Нанято 14 инженеров за полгода. Появились три потока работ: мобильное приложение, API для партнёров, внутренняя аналитика. Все три проекта горят одновременно. CTO становится бутылочным горлышком: ревью PR занимает 3–5 дней, решения по архитектуре задерживаются на неделю. Инженеры жалуются: «непонятно, что делает другая часть системы, боимся трогать чужой код». Два senior-инженера уходят из-за «хаоса».
Диагностика (месяц 8): Пригласили консультанта по Team Topologies. Выявленные проблемы:
Что сделали (месяц 9–14):
Результаты (месяц 18, 60 инженеров):
Главный урок: реструктуризацию лучше делать проактивно при 20–25 людях, а не в реактивном режиме при 40+. Болезненность реорганизации в активной фазе роста значительно выше.
| Ошибка | Почему плохо | Как правильно |
|---|---|---|
| Преждевременная иерархия | Добавление менеджерских слоёв до появления реальной необходимости увеличивает coordination overhead и замедляет решения, не добавляя ценности | Добавляйте менеджмент в ответ на конкретные проблемы (потеря direction, отсутствие growth-разговоров), а не превентивно |
| Слепое копирование Spotify Model | Spotify описала эволюционный снимок своей культуры в конкретный момент; копирование структуры без культуры и контекста создаёт карго-культ с новыми названиями для старых дисфункций | Изучите проблемы, которые решала Spotify; определите свои проблемы; проектируйте собственное решение |
| Промоутировать лучшего инженера в EM | IC-экспертиза и управленческая экспертиза ортогональны; человек теряет то, что его мотивировало, и не получает компетенций для новой роли | Создайте отдельный IC-трек (Staff/Principal Engineer); назначайте в EM тех, кто хочет заниматься развитием людей |
| Создание слишком маленьких команд | Команды из 2–3 человек страдают от bus factor, отсутствия ревью-культуры и чрезмерных межкомандных зависимостей | Минимальный жизнеспособный размер команды — 4–5 человек; при меньшем составе объедините с другой командой |
| Игнорирование Conway's Law | Архитектурный рефакторинг без изменения структуры команд не даст результата: система воспроизведёт коммуникационные структуры организации | Используйте Inverse Conway Maneuver: сначала сформируйте команды под желаемую архитектуру, потом мигрируйте |
| Отсутствие platform team | Каждая product-команда самостоятельно решает инфраструктурные проблемы, что дублирует усилия и увеличивает extraneous когнитивную нагрузку | Выделите platform team при ~20–25 инженерах; она должна предоставлять инфраструктуру как внутренний продукт со своим roadmap |
Упражнение 1: Team Topologies карта
Нарисуйте карту своей организации по Team Topologies. Для каждой команды определите тип (stream-aligned, platform, enabling, complicated-subsystem). Обозначьте режимы взаимодействия между командами: collaboration (тесное совместное решение задач), X-as-a-service (потребление через API), facilitating (временная помощь). Вопросы для анализа: сколько у вас stream-aligned команд? Есть ли platform team? Есть ли команды без чёткого типа? Где collaboration затянулась — и не пора ли перейти к X-as-a-service?
Упражнение 2: Аудит когнитивной нагрузки
Проведите 30-минутный опрос с каждой командой. Вопросы: какие сервисы/системы входят в зону ответственности команды? Есть ли части системы, которые команда «боится трогать»? Сколько времени уходит на понимание новой части кодовой базы при онбординге? Могут ли все члены команды объяснить, что делает каждый компонент? Если есть зоны страха или непонимания — это сигнал либо разделения ответственности, либо создания документации и enabling team.
Упражнение 3: Conway's Law аудит
Возьмите актуальную архитектурную диаграмму системы и org chart. Наложите их друг на друга: соответствуют ли границы сервисов границам команд? Какие сервисы изменяются несколькими командами одновременно? Там, где несколько команд часто меняют один сервис, — это точка напряжения: либо граница сервиса неправильная, либо граница команд. Задокументируйте несоответствия и предложите одно изменение (организационное или архитектурное) для устранения самого болезненного несоответствия.
Вопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.