Моё ТЗ довольно короткое и занимает всего 2 страницы, но при этом закрывает все важные для меня вопросы. В принципе, с ним ни разу не было ситуации, когда объём работ по сайту пришлось бы увеличивать без доплаты.
Мое ТЗ состоит из 6 разделов:
1. Общая информация о проекте
2. Понимание задачи
3. Структура сайта по блокам/страницам
4. Этапы и ориентировочные сроки
5. Технические требования
6. Подписи сторон
Подробнее о том, о чем (и зачем) я пишу в каждом разделе читайте в галерее.
В целом я считаю, что самое главное для любого ТЗ — использовать простые и понятные формулировки, чтобы заказчику (и нам) всё было «очевидно» и ни у какого пункта не могло быть двойного толкования. Мы же делаем ТЗ для людей, а не роботов — пусть оно будет написано по-человечески.
И еще важный совет — не пытайтесь сделать максимально точное ТЗ. Конкретное — да, а вот точное — необязательно. Я отношусь к ТЗ как к отправной точке в разработке, по которому мы лишь ориентируемся, к чему должны прийти в итоге.
Поэтому если какие-то вещи мне неизвестны до начала работы, я пишу все в примерном формате — не «10 блоков», а «до 10 блоков»; не «Дизайн-концепция будет 29 октября» а «На дизайн-концепцию уйдет 3 дня». Это позволяет мне не закопаться в формальностях — на подготовку ТЗ у меня уходит 20-30 минут максимум.