Nel nostro team, da quando siamo diventati agili, abbiamo anche cercato di restringere e capire quanta documentazione è effettivamente necessaria. Posso condividere con te ciò che abbiamo imparato fino ad ora.
Prima di ogni altra cosa, assicurati di leggere questo articolo su Agile / Lean Documentation . Ottima lettura.
In secondo luogo, ti consiglio vivamente di riconsiderare la produzione di documenti di progettazione dopo il lavoro preliminare sulle storie. Ci abbiamo provato prima e si è dimostrato uno spreco. Nel mezzo dell'ultima versione abbiamo deciso di aggiornare i documenti di progettazione SOLO DOPO che il codice per la storia è stato consegnato. E ora penso che sia troppo presto.
Devi chiederti perché vuoi fare i documenti di progettazione prima della codifica. Per noi questi erano i motivi:
- Come team abbiamo bisogno di capire in che modo la storia influirà sul design.
- Avere documenti di progettazione si è dimostrato utile quando nuovi membri (o temporanei) si uniscono al team o quando ritornano al codice su cui nessuno ha lavorato per oltre un anno. Quindi sono utili per la memoria organizzativa per aiutare a capire come funziona il codice.
- I documenti di progettazione sono utili per gli ingegneri di manutenzione che potrebbero dover risolvere il problema dopo il rilascio.
Per soddisfare (1) non è necessario produrre un documento di progettazione reale. La tua squadra dovrebbe avere ancora una fase di progettazione prima della codifica, ma quella fase può essere semplice come una sessione di 15 minuti davanti a una lavagna o un tovagliolo. Non è necessario produrre un documento effettivo che richiederà ore (se non giorni) per scrivere solo per discutere i cambiamenti di progettazione.
(2) o (3) non sono necessari durante lo sviluppo della storia attuale e più che probabile che non saranno necessari per diverse iterazioni successive.
Ricorda inoltre che ogni volta che un membro del team sta scrivendo / aggiornando i documenti di progettazione, è il momento in cui il codice non viene scritto. Quando scrivi documenti prima del codice reale, c'è quasi il 100% di possibilità che essi debbano essere aggiornati perché una volta che si inizia a progettare il codice, finisce sempre per essere modificato. E anche se scrivi i documenti di progettazione dopo il codice, come il nostro team ha imparato, il refactoring delle storie successive modifica ancora il design.
Quindi cosa consiglierei:
- Inizialmente produci modelli / modelli temporanei in modo che il tuo team possa avere una conversazione intelligente prima della codifica. Non aspettarti di mantenerli e non perdere tempo a formalizzarli.
- Esegui la documentazione di progettazione ufficiale solo se qualcuno ne ha bisogno (vale a dire che il tuo team ha un reale bisogno di memoria organizzativa)
- Produce solo la documentazione di progettazione sul codice che è stato stabilizzato. Non ha senso provare a documentare un modulo che continua a essere modificato in ogni iterazione.
- Produce documenti di progettazione che descrivono completamente un modulo (o una parte del prodotto). In passato eravamo soliti scrivere documenti di progettazione che documentavano le modifiche che devono essere apportate. Quei documenti erano completamente inutili non appena il rilascio è stato fatto.
- Mantiene il documento di livello molto alto. Se scrivi 20 pagine che coprono l'architettura e il design di alto livello, quel documento sarà a) effettivamente letto da altre persone eb) aiuterà le persone a familiarizzare con il layout generale del tuo codice. Per i dettagli le persone possono andare direttamente nel codice. Se scrivi 700 pagine di specifiche dettagliate, quasi sempre non corrispondono alla realtà, è troppo per chiunque da leggere e alla fine dovrai mantenere e aggiornare 700 pagine invece di 20 ogni volta che vengono apportate modifiche future.