Eu escrevi um banco de dados de requisitos há 6 ou 7 anos para lidar com isso. Cada registro de requisito possui uma descrição curta, um memorando de "definição" e um memorando de "notas" (ambos em rich text, com capacidade de incorporar capturas de tela etc.). Também existem outros campos, para projeto, entrega, número de sequência (para que possam ser solicitados logicamente), caso de uso / recurso a que está relacionado, estimativa de tempo, um campo para a pessoa que o manipula, se alguém o selecionou para implementação, etc.
Há também um "Status" - "Entered", pois enquanto projetamos os recursos; "Aprovado", definido quando um grupo de requisitos é revisado e determinado como pronto para implementar; "Implementado", definido pelo programador assim que achar que o requisito foi cumprido e "Validado" quando a técnica de controle de qualidade concordar com o programador. (Se o técnico de controle de qualidade discordar, ele pode defini-lo como "Aprovado" para que o programador o recupere.) Os requisitos também podem ser "Adiados", "Rejeitados" ou "Questionados" (o que significa que o Change Control Board precisa analisá-lo .)
O truque para fazer isso bem é uma granularidade razoável. Às vezes, pode fazer sentido ter requisitos de uma frase (por exemplo, "o problema descrito no problema 12345 foi corrigido"), mas, em geral, os requisitos devem descrever todos os aspectos importantes de um recurso inteiro (ou um grande pedaço). Por exemplo, um recurso típico de "novo relatório" terá um requisito para um formato de relatório (como é a saída) e um requisito para a caixa de diálogo de opções (explicando os campos, validação etc.). existe um gerador complexo que processa os dados, em vez de apenas uma consulta fácil ou algo assim. Além disso, criaremos um requisito de "Ajuda" para o tópico de ajuda correspondente.
Existem enormes vantagens em manter esse material nos registros do banco de dados, em vez de um grande documento. Vários programadores podem trabalhar nos requisitos ao mesmo tempo. Os registros individuais são bloqueados para que apenas uma pessoa possa editar de cada vez, mas eles podem ser abertos e lidos enquanto outra pessoa estiver editando. A maior vantagem, porém, é que ele facilita a pesquisa na documentação de quais eram os requisitos e anotações sobre como eles foram implementados. Temos mais de 25.000 requisitos lá agora, e podemos encontrar facilmente todos os requisitos com palavras específicas em todos os campos, ou na definição, ou notas, ou o que for, em menos de 10 segundos. (Tente isso com mais de 6 anos de documentos do Word.)
Percebo por que as pessoas podem dizer que é uma má idéia fazer requisitos em um "rastreador de erros", mas acho que é porque as ferramentas são ruins, não porque manter os requisitos em um banco de dados pesquisável é uma má idéia.