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

Шаблон техспеки для инженеров (2026)

· 7 мин. чтения
Artur Pan
CTO & Co-Founder at PanDev

В инженерной культуре Google есть правило: до первой строчки кода для любой нетривиальной задачи пишется design doc. Не 40-страничный монумент, а обычно 5-12 страниц, с двумя ревьюерами и комментариями на полях. Команда Engineering Practices из Google публично называла это одним из самых дешёвых рычагов качества в компании.

Большинство команд вне Google либо пропускают этот шаг, либо прикручивают шаблон в Confluence к существующему процессу и смотрят, как он атрофируется. Шаблон ниже — тот, который реально выживает при встрече с уставшим ревьюером в 16:45 в четверг. Это тот момент, когда спека живёт или умирает.

{/* truncate */}

В чём проблема

Инженерные команды пишут спеки по трём причинам: думать ясно, договориться, оставить след. Большинство шаблонов оптимизировано под третье. Поэтому они и умирают. Никто не читает спеку, написанную как артефакт compliance.

Автор должен потратить на спеку 2-6 часов, ревьюер — 20-40 минут. Если одна из сторон тратит больше, проблема в шаблоне, а не в людях. Stack Overflow Developer Survey 2024 поставил документацию на #2 место среди productivity killers после неясных требований — "нет документации" и "плохая документация" шли ноздря в ноздрю. Плохие шаблоны — это то, как хорошие команды получают плохую документацию.

Что реально должно быть в tech spec 2026

Девять разделов. Не больше, не меньше. Всё остальное — в приложение или в отдельный документ.

1. Problem statement

Один абзац. Кого это затрагивает, что сломано, как мы об этом знаем. Никаких намёков на решение.

Плохо: "Нужно отрефакторить auth-сервис."

Хорошо: "p99 session-refresh в auth-сервисе вырос с 80 мс до 340 мс за последние 6 недель, коррелирует с пересечением отметки 120k MAU. На прошлой неделе два тикета в саппорте из-за refresh timeout."

Если вы не можете указать на метрику или наблюдение — спека не готова.

2. Scope и non-goals

Bullet-лист: что входит и — что важнее — что не входит. Non-goals — первое, что ревьюеры ищут grep'ом. Это то, что защищает от scope creep на PR review через два месяца.

3. Current state

Как всё работает сегодня. Три предложения плюс одна диаграмма, если система не очевидна. Ссылки на существующую документацию, без пересказов.

4. Proposed design

Сердце спеки. Описывайте дизайн в том порядке, в котором объяснили бы его новичку у доски: сначала data flow, потом сложное место, потом edge cases. Sequence diagrams — когда поведение зависит от порядка.

5. Alternatives considered

Минимум две альтернативы, каждая с абзацем — почему отклонена. Именно здесь вы зарабатываете доверие ревьюера. Если у вас одна альтернатива — это не спека для review, это предложение.

6. Trade-offs

Явно назовите цену выбранного дизайна. Производительность? Операционная сложность? Vendor lock-in? Спека, утверждающая "нет trade-offs", — это будущая проблема на ревью.

7. Rollout plan

Имя feature flag, шаги миграции, путь отката, добавленная наблюдаемость. Для всего, что трогает данные — backfill plan и как вы поймёте, что миграция частично сломалась посередине.

8. Success metrics

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

9. Open questions

Нумерованный список. Ревьюеры отвечают inline. Когда все закрыты — спека готова к merge.

Flow diagram: шесть разделов спеки ведут к approved design doc Спека идёт от проблемы к измерению. Пропустите любую из этих коробок — документ превращается в театр.

Заполненный пример: реальный паттерн

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

РазделСодержание (выжимка)
ProblemРеконсиляционный job идёт 90 минут, блокирует утренние деплои, 3 пропущенных SLA в прошлом месяце
ScopeПереносим reconciliation на streaming; out of scope: новые отчёты, UI
Current stateЧасовой cron, читает 12M строк, пишет в OLAP, owner — Payments team
Proposed designKafka topic от CDC; Flink job с окнами 5 минут; тот же OLAP target
Alternatives(a) Распилить cron на 4 параллельных — отклонено, не решает latency. (b) Managed DW — отклонено, $14k/мес
Trade-offsОперационно: новый Flink-деплой, требует обучения on-call платформенной команды
RolloutShadow mode 2 недели → dual-write 1 неделя → cutover с 24ч rollback-окном
Successp99 reconciliation lag < 10 мин, ноль блокировок утренних деплоев 30 дней
Open questions1) Кто on-call для Flink? 2) Retention для Kafka-топика?

Обратите внимание, чего нет: ни ROI-расчёта, ни био команды, ни market analysis. Спека отвечает: что, зачем, как, какой ценой, как поймём, что сработало. Остальное — cargo-cult из product-requirement docs, ему не место в инженерной спеке.

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

ОшибкаПочему это больноКак чинить
Solution-first спека (дизайн раньше проблемы)Ревьюер не может оценить дизайн, не зная, что вы оптимизируетеСначала проблема, всегда
Нет alternativesВыглядит так, будто автор не думалМинимум две альтернативы, даже слабые
Метрики, которые невозможно измеритьКритерии успеха становятся произвольнымиКаждая метрика должна цепляться за существующий дашборд или создаваемый в этой же спеке
Мутный rollout ("задеплоим и будем наблюдать")70% инцидентов — из-за просчётов rolloutКонкретные стадии, имена флагов, триггеры отката
Спека длиннее 12 страницРевьюеры проскальзывают после 7-й страницыГлубокие детали — в appendix, основной текст держите коротким
Нет имени автора и датыСломанный audit trail через 18 месяцевПервая строка документа

Ошибка "solution-first" — самая частая. Когда я ревьюил 40 спек из портфеля B2B-команд в 2025 году, 31 из 40 начиналась с решения, а проблема была footnote'ом. У каждой из них был scope-спор на первом круге review.

Чеклист (копируйте и используйте)

  • Problem statement с метрикой или конкретным наблюдением
  • Scope И non-goals явно выписаны
  • Минимум 2 отклонённые альтернативы с причинами
  • Trade-offs названы, а не спрятаны
  • Rollout включает откат и наблюдаемость
  • Метрики успеха измеримы с существующих или создаваемых дашбордов
  • Open questions пронумерованы и назначены
  • Меньше 12 страниц, или глубина убрана в appendix
  • В хедере названы минимум 2 ревьюера
  • Поле Approved-by в начале, пустое до подписи

Как понять, что процесс спек работает

Три сигнала, мониторинг квартальный. Два из них напрямую цепляются за данные delivery — те, которые PanDev Metrics считает автоматически из timestamps branch→deploy. Третий берётся из инструмента спек.

  • Lead time от spec до первого коммита. Окно от merge спеки до первого commit в соответствующей ветке. У здоровой команды — 2-5 рабочих дней. Больше — значит спека реально не выровняла команду; меньше — спека обычно пишется после кода.
  • Количество итераций review. Сколько раундов комментариев до approval. Команды с калиброванным процессом живут на 2-3 раундах; 5+ раундов — значит либо шаблон не тот, либо стандарт у авторов и ревьюеров разный.
  • Корреляция инцидентов post-ship. Из инцидентов за квартал — сколько восходят к фиче со слабой или пропущенной спекой. Если число стабильно ненулевое — чинить надо сам процесс спек.

Команды с PanDev Metrics, подключённым к Git-провайдеру, получают сигнал по lead time автоматически через 4-стадийный разбор — мы писали про механику в гайде по lead time. Корреляция инцидентов потребует немного тегов в incident tool, но это метрика с самым высоким сигналом из трёх.

Когда шаблон не подходит

Три случая, где стоит взять другое:

  1. Research spikes. Таймбокс на 3 дня для прототипа не заслуживает документа из 9 разделов. Пишите "spike report" на одну страницу.
  2. Emergency fixes. Хотфикс — сам себе спека. Пишите post-mortem.
  3. Архитектурные изменения через всю компанию. 12-страничный шаблон превращается в 60-страничный RFC. Используйте внутренний architecture-review, не это.

Всё остальное — новые сервисы, значимые рефакторинги, изменения API с downstream-потребителями, всё, что трогает миграцию данных — ложится в шаблон. Если сомневаетесь, нужен ли спеке шаблон, сам факт сомнения означает "да, нужен".

Исследование DevEx-команды Microsoft (Forsgren, Storey et al., 2024) показало: команды с калиброванной практикой design-doc имели на 17% меньший change failure rate, чем команды без неё, при контроле за частотой деплоев. Это один из крупнейших эффектов в их датасете — и получен от практики, которая почти ничего не стоит внедрить.

Читать дальше

Спека — не deliverable. Deliverable — общее понимание в головах ревьюеров. Если ваш шаблон оптимизируется подо что-то кроме этого понимания, перепишите шаблон.

Готовы увидеть метрики своей команды?

30-минутная персональная демонстрация. Покажем как PanDev Metrics решает задачи именно вашей команды.

Забронировать демо