В статье рассматривается что, зачем и как документировать в заказной и коммерческой разработке, чтобы спасти проект и нервы.
Разработчики видят в документации бюрократию, отвлекающую от настоящей работы. Заказчики и менеджеры — единственную гарантию, что получат то, что просили. Истина, как всегда, посередине. В условиях договорных обязательств (особенно с госзаказчиком) документация — это не бумажка, а юридически значимый артефакт, такой же важный, как и сам код.
Давайте разберемся, как сделать ее союзником, а не врагом.

Часть 1. Два мира, два подхода - госзаказ или внутренний заказ
1.1. Заказная разработка для госзаказчика (по 44-ФЗ, 223-ФЗ)
Жесткие стандарты (ГОСТы, отраслевые требования). Докум��нтация - первична. Часто оплачивается отдельно, ее объем и формальность прописаны в контракте.
Требуется гарантия соблюдения процедур, проверяемость, прозрачность расходов бюджета. Документы - основа для приемки и защиты от претензий Счетной палаты.
Фокус на верификации и валидации: «Мы построили именно то, что описано в ТЗ, и это работает так, как написано в руководстве».
1.2. Коммерческая (внутренняя) разработка
Agile-принципы, итеративность и скорость. Документация эволюционирует вместе с продуктом.
Здесь Техническое задание в классическом понимании (единый монолит) - большая редкость. Вместо него используется живой бэклог продукта.
Работа ведётся так:
1. Формируется общее видение (Vision). Документ на 1-2 страницы с целями, целевой аудиторией и ключевыми ценностями продукта.
2. Создаются эпики и пользовательские истории (User Stories). Это и есть те самые фрагменты ТЗ. Описывается конкретная функциональность с точки зрения пользователя: «Как [роль], я хочу [цель], чтобы [выгода]».
3. Уточнение перед разработкой. Непосредственно в начале спринта или перед взятием задачи в работу история детализируется. Документируется именно этот фрагмент: добавляются критерии приемки (Acceptance Criteria — AC), набрасываются макеты интерфейса (wireframes), описываются бизнес-правила. Этот уточнённый «пакет» и отдаётся в разработку.
4. Документирование «на ходу». Архитектурные решения (ADR — Architecture Decision Record), контракты API (OpenAPI) и ключевые конфигурации создаются параллельно с кодом.
Требуется быстрая доставка ценности, получение обратной связи и адаптация к изменениям рынка.
Фокус на рабочем продукте, а не на полном комплекте документов. Документация служит для передачи контекста внутри команды и фиксации решений.
В первом случае документация - щит и меч исполнителя при сдаче проекта. Во втором - карта и компас для движения по быстрому течению.
1.2.1. Риски фрагментарного подхода и как их mitigate
К чему приводят упрощения, когда «пишут фрагмент ТЗ и тут же отдают в разработку без системного подхода:
Системная несогласованность. Отдельные фичи, написанные разными людьми/командами в разное время, начинают конфликтовать между собой. Получается лоскутное одеяло вместо целостного продукта.
Технический долг в документации. Накопленные фрагменты теряют актуальность, не сводятся в общую картину. Новый разработчик не может понять систему в целом.
Утрата видения. Команда тонет в деталях текущих спринтов и забывает общую цель (Vision). Разработка превращается в набор хаотичных улучшений.
Проблемы с онбордингом. Невозможно передать проект другой команде или масштабироваться.
Как этого избежать, сохранив гибкость:
Храните фрагменты системно. Используйте Issue Tracker (Jira, Linear) как единый источник правды, связывая задачи с ветками кода и пул-реквестами.
Поддерживайте живые карты. Регулярно обновляйте высокоуровневую диаграмму архитектуры (C4 Context & Container level) и глоссарий терминов.
Пишите ADR. Это дешевый и эффективный способ зафиксировать почему система устроена так, а не иначе.
Проводите регулярные ретроспективы по документации. Включите в ретроспективу спринта вопрос: «Достаточно ли мы документируем решения, чтобы через 3 месяца их можно было понять?».
Часть 2. Базовый минимум - какие документы нельзя игнорировать
Фазы проекта | Выходные документы | Примечание |
Фаза проектирования и согласования | Техническое задание (ТЗ) / ЧТЗ | Король документов. Без него все остальное бессмысленно. Должно содержать нефункциональные требования (NFR): нагрузка, безопасность, отказоустойчивость. |
Технический проект (ТП) / Общее описание си��темы | Часто пренебрегается. Должен отвечать на вопрос «КАК» мы будем делать то, что в ТЗ. Описание архитектуры (диаграммы компонентов, взаимодействия), выбор технологий, схемы баз данных. Это страховка от архитектурных просчетов. | |
Фаза разработки и внедрения | Протоколы информационного взаимодействия (API Specification) | Описание интеграций. Must have для современных систем. Форматы: OpenAPI (Swagger), AsyncAPI. Это договор между командами, который позволяет работать параллельно. |
Руководство администратора | Инструкция по развертыванию, обновлению, резервному копированию, мониторингу и устранению неисправностей. Критично для эксплуатации. | |
Фаза сдачи и эксплуатации | Руководство пользователя (РП) | Часто делается для галочки. Хорошее РП снижает нагрузку на поддержку. Сегодня это часто не PDF, а интерактивная help-система или скринкасты. |
Акты испытаний (Тест-план / Протоколы тестирования) | Доказательство, что система соответствует ТЗ. Особенно важно для госзаказа. Включает сценарии приемо-сдаточных испытаний. | |
Паспорт системы / Пояснительная записка | Краткий обзорный документ: что это, зачем, из чего состоит, как запустить. Нужен новым сотрудникам или аудиторам. | |
Регламенты (procedures) | На случай инцидентов, масштабирования, миграции данных. | |
Документация на тестовые среды и данные. |
| |
Схемы и описания процессов (BPMN, UML) | Для сложных бизнес-процессов.
|
Часть 3. Инструментарий - от Markdown до Enterprise-решений
Инструмент | Примечание |
Легковесные и гибкие (для коммерческой разработки) | |
Markdown + Git (GitLab, GitHub, Bitbucket) | Документация как код. Версионность, code review, CI/CD для сборки. Идеально для API-документации, репозиториев знаний. |
Confluence, Notion | Классика для вики-систем. Хороши для совместной работы, но могут превратиться в свалку. |
Miro, Draw.io / Diagrams.net | Для схем и архитектуры. |
Классические и формальные (часто для госзаказа) | |
Текстовый документ (МойОфис, Р7-Офис, LibreOffice) + Облачное хранилище | Для обмена ТЗ и утверждения. |
Enterprise-решения IBM DOORS, Enterprise Architect | Для проектов с жестким контролем требований. |
Выбирайте инструменты, которые минимизируют двойную работу. Генерируйте API-доку из кода (Swagger), диаграммы храните в текстовом виде (PlantUML, Mermaid), чтобы они менялись вместе с кодом.
Часть 4. К чему приводят упрощения - коротко о последствиях
Сторона договора | Последствия |
Исполнитель (разработчик) | Технический долг, bus factor (зависимость от 1-2 человек), невозможность масштабировать команду, срывы сроков, финансовые санкции по договору, репутационные риски. |
Заказчик (бизнес) | Привязка к конкретному исполнителю (вендор-лок), высокие затраты на поддержку и развитие, невозможность быстро адаптировать систему под меняющийся рынок, операционные ошибки из-за непонимания логики работы. |
Дружба возможна. Документация и код - не враги, а две стороны одной медали под названием успешный, поддерживаемый и отвечающий целям продукт.
Ключ - в разумном балансе:
Документируйте не все подряд, а то, что ценно и будет использоваться (архитектурные решения, контракты интеграций, процедуры развертывания).
Обновляйте документацию в рамках тех же процессов (например, merge/pull request), что и код.
Хорошая документация снижает риски, ускоряет onboarding и повышает стоимость вашей компании как актива (ведь ее не покинет вся экспертиза).
В условиях договора сильная документация — это не бюрократия, а ваша профессиональная страховка и конкурентное преимущество.
