Расскажем, как на наш взгляд не стоит писать функциональные требования для Технического Задания.
Напомним, что функциональные требования – это не 50% от общего объема всех требований к Системе, которые определяют 100+ % успеха разработки и реализации.
Итак, что точно не нужно делать:
1. Не пытайтесь выполнить работу за один день. Хотя на практике, как правило, вам и того меньше времени выделит Заказчик, ведь «что там сложного?» - скажет он. Уверен, каждый с этим сталкивался хотя бы раз. И всем заинтересованным сторонам нужно понятно и терпеливо объяснить, что разработка ТЗ – долгий, итерационный процесс.
2. Не нужно в требования к функциям писать все, что «рядом лежит», т.е. приводить подробный атрибутивный состав, с которым должна (!) а может быть и не будет никогда работать функция, писать пользовательский сценарий «под диктовку» Заказчика и многое, многое другое.
3. Не стоит вообще приступать к работе с требованиями, не проведя предпроектное обследование, хотя бы в самом упрощенном виде (анализ нормативных документов, проектных решений, опрос пользователей).
4. Не переписывайте слово в слово то, что Заказчик выдает за «требования» (это могут быть отдельные фразы или несвязанные предложения со словами «Система должна» или «Функция должна…» в Контракте, или технические требования). На деле это в 70% случаев просто «набор слов»
5. Не используйте неоднозначные формулировки. Это будет размыто и абстрактно, а значит не проверяемо.
6. Не смешивайте требования с решениями. Если в процессе реализации будут небольшие отличия от зафиксированных в ТЗ требований, то вариантов два: «делать, как написано» или… страдать.
И таких «НЕ» - очень много.
Не поддавайтесь на уговоры Заказчика или кого-то еще, что сейчас самое главное «быстренько выдать» документ ТЗ, а потом все равно все поменяется, ведь есть еще этап Частного ТЗ, проектирования.
Для быстрой проверки качества разработанных требований составили небольшой чек-лист ниже.
Чек-лист проверки качества функциональных требований
Смысл и структура
Понятно, что делает система
Указана роль (кто)
Есть контекст / условие (когда)
Однозначность
Нет слов: быстро, удобно, иногда
Нет двусмысленности
Нет «и/или»
Атомарность
Одно требование — это одно действие
Нет объединённых требований
Тестируемость
Понятно, как проверить
Есть критерии приёмки
Есть измеримые параметры
Альтернативные сценарии
Описаны ошибки
Учтены негативные сценарии
Согласованность
Нет противоречий
Нет дублирования
Описаны требования, а не решения
Описано ЧТО, а не КАК
Нет лишних технических деталей
Быстрая самопроверка
Есть ли конкретика (что, кто, когда)?
Можно ли это протестировать?
Нет ли двусмысленности?
Это что делает система, а не как и через что она реализована?
Разбито ли на атомарные части?
Комментарии (2)

beskov
20.03.2026 11:35Читается как 1с-ники заново открывают для себя инженерию требований 30 леь спустя
little-brother
Ничего не понял, но ТЗ Исполнителю должен выдавать Заказчик. Откуда он возьмет: сам напишет, отдаст кому-то на исполнение (аутсорс) или подрядит Исполнителя - дело десятое.
В случае написания ТЗ Исполнителем так, что он потом сделать не может - это классика. Дебилов везде полно. Лазейки вариативности - это то, что позволяет прикрыть попку в непростых ситуациях (ну планировали так, попробовали в технике - не пошло, переобулись).
Если ТЗ невыполнимое, мутное или еще фиг знает какое (писано другими) - можете рискнуть и поучаствовать в проекте.
Как надо писать ТЗ: представьте, что вы по этому документу сдаете готовую систему комиссии из представителей Заказчика (возглавляет комиссию) и Исполнителя - т.е. каждый пункт проверяется на соответствие ТЗ и того, что получилось (должна иметься методология, что именно признать соответствием). И если написали "кнопка должна быть красивой" и кому-то в комиссии это кнопка не понравиться - получите замечание и возможно неприемку системы. Все тривиально.
Понаберут по объявлению погроммистов.