Всё зависит от того, как вообще организован сам процесс производства ПО.
Если проект разовый и комманда маленькая, то кто напишет ТЗ — уже не важно. Главное, чтобы оно было вообще.
А если комманда большая, хорошо структурирована, и есть отдельный тим маркетологов (которые и с конкретным клиентом работают, и рынок мониторят), и проект имеет не один этап, то тут уже дело даже не в конкретном ТЗ. Обычно готовится Стратегия развития продукта — общий документ, описывающий цели и направления развития продукта на перспективу. В рамках Стратегии для каждого конкретного этапа может готовится Детальное Описание Продукта — подробный документ с описанием готовящейся к выпуску версии продукта. Готовит его отдел маркетинга и он же его согласовывает с Заказчиком. И когда Описание продукта для данного этапа готово, то Developers Team Leader (DM) на его базе готовит ТЗ для своей комманды. И это ТЗ уже могут Заказчику даже не показывать, т.к. это, по сути, внутренний документ. Если DM активно участвовал в подготовке Описания Продукта (а он обязан участовать, и его замечания обязаны быть учтены), то ТЗ уже меняться не будет в процессе разработки. И, к слову, при такой организации процесса Project Manager может нести только административные функци, и вообще не шарить в программировании.