Денис, по поводу ТЗ могу сказать, что их написание значительно отличается от написания пользовательской документации. Чаще всего, ТЗ пишут руководители проектов, аналитики (бизнес или системные), наконец, архитекторы или проектировщики компонентов и БД; да, порой ТЗ приходиться писать и техписам, но этом скорее исключение, чем правило.
Курсы по ТЗ - это ГОСТ 34 и образцы эталонных документов данного вида, которых в сети есть целое "море".
ГОСТ 34.602 и образцы документов не дают понимания, откуда берутся формулировки требований.
Кроме того, непрофессионалу очень тяжело отличить хороший документ от ерунды, что приводит к копипасту и распространению последней, типа «система должна быть интуитивно понятной».
Слава богу, в последние годы появился ряд учебных курсов от действующих профессионалов, которые обучают именно технологии концептуального, функционального, логического и технического проектирования ПО и ИС.
Если вы занимаетесь проектированием ПО и автоматизированных информационных систем, принимаете инженерные решения, и потом фиксируете их в ТЗ, то я рекомендую курсы:
Если же инженерные решения принимают другие люди, а вы только оформляете их в документы, то я рекомендую курсы Философта: http://www.philosoft.ru/TP003.zhtml