Есть системы управления требованиями типа Cradle, которые встраивают в жизненный цикл софта. Вместо ТЗ - набор требований с привязками. И на этапе реализации в коде делают ссылки на СУТ. Устранение багов тоже со ссылками и коммиты тоже. Это все увязывается с svn, redmine, bugzilla или аналогами.