Я как разработчик и IT-архитектор прекрасно понимаю, что любую задачу, как бы подробно она ни была описана, можно сделать сотней разных способов. Одни способы будут качественными и дорогими, другие быстрыми костылями. Иными словами, при написании кода ужасного качества можно формально выполнить требования ТЗ.
Есть способы достигнуть высокого качества IT-продукта, но точно не с помощью ТЗ.
Если вы подозреваете, что ваш проект идёт как-то не так, узнайте, как заранее определить провал IT-проекта (раздел l, глава 9), сэкономите деньги и время.