Ho scritto un database di requisiti 6 o 7 anni fa per gestirlo. Ogni record di requisiti ha una breve descrizione, un memo "definizione" e un memo "note" (entrambi rich text, con possibilità di incorporare schermate, ecc.). Esistono anche altri campi, per progetto, deliverable, numero progressivo (in modo che possano essere ordinati logicamente), caso d'uso / funzionalità a cui è correlato, stima del tempo, un campo per la persona che lo gestisce, se qualcuno lo ha selezionato per l'implementazione, eccetera.
C'è anche uno "Stato" - "Inserito", mentre mentre stiamo progettando le funzionalità; "Approvato", impostato una volta che un gruppo di requisiti viene esaminato e determinato per essere pronto per l'implementazione; "Implementato", impostato dal programmatore quando ritengono che il requisito sia stato eseguito, e "Convalidato" una volta che la tecnologia QA è d'accordo con il programmatore. (Se la tecnologia QA non è d'accordo, può riportarlo su "Approvato" in modo che il programmatore lo ritorni.) I requisiti possono anche essere "Rinviato", "Rifiutato" o "Interrogato" (ciò significa che la commissione di controllo delle modifiche deve esaminarla .)
Il trucco per farlo bene è una granularità ragionevole. A volte può avere senso avere requisiti di una frase (ad esempio "il problema descritto nel problema 12345 è risolto"), ma in generale, i requisiti dovrebbero descrivere tutti gli aspetti importanti di un'intera funzionalità (o una grande parte di uno). Ad esempio, una tipica funzione "nuovo report" avrà un requisito per un formato di report (come appare l'output) e un requisito per la finestra di dialogo delle opzioni (che spiega i campi, la convalida, ecc.) Potrebbe anche esserci un terzo se c'è un generatore complesso che scricchiola i dati, piuttosto che una semplice query o qualcosa del genere. Inoltre, creeremo un requisito di "Guida" per l'argomento della guida corrispondente.
Ci sono enormi vantaggi nel mantenere questa roba nei record del database piuttosto che in un grande documento. Più programmatori possono lavorare sui requisiti contemporaneamente. I singoli record sono bloccati, quindi solo una persona alla volta può modificare, ma possono essere aperti e letti mentre qualcun altro sta modificando. Il più grande vantaggio però è che fornisce una facile ricerca della documentazione di entrambi i requisiti e delle note su come sono stati implementati. Ora abbiamo oltre 25.000 requisiti e possiamo facilmente trovare tutti i requisiti con parole specifiche in tutti i campi, o la definizione, o le note, o qualsiasi altra cosa, in meno di 10 secondi. (Prova con documenti Word di almeno 6 anni).
Posso capire perché la gente potrebbe dire che è una cattiva idea fare i requisiti in un "bug tracker", ma la mia ipotesi è che perché gli strumenti fanno schifo, non perché mantenere i requisiti in un database ricercabile è una cattiva idea.