I requisiti non funzionali si presentano in molte forme, ma hanno una cosa in comune: non descrivono il comportamento funzionale del sistema, ma piuttosto vincolano le scelte progettuali che puoi fare.
I requisiti non funzionali non sono adatti per essere espressi come storie degli utenti perché le storie degli utenti funzionano meglio quando possono essere implementate una volta in un breve lasso di tempo (rispetto alla lunghezza dell'intero progetto) e quindi considerate Done. Dopo aver completato una storia, non è necessario rivedere regolarmente la storia. Per i requisiti non funzionali, ciò non funziona, poiché l'adesione ad essi deve essere mantenuta per l'intero progetto. Non puoi dire che considererai la compatibilità del browser solo una volta durante il progetto e ignorerai il resto del tempo.
Per i requisiti non funzionali che riguardano quasi tutte le storie utente (funzionali), il posto migliore per documentarle è come parte della Definizione di Fatto.
Per i requisiti non funzionali che influiscono su un sottogruppo relativamente piccolo della funzionalità, è possibile renderli parte dei criteri di accettazione delle storie utente pertinenti. Se questo sottoinsieme è ancora piuttosto grande per i tuoi gusti (o potrebbe crescere in futuro e hai paura di perdere alcuni requisiti non funzionali su una storia futura), puoi inserire i requisiti non funzionali in un documento di alcuni ordina e fai riferimento a ciò dai criteri di accettazione delle storie pertinenti.
Per quanto riguarda il formato dei requisiti stessi e un possibile documento per inserirli, usa quello che funziona meglio per te e il tuo team.