Negli ultimi due anni, ho lavorato su due progetti.
Il primo, abbiamo usato una metodologia molto agile. È stato molto guidato dagli sviluppatori. In quanto tale, i cambiamenti sono stati molto rapidi e rapidi. La qualità del codice era alta perché era un nuovo sistema. C'è stata un'enfasi sulla proprietà di gruppo del progetto e sulla condivisione delle conoscenze. La maggior parte del trasferimento di conoscenze con nuovo personale, ecc., È stata condotta semplicemente camminando attraverso il codice o il sistema e la maggior parte dei membri del personale del progetto ne sapeva abbastanza del progetto.
Il progetto che pensavo avesse avuto successo, ma uno dei rimpianti che ho è che la quantità di documentazione era probabilmente inadeguata a lungo termine. Abbiamo avuto un sacco di user story che erano specifiche a breve termine solo rilevanti per lo sprint, e una serie di specifiche principali che delineavano i processi aziendali a lungo termine che avremmo tenuto aggiornato. Non avevamo specifiche tecniche diverse da una pagina OneNote con accessi utente e collegamenti per testare le impostazioni / server ecc.
Il problema era mantenere un equilibrio tra l'inserimento di un numero sufficiente di file in modo che fosse utile e non così tanto che nessuno vorrà leggerlo ed essere un peso da mantenere. Non penso che abbiamo mai trovato quell'equilibrio. Le specifiche principali erano probabilmente troppo generiche per essere utili a qualcuno che voleva capire il sistema.
Il secondo progetto è completamente opposto. È un vecchio sistema ed è molto grande. Usiamo una metodologia cascata. Questo progetto è molto guidato dai tester. Come tale, probabilmente abbiamo troppa documentazione: ci sono migliaia di pagine in centinaia di documenti di parole e ci sono duplicati ovunque. (ad esempio documenti con testi di introduzione identici o molto simili)
C'è una grande enfasi nel mantenere perfetto questo mastodontico documento. La creazione di una semplice modifica al sistema richiede l'identificazione dei documenti interessati e delle modifiche minori a tutti loro.
Documentiamo le cose a livelli che probabilmente non sono necessari (ad esempio ho trovato un documento l'altro giorno in cui è stata documentata la finestra di dialogo File Save in IE) e c'è un'enfasi sull'essere corretti oltre la leggibilità.
In breve, abbiamo una mezza dozzina di Business Analysts e il loro compito consiste più nel mantenere la documentazione aggiornata che nelle analisi effettive.
Penso che entrambi questi progetti abbiano delle cattive pratiche e che cosa sarebbe ottimale tra i due. Questo equilibrio dipende probabilmente anche dal sistema, quindi come decidi la quantità di documentazione necessaria e anche come strutturarla in modo che la manutenzione non diventi più costosa che vantaggiosa.
EDIT - Ciao, scusa dovrei averlo menzionato prima che tutte le risposte arrivassero (ero solo in grado di controllare). Sono principalmente focalizzato sui requisiti di business non tecnici qui - quelli che possono essere consumati non solo dagli sviluppatori (il pubblico può includere BA, manager, tester, stakeholder, ecc.)