С виду очевидный момент, однако часто упускаемый – приемка работ.
1) Для каждого этапа работ должна быть описана своя приемка. Например, ТЗ должно приниматься в целом как документ, а макеты можно (и нужно) принимать по одному или хотя бы сериями.
2) Должно быть зафиксировано количество итераций. Если со стороны клиента интерес к запуску проекта в срок потерян (мало ли приоритеты изменились), то без указания итераций одно и то же ТЗ можно мусолить десятки раз. Причем при сдаче будет виноват подрядчик, что долго делал.
3) Самое важное! Нужно обязательно фиксировать срок приемки результатов работ Клиентом. Если вы сдаете этап работ, значит, у вас под этот проект есть команда (ну или полкоманды в случае шаринга проектов) и ее простой значимое время = ваши прямые убытки. Либо команда уходит в другой проект и тогда получается треш для клиента и выгорание для команды.
Пишите в комментариях, какие еще моменты и риски хотели бы обсудить – обязательно осветим.