В чем разница между функциональным и нефункциональным требованием? Первое отвечает на вопрос «Что делать?» — например, «система должна формировать авансовый отчет». Второе отвечает на вопрос «С какими характеристиками это должно работать?» — например, «отчёт формируется за 10 секунд при одновременной работе 1000 пользователей». Кажется, что забыть про второе невозможно. Однако на практике именно на НФТ спотыкаются чаще всего — здесь проекты теряют миллионы и месяцы.
Самый дорогостоящий пример из практики — раздел, который разработчики и заказчики не любят больше всего: требования к защите информации (п. 3.8 по ГОСТ 34.602). В погоне за кнопками и отчетами вопросы ИБ часто откладываются на потом. Но когда система готова, выясняется, что ее архитектура не соответствует требованиям ФСТЭК, отсутствуют необходимые программно-аппаратные средства защиты, а сертификация комплекса займет полгода.
Результат — система не допускается в промышленную эксплуатацию. Деньги потрачены, сроки сорваны, а под угрозой оказывается не только премия руководителя проекта, но и включение исполнителя в реестр недобросовестных поставщиков. Стоимость исправления такой ошибки часто сопоставима с бюджетом всей разработки.
Другой классический провал — показатели назначения (п. 3.2). Представьте: в компании работает 10 000 сотрудников. Систему делают с запасом на 12 000 пользователей. Но в ТЗ забыли уточнить количество активных (одновременно работающих) пользователей. Здравый смысл подсказывает, что все 12 тысяч не зайдут в систему одновременно. Но здравый смысл не является техническим заданием. В результате проект получает архитектуру, не рассчитанную на конкурентную нагрузку, или серверные мощности, которые «падают» в первый же час пиковой нагрузки. Дозаказ оборудования — это месяцы закупочных процедур, сдвиг сроков сдачи и штрафы.