Nel nostro team, da quando siamo diventati agili, abbiamo anche cercato di restringere e capire quanta documentazione sia effettivamente richiesta. Posso condividere con te ciò che abbiamo imparato fino ad ora.
Prima di ogni altra cosa, assicurati di leggere questo articolo sulla documentazione Agile / Lean . Ottima lettura
In secondo luogo, ti consiglio caldamente di riconsiderare la produzione di documenti di progettazione dopo un lavoro preliminare sulle storie. L'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 sto pensando anche che è troppo presto.
Devi chiederti perché vuoi fare documenti di progettazione prima della codifica. Per noi questi erano i motivi:
- Come team dobbiamo capire come la storia influenzerà il design.
- Avere documenti di progettazione si è rivelato utile quando i membri nuovi (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 i tecnici della manutenzione che potrebbero dover risolvere il codice dopo il rilascio.
Per soddisfare (1) non è necessario produrre un vero documento di progettazione. Il tuo team dovrebbe comunque avere 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 impiegherà ore (se non giorni) per scrivere solo per discutere delle modifiche al progetto.
(2) o (3) non sono necessari durante lo sviluppo della storia attuale e molto probabilmente non saranno necessari per diverse iterazioni successive.
Inoltre, tieni presente che ogni volta che un membro del team sta scrivendo / aggiornando documenti di progettazione, è il momento in cui il codice non viene scritto. Quando scrivi documenti prima del codice effettivo, c'è quasi il 100% di probabilità che richiedano l'aggiornamento perché una volta che inizi la progettazione del codice finisce sempre per essere modificato. E anche se scrivi documenti di progettazione dopo il codice, come il nostro team ha imparato, il refactoring delle storie successive altera ancora il design.
Quindi cosa consiglierei:
- Inizialmente produce abbastanza progetti / modelli temporanei in modo che il tuo team possa avere una conversazione intelligente prima della codifica. Non aspettarti di conservarli e non perdere tempo a formalizzarli.
- Produrre la documentazione ufficiale di progettazione solo se qualcuno ne avrà bisogno (ad esempio, il tuo team ha un reale bisogno di memoria organizzativa)
- Produrre solo documentazione di progettazione su codice stabilizzato. Non ha senso cercare di documentare un modulo che continua a essere modificato in ogni iterazione.
- Produrre documenti di progettazione che descrivono appieno un modulo (o parte del prodotto). In passato scrivevamo documenti di progettazione che documentavano le modifiche da apportare. Quei documenti erano completamente privi di valore non appena il rilascio è stato fatto.
- Mantieni il documento di altissimo livello. Se scrivi 20 pagine che trattano di architettura e design di alto livello, quel documento a) sarà 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 con specifiche dettagliate, quasi sempre non corrisponderanno alla realtà, è troppo difficile da leggere per chiunque e finirai per mantenere e aggiornare 700 pagine invece di 20 ogni volta che verranno apportate modifiche future.