Я написал базу данных требований 6 или 7 лет назад, чтобы справиться с этим. Каждая запись требований имеет краткое описание, памятку «определения» и заметку «заметки» (как форматированный текст, с возможностью вставки снимков экрана и т. Д.). Есть и другие поля: проект, результат, порядковый номер (чтобы их можно было упорядочить логически), вариант использования / особенность, к которой он относится, оценка времени, поле для лица, которое его обрабатывает, если кто-то выбрал его для реализации, и т.п.
Также есть «Статус» - «Введено», пока мы разрабатываем функции; «Утверждено», устанавливается после того, как группа требований рассмотрена и определена как готовая к выполнению; «Реализовано», устанавливается программистом, когда они считают, что требование выполнено, и «Утверждается», когда технический специалист по контролю качества соглашается с программистом. (Если технический специалист по контролю качества не согласен, он может установить для него значение «Утверждено», чтобы программист получил его обратно.) Требования также могут быть «Отложено», «Отклонено» или «Опрошено» (то есть Совет по контролю за изменениями должен рассмотреть это .)
Уловка, чтобы сделать это хорошо, является разумной детализацией. Иногда может иметь смысл иметь требования одного предложения (например, «проблема, описанная в выпуске 12345, исправлена»), но в целом требования должны описывать все важные аспекты целой функции (или большой части одного). Например, типичная функция «новый отчет» будет иметь требование к формату отчета (как выглядит вывод) и требование к диалоговому окну параметров (объяснение полей, проверка и т. Д.). Возможно, даже третья есть сложный генератор, который обрабатывает данные, а не просто запрос или что-то в этом роде. Кроме того, мы создадим требование «Справка» для соответствующего раздела справки.
Есть огромное преимущество хранения этого материала в записях базы данных, а не в большом документе. Несколько программистов могут работать над требованиями одновременно. Отдельные записи заблокированы, поэтому только один человек может редактировать одновременно, но их можно открывать и читать, пока кто-то другой редактирует. Самым большим преимуществом является то, что он обеспечивает легкий поиск документации как требований, так и примечаний о том, как они были реализованы. Сейчас у нас более 25 000 требований, и мы можем легко найти все требования с определенными словами во всех областях, или с определением, или с примечаниями, или с чем угодно, менее чем за 10 секунд. (Попробуйте это с документами Word на 6+ лет.)
Я могу понять, почему люди могут сказать, что плохая идея - выполнять требования в «трекере ошибок», но я думаю, это потому, что инструменты отстой, а не потому, что хранение требований в базе данных с возможностью поиска - плохая идея.