Часто стадию предпроектных исследований и технического задания называют стадией постановки задачи. Постановка задачи должна содержать достаточно информации для того, чтобы позволить программисту или аналитику однозначно определить, что будет делать создаваемая программа. Детали того, как она будет это делать, должны определиться позже, при разработке алгоритма. Для того, чтобы грамотно выполнить постановку задачи, необходимо произвести предпроектные исследования предметной области, определить, существуют ли аналоги будующего программного продукта, их достоинства, недостатки и т.д.
Постановка решаемой на компьютере задачи должна включать список ее входных данных, список требуемых результатов и любые инструкции (правила), которых нужно следовать при решении задачи. В постановке также должно быть указано, должна ли задача решаться для конкретного случая (конкретных данных) или должна обобщаться для переменных входных данных. Если возможно, решение должно обобщаться так, чтобы его можно было использовать для решения класса задач. Например, программа, написанная для вычисления текущей зарплаты, должна быть написана так, чтобы она могла бы периодически использоваться и в будущем без изменений.
В результате согласования между заказчиком и исполнителем всех перечисленных вопросов составляют техническое задание (ТЗ) в соответствии с ГОСТ 19.201-78, которое служит основанием для дальнейшей работы.