Инженерная стратегия

Как написать стратегию, которая работает

15 марта 2024

Справочник

Инженерная стратегия помогает связать текущие проблемы с решениями: что менять, почему и в каком порядке. Для ее обсуждения удобно выделить диагноз, руководящие принципы и согласованные действия. Эту рамку описал Richard Rumelt в «Good Strategy / Bad Strategy» (2011); Will Larson применяет ее к инженерной организации. В статье разобраны примеры, ошибки внедрения и способы проверить, помогает ли стратегия принимать решения.

Почему стратегии проваливаются: реорганизационный театр и зазор между декларацией и жизнью

Даже без документа у компании есть сложившийся способ принимать решения: каким командам дают людей, какие проекты сокращают, как разрешают конфликты между безопасностью и скоростью разработки. Начать можно с описания этих решений. Так проще увидеть, совпадает ли реальная работа с заявленными приоритетами и какие договоренности нужно пересмотреть.

Реорганизация может оставить причины проблемы без изменений. Например, одна команда получает оценку за количество выпущенных функций, другая за доступность системы, а конфликт между ними каждый раз решает VP. Новые названия и подчинение не меняют эти стимулы. До реорганизации стоит описать проблему и объяснить, как выбранные действия должны ее решить.

Второй частый сценарий - стратегия как дорожная карта. Документ называется «Engineering Strategy 2026», но внутри - список проектов с датами и владельцами. Здесь нет диагноза: не объясняется, почему именно эти проекты, какая теория ситуации стоит за выбором, какие альтернативы были отвергнуты и по какому критерию. Команда читает такой документ как to-do list, спорит про конкретные сроки и не видит главного - что стратегия должна объяснять выбор, а не просто его фиксировать. Например, стратегия должна помогать решить, какой проект сократить первым, если бюджет уменьшится на 30%.

Третий сценарий - стратегия по метрикам. Команда выбирает несколько KPI (DORA-метрики, NPS, time-to-onboard) и объявляет их стратегией. Это работает в очень узком случае - когда метрики действительно отражают узкое место и есть теория, какие действия их сдвинут. В большинстве же случаев метрики становятся целью сами по себе: deployment frequency растет за счет того, что команды дробят задачи на тривиальные PR, lead time падает, потому что меряется только то время, которое легко измерить. Charity Majors в блоге Honeycomb много раз повторяет: метрика без causal model - это карго-культ. Хороший пример обратного - ее собственная аргументация observability как стратегии: метрика «time to understand a novel production issue» становится осмысленной только в связке с теорией о том, что современные системы сложнее, чем их monitoring предполагает.

Копирование чужой модели без учета условий компании не объясняет, какую проблему мы решаем. В эссе «Spotify’s Failed #SquadGoals» Jeremiah Lee описывает ограничения модели в Spotify. Это рассказ участника, а не доказательство, что такая структура всегда не работает. Для выбора нужны собственный диагноз и проверяемые ожидания от изменений.

Зазор между декларированной и лежащей стратегией - не патология, а норма. Патология - в отказе его признавать. Если вы как менеджер видите, что официальная стратегия гласит «инвестируем в платформу», а бюджет и календарь говорят «все на новые продуктовые фичи», - стратегией является второе, а первое надо или согласовать с реальностью, или честно отменить.

Исторический контекст: от командно-контрольной модели к outcome-based

Подходы к управлению по-разному распределяют право ставить цели и выбирать способы их достижения. Короткий обзор ниже помогает сравнить эти подходы с рамкой «диагноз, принципы, действия».

В 1911 году Frederick Taylor опубликовал «The Principles of Scientific Management» - первая систематическая попытка превратить управление в инженерную дисциплину. Тэйлоризм опирался на два допущения: работу можно разложить на стандартные операции и менеджер знает оптимальный способ их выполнения. Стратегия в этой модели - это план, спущенный сверху, и все управление сводится к контролю исполнения. Эта модель отлично работала на конвейере Ford в 1920-х и плохо работала в любой работе, где оптимальный способ заранее не известен.

Закон Конвея указывает на связь коммуникации и архитектуры. Это повод учитывать зависимости команд при выборе границ системы, но не доказательство, что функциональная структура неизбежно дает конкретное число модулей или согласований.

В 1975 году Frederick Brooks в «The Mythical Man-Month» (по итогам проекта IBM OS/360) ввел несколько идей, которые стали инфраструктурой всей последующей дискуссии о стратегии: добавление людей в опаздывающий проект задерживает его еще больше (Brooks's law); коммуникационные издержки растут квадратично от размера команды; концептуальная целостность важнее, чем сумма локальных оптимизаций. Стратегия в постBrooksовом мире уже не может быть просто планом ресурсов - она обязана учитывать, что организационные решения имеют нелинейные последствия.

В 1980-х и 1990-х доминирующей моделью стало MBO (Management by Objectives) Peter Drucker и его развитие в виде Balanced Scorecard (Kaplan, Norton, 1992). Цели каскадировались сверху вниз, каждая команда получала измеримые KPI, выполнение KPI становилось основой бонусов. Эта модель работала в стабильной среде (фарма, банки, ритейл) и плохо работала в среде с быстро меняющимися ограничениями. К 2000-м она начала ломаться в технологических компаниях по той же причине, по которой ломался Taylor: оптимальный способ достижения цели заранее не известен, а каскадированные KPI режут эксперимент и адаптацию.

Параллельно в 1999 году John Doerr принес OKR из Intel в Google. OKR - это не KPI: Objective формулируется как направление, Key Results - как наблюдаемые признаки прогресса, и от команды ожидается, что она сама выбирает, как двигаться к цели. Это сдвиг от командно-контрольной модели к outcome-based: руководство определяет, что должно быть достигнуто, команда определяет, как именно. Стратегия в этой модели становится не планом, а контрактом: «вот узкое место, вот руководящие принципы, вот зона свободы».

В 2001 году Agile Manifesto закрепил тот же сдвиг как культурный: working software over comprehensive documentation, responding to change over following a plan. На уровне организации это породило волну книг и практик 2010-х: Patty McCord «Powerful» (2018, по мотивам Netflix culture deck 2009 года), Camille Fournier «The Manager's Path» (2017), Lara Hogan «Resilient Management» (2019), Will Larson «An Elegant Puzzle» (2019) и «Staff Engineer» (2021). Все они исходят из общей предпосылки: в высокоменяющейся среде стратегия не может быть планом действий, она должна быть рамкой принятия решений в условиях неопределенности.

Этот подход описал Richard Rumelt в «Good Strategy / Bad Strategy» (2011). Эта книга вышла за пределы IT, но именно она стала структурным источником для всей последующей инженерной литературы о стратегии. Rumelt сформулировал «kernel of strategy» как тройку: diagnosis (теория ситуации), guiding policy (общий подход к решению), coherent actions (взаимоусиливающие действия). Эта тройка - не изобретение Will Larson, она пришла из военного и корпоративного стратегического мышления; вклад Larson и других инженерных авторов в том, что они показали, как эту рамку применить внутри инженерной организации.

Параллельно с этими управленческими моделями развивалась культурная инфраструктура, без которой современная инженерная стратегия не работает. В 2012 году Etsy под руководством John Allspaw и Mike Rembetsy ввели практику blameless post-mortem (см. эссе Allspaw «Blameless PostMortems and a Just Culture», codeascraft 2012). Идея простая: если человек ошибается, спрашивайте, какие свойства системы позволили ошибке привести к инциденту, а не «кто виноват». Это стало основой современной SRE-культуры и одной из предпосылок того, что стратегия может быть честной: без blameless нет диагноза, есть только защитные нарративы.

Если коротко суммировать, что менялось: от плана, который менеджер раздает исполнителям (Taylor) - к KPI, которые каскадируются вниз (Drucker, Kaplan-Norton) - к outcome-based рамкам, где команда автономна в выборе пути (OKR, Agile) - к диагноз-принципы-действия (Rumelt, Larson) как способу сделать эту автономию управляемой, а не превратить ее в фрагментацию. Современная инженерная стратегия живет в этой последней точке.

Учебный пример: от функциональных команд к продуктовым

Предположим, каждая новая функция требует участия backend, frontend и QA-команд. Если работа задерживается на передаче между ними, нужно выяснить причины: распределение ответственности, очереди, доступность экспертизы или технические зависимости.

Одно из возможных решений - собрать команды вокруг пользовательских сценариев, а общие возможности выделить в платформенные сервисы. Перед переходом нужно определить ответственность, доступные компетенции и способы совместных изменений. Это гипотеза, которую проверяют по времени прохождения работы, качеству и обратной связи команд.

Это учебный пример, а не реконструкция результатов Stripe или Shopify. Его задача - показать связь между диагнозом, принципами и действиями.

Трехчастная рамка через историю трансформации

Теперь, когда виден контекст, имеет смысл вернуться к трехчастной рамке как к инструменту. Источник - «Good Strategy / Bad Strategy» Richard Rumelt (2011), инженерная адаптация - Will Larson «Engineering strategies» (lethain.com/eng-strategies) и сборник «Engineering Strategy» (lethain.com, 2024). Диагноз объясняет выбор принципов, а действия показывают, как применить их на практике.

Часть Описание Вариант решения в учебном примере Что в стилизованном B2B SaaS
Диагноз Теория ситуации: что является узким местом и почему текущая структура его не решает Функциональная структура стала bottleneck для продуктовой диверсификации 180 точек cross-team координации режут lead time
Руководящие принципы Общий подход к решению с явными компромиссами и зонами свободы End-to-end продуктовые команды + platform teams + общий стек Четыре stream-aligned команды + Platform team + растворение QA
Согласованные действия Конкретные взаимоусиливающие шаги, которые делают принципы материальными Постепенный переход + Sorbet + tech bets + новый ритм решений 30 переходов + platform contract + новые роли + quarterly tech review

Диагноз - самая трудная часть. Он требует честно назвать, что не работает, и предложить теорию о том, почему именно это - а не следствия и симптомы. Опросы культуры, retro команд, данные из 1:1, дорожная карта, финансовый план, конкурентное давление - все это материал для диагноза, но не сам диагноз. Диагноз становится диагнозом только когда вы можете сформулировать причинно-следственную связь: «вот это - узкое место, вот по таким причинам, вот по таким признакам мы его опознаем». Без диагноза стратегия превращается либо в красивые принципы (fluff), либо в произвольный список действий.

Руководящие принципы - это не список ценностей, а описание подхода к решению с явными компромиссами. Хороший принцип режет варианты: он говорит не только что делать, но и от чего отказаться. «Поддерживаем соотношение 4 продуктовых инженера на 1 платформенного» - это принцип, потому что он отказывается от модели «платформа берет сколько надо» и от модели «нет выделенной платформы». «Стандартный стек или эскалация на Tech Review» - это принцип, потому что он отказывается и от «каждая команда выбирает что хочет», и от «вот единственно правильный стек, никаких исключений». Для каждого принципа нужно объяснить, как он применяется и кто следит за его соблюдением. Полезный принцип помогает принимать повторяющиеся решения.

Согласованные действия - это материализация принципов. Здесь критично слово «согласованные»: действия должны усиливать друг друга, а не растягивать команду в разные стороны. Если принцип «инвестируем в платформу», а действия - «нанимаем 20 продуктовых инженеров и 0 платформенных», действия не согласованы с принципом. Согласованность - главная проверка, легче всего ломающаяся в процессе бюджетирования и планирования.

При переходе от принципов к действиям нужно договориться, кто следит за их соблюдением, как обсуждать исключения и как перейти от текущего состояния к новому. Без этих договоренностей командам трудно использовать стратегию в повседневной работе.

Запрос на стратегию: когда она имеет смысл

Не каждое затруднение требует стратегии. Larson предлагает три проверочных вопроса, на которые нужно ответить «да», прежде чем браться за документ.

Что делать, если у компании нет бизнес-стратегии

Сфокусируйтесь на неинженерных стратегиях, важных для инженерного отдела, и задокументируйте их самостоятельно, согласовав со стейкхолдерами. Не делитесь этим черновиком широко - чтобы не подменять собой бизнес-руководство и не подрывать его авторитет. Это рабочий документ для вас, а не публичная декларация. Полезные вопросы для проработки:

Процесс написания и условия, при которых стратегия имеет смысл

Написание инженерной стратегии похоже на работу историка: посмотрите на то, как уже работает компания, запишите это и поделитесь записями. Larson описывает процесс из восьми шагов; ниже - его адаптация с пояснениями, что именно делается на каждом.

  1. Напишите это сами. Не делегируйте. Процесс написания - это процесс понимания. Если вы не можете написать стратегию, скорее всего, вы ее еще и не сформулировали.
  2. Определите стейкхолдеров. С кем нужно согласовать стратегию для того, чтобы она была устойчивой? Из них выберите 3-5 человек для ранней обратной связи, прежде чем расширять круг.
  3. Напишите диагноз. Используйте текущую дорожную карту, конкурентное давление, финансовый план, опросы о культуре и продуктивности, проблемы из 1:1 и командных встреч. Цель - не описать все, а выделить узкое место и причинно-следственную связь.
  4. Напишите руководящие принципы. Ответьте на ключевые вопросы (см. блок ниже).
  5. Поделитесь с полным списком стейкхолдеров. Получите feedback. Здесь критично различать возражения по существу (уточнения диагноза, новые ограничения) и возражения по форме (терминология, тон).
  6. Напишите согласованные действия. Конкретные шаги для реализации, явно привязанные к принципам.
  7. Проведите 1:1 с потенциальными критиками. Найдите людей, которые скорее всего будут недовольны, и обсудите с ними заранее. Возражение, услышанное в 1:1, можно интегрировать; возражение, прозвучавшее на all-hands после публикации, обычно превращается в политический конфликт.
  8. Опубликуйте и запланируйте Q&A. Дайте время на feedback и установите дату для оценки результатов (через 2 месяца - первая, через 6 - полная).

Структурирование руководящих принципов: три ключевых вопроса

Larson предлагает свести руководящие принципы к трем вопросам, на которые любая инженерная стратегия должна ответить явно.

1. Каковы приоритеты распределения ресурсов?

Пример формулировки: Поддерживаем соотношение 4 продуктовых инженера на 1 платформенного (security, надежность, инфраструктура, DevEx). Дополнительно выделяем 10 инженеров на MFA и 10 на миграцию JS на TypeScript.

2. Какие правила обязательны для всех команд?

Пример формулировки: Вся разработка использует стандартный стек (Go для backend, TypeScript для frontend, Aurora PostgreSQL). Исключения требуют одобрения Tech Spec Review и CTO.

3. Как принимаются решения?

Пример формулировки: Технические отклонения от стандартов - через Tech Spec Review. Оргструктура и найм - через CTO. Остальное - командами, ближайшими к решению. Эскалация через описанный процесс.

Согласованные действия: enforcement, эскалация, переходы

Действия должны явно отвечать на три вопроса: как обеспечивается соблюдение принципов, как их можно оспорить, как мы переходим от текущего состояния к описанному.

Обеспечение соблюдения

Пример: Tech Spec Review проходит еженедельно и рассматривает запросы на исключения из стандартного стека. Без записи в Tech Spec Review исключение считается несанкционированным.

Эскалации

Пример: Эскалация через цепочку технического или управленческого подчинения. Эскалации - это нормальная часть процесса, не враждебный жест. Если принцип ломается в реальном кейсе, это сигнал, который мы хотим слышать.

Переходы

Пример: Сворачиваем миграцию на микросервисы, возвращаемся к модульному монолиту. Структура команд не меняется, но приоритеты пересматриваются: освободившиеся 6 человеко-кварталов идут на стабильность тестов и observability.

Полный пример стратегии

Ниже - синтезированный пример инженерной стратегии для компании среднего размера. Он построен по трехчастной рамке и иллюстрирует, как принципы и действия связаны между собой. Это стилизованный пример на основе типичных паттернов; конкретные цифры выбраны так, чтобы показать связи, а не отражать конкретную компанию.

Диагноз

Руководящие принципы

Принцип Обоснование
Соотношение 4:1 продуктовых к платформенным Работает уже несколько лет. В следующей итерации добавим соотношения для security и data.
45% на B2B, 35% потребители, 10% эксперименты, 10% DevEx Перераспределяем 20% в сторону B2B из-за роста. 10% на DevEx - для стабильности тестов.
Нулевой денежный поток Избегаем найма. При конфликте с vendor-решениями - эскалация на CTO.
Стандартный стек или эскалация на Tech Review Максимизируем инвестиции в DevEx, упрощаем переходы между командами, compliance.
Быстрая эскалация при неясности Эскалации - это нормально. Медленные эскалации - наша проблема, не процесса.
Анонсы в #tech-updates и #shipped Уменьшаем неожиданности от технических решений других команд.

Согласованные действия

Финальный шаг: Q&A на инженерном all-hands плюс канал #eng-ask-anything для вопросов. Ревью через 2 месяца, полная оценка - через 6.

Типичные ошибки при внедрении и как из них выходят

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

Ошибка 1. Объявили стратегию на all-hands и считают, что она внедрена. Через месяц команды живут как раньше, потому что нет регулярного обсуждения документа. Признак: на retro никто не цитирует стратегию; конфликты приоритетов разрешаются «по ситуации». Возврат: ввести квартальный strategy review (1-2 часа), на котором каждое крупное решение сопоставляется с принципами стратегии явно. Если решение противоречит принципу, это либо повод пересмотреть принцип, либо повод изменить решение.

Ошибка 2. Стратегия, на которую сложно сослаться. Документ существует в красивых слайдах, но нигде не зафиксирован в форме, на которую можно сослаться в PR-описании или в Tech Spec Review. Признак: нельзя дать ссылку на пункт принципа. Возврат: переписать стратегию в текстовый документ со ссылками на каждый принцип, и в Tech Spec Review-шаблон добавить поле «какой принцип стратегии затрагивает / нарушает / поддерживает».

Ошибка 3. Стратегия без эскалационного пути. Инженеры, работающие над задачами, видят, что принцип не работает в их кейсе, но не знают, как это поднять. В лучшем случае молча обходят, в худшем - копят раздражение. Признак: возражения слышны в курилке, но не в офисе. Возврат: явно описать процесс эскалации, опубликовать список людей, к которым можно эскалировать, и периодически проводить office hours принципала / staff engineer для именно таких разговоров.

Ошибка 4. Стратегия по метрикам без causal model. Команда выбрала несколько KPI и гонится за цифрами. Через два квартала метрики выросли, но опыт повседневной работы ухудшился. Признак: показатели улучшаются, а на ретроспективах команды продолжают обсуждать проблемы в работе. Возврат: к каждому KPI явно приписать теорию изменений (что должно произойти, чтобы KPI вырос правильным способом), и регулярно проверять, что движение KPI совпадает с этой теорией. Charity Majors про observability формулирует это как «metrics are not enough; you need to understand the causal chain».

Ошибка 5. Скопировали Spotify (или Amazon, или Netflix). Команда взяла готовую модель, не разобравшись, какой контекст ее делал работоспособной в исходной компании. Признак: люди не могут объяснить, почему именно эта модель, кроме «у успешных так». Возврат: либо явно сформулировать диагноз, для которого эта модель - решение, либо честно признать, что выбор был культурным, а не стратегическим, и пересмотреть.

Ошибка 6. Стратегия без компромиссы. Документ говорит «инвестируем в скорость, качество, инновации, эффективность и developer experience». По такому перечню трудно понять, как распределять ограниченные ресурсы. Признак: ни одна команда после прочтения стратегии не может сказать, какой из ее текущих проектов получает больше ресурсов и какой - меньше. Возврат: явно назвать, чему мы говорим «нет» в этом году. Стоит явно указать, какие задачи отложены ради выбранных приоритетов.

Ошибка 7. Стратегия не пересматривается. Документ написан год назад, контекст изменился (рынок, состав команды, продуктовые приоритеты), но стратегия по-прежнему висит в неизменном виде. Команды постепенно перестают на нее ссылаться. Признак: люди говорят «эта стратегия уже не отражает реальность». Возврат: поставить календарную точку (минимум раз в год, лучше раз в полгода) для пересмотра. Пересмотр стратегии позволяет учесть изменения в условиях работы.

Ошибка 8. Стратегия без отказа от старых обязательств. Новая стратегия добавилась поверх старой, старая не отменена. Команды получают противоречивые приоритеты или больше обязательств, чем могут выполнить. Возврат: при публикации новой стратегии явно назвать, какие предыдущие декларации она заменяет, и убрать их из мест, на которые ссылаются команды (handbook, OKR-шаблоны, страницы о ценностях).

Все эти ошибки имеют общую природу: стратегия живет как декларация, а не как контракт. Превращение ее в контракт - это всегда некоторое количество скучной операционной работы (ритм review, шаблон Tech Spec, явный список «что не делаем»). Без этой работы любая, даже технически грамотно написанная стратегия превратится в очередной документ в Confluence, на который никто не ссылается.

Резюме

Источники и смежные статьи

Книги и эссе

Статьи и публикации компаний

Смежные статьи на этом сайте