Техническое задание на проект является юридически значимым документом, в котором отражаются аспекты реализации системы.

Детализация технического задания зависит от подхода, который применяется для разработки системы, и уровня взаимопонимания между заказчиком и исполнителем.

Давно принятая, и, время от времени применяемая, каскадная модель разработки, подразумевает подготовку детального технического задания с обязательным описанием всех аспектов будущей системы.

На основании такого детального документа происходит реализация всех стадий проекта, и, на его же основе, происходит приёмка выполненных работ.

Кроме каскадной модели в настоящее время практикуется большое количество различных моделей разработки, продвигающих итеративный подход.

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

Плюсами подготовки полного технического задания являются полное изучение бизнес-процесса заказчика и прояснение всех требуемых аспектов продукта до его разработки. После завершения разработки полного технического задания можно с относительно высокой точностью оценить сроки и риски реализуемой задачи, и, следовательно, оценить стоимость проекта.

Минусом является значительное время, которое требуется для этой задачи.

Плюсом итеративного подхода является тот факт, что заказчик очень быстро получает работающий продукт, хоть и не полностью реализующий требуемый функционал. И в дальнейшем, продукт, будучи разрабатываем эволюционно, поэтапно приближается к требуемому результату.

Минусом итеративного подхода высокая требовательность к качеству поступающей информации о бизнес-процессах заказчика. В случае плохого и/или неполного понимания заказчиком целей и задач, которые требуется реализовать в системе, потребуется значительно большее количество итераций, чем необходимо, что приведёт к дополнительным и ощутимым расходам на реализацию всего проекта.

Применение итеративного подхода не позволяет точно оценить сроки и риски на весь проект, а только лишь на его небольшую часть. Что, в свою очередь, может являться неприемлемым для некоторых заказчиков.

Если резюмировать, то создание полного технического задания требует времени, но описывает проект полностью и даёт представление о затратах и рисках на реализацию.

Итеративный подход даёт возможность попробовать готовый продукт в работе как можно скорее, но при его применении сложно оценить затраты и риски на весь проект.