Ho scritto un database dei requisiti 6 o 7 anni fa per gestirlo. Ogni record di requisito ha una breve descrizione, un memo di "definizione" e un promemoria "note" (sia rich text, con possibilità di incorporare schermate, ecc.). Ci sono anche altri campi, per progetto, deliverable, numero di sequenza (in modo che possano essere ordinati logicamente), use-case / feature a cui è correlato, stima del tempo, un campo per la persona che lo gestisce, se qualcuno lo ha selezionato per l'implementazione, ecc.
C'è anche uno "Stato" - "Inserito", perché mentre stiamo progettando le funzionalità; "Approvato", imposta una volta che un gruppo di requisiti viene esaminato e determinato per essere pronto per essere implementato; "Implementato", impostato dal programmatore una volta che ritengono che il requisito sia stato eseguito, e "Convalidato" una volta che la tecnologia QA è d'accordo con il programmatore. (Se il tecnico QA non è d'accordo, può riportarlo su "Approvato" in modo che il programmatore lo riprenda.) I requisiti possono anche essere "Differiti", "Rifiutati" o "Interrogati" (il che significa che il Pannello di Controllo del Cambiamento deve guardarlo .)
Il trucco per farlo bene è una granularità ragionevole. A volte può essere logico avere un requisito di frase (ad esempio "il problema descritto nel problema 12345 è risolto"), ma in generale i requisiti dovrebbero descrivere tutti gli aspetti importanti di un'intera funzione (o una grande parte di uno). Ad esempio, una caratteristica tipica del "nuovo report" avrà un requisito per un formato del report (come appare l'output) e un requisito per la finestra di dialogo delle opzioni (spiegando i campi, la convalida, ecc.). Potrebbe esserci anche 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 allo stesso tempo. I singoli record sono bloccati in modo che solo una persona possa modificare alla volta, ma possono essere aperti e letti mentre qualcun altro sta modificando. Il più grande vantaggio è che fornisce una documentazione di ricerca facile sia per quanto riguarda i requisiti, sia per le note su come sono stati implementati. Abbiamo oltre 25.000 requisiti in questo momento e possiamo facilmente trovare tutti i requisiti con parole specifiche in tutti i campi, o la definizione, o note, o qualsiasi altra cosa, in meno di 10 secondi. (Provalo con più di 6 anni di documenti Word.)
Posso capire perché la gente potrebbe dire che è una cattiva idea fare i requisiti in un "bug tracker", ma la mia ipotesi è perché gli strumenti fanno schifo, non perché mantenere i requisiti in un database ricercabile è una cattiva idea.