Chi leggerà la documentazione? Per cosa verrà utilizzata la documentazione? Queste sono le domande più importanti a cui rispondere. Ad esempio, la documentazione per gli sviluppatori di manutenzione si concentrerebbe maggiormente sulla struttura, mentre la documentazione per gli sviluppatori che si integrano con il prodotto si concentrerebbe maggiormente sui servizi Web e sulla struttura del database.
In generale, fai tutta la documentazione richiesta e non di più. Molte organizzazioni richiedono documentazione perché qualcuno ha insistito sul fatto che è una buona pratica, ma la documentazione finisce per accumulare polvere.
Supponendo che le persone effettivamente utilizzeranno la documentazione, non provare ad acquisire il codice e il database al livello più piccolo. Gli sviluppatori guarderanno il codice per le minuzie. Invece, concentrati sui dettagli che non sono evidenti nel codice , ad esempio:
- I casi d'uso che il prodotto soddisfa. Questo può essere difficile considerando l'età del prodotto, ma catturare ciò che il prodotto è destinato a fare dà un contesto vitale ai lettori e ai tester non tecnici. Chi sono i concorrenti sul mercato (se ce ne sono)? Esiste qualcosa escluso dall'ambito del prodotto?
- Qualsiasi chiaro requisiti non funzionali . Ad esempio, il prodotto è stato scritto per gestire un determinato volume? Quanti anni possono avere i dati? Dove viene utilizzato il caching? Come vengono autenticati gli utenti? Come funziona il controllo degli accessi?
- Un diagramma di contesto che mostra l'interazione con altri sistemi, come database, origini di autenticazione, backup, monitoraggio e così via.
- (Se noto) Rischi e come sono stati mitigati insieme a un registro delle decisioni . Questo è probabilmente difficile in retrospettiva, ma ci sono spesso decisioni critiche che influenzano un design. Cattura quelli che conosci.
- Comuni design patterns o linee guida per la progettazione . Ad esempio, esiste un modo standard per accedere al database? C'è uno standard di codifica o di denominazione?
-
Percorsi di codice critico , in genere utilizzando diagrammi di flusso o attività UML o diagrammi di sequenza. Nel progetto potrebbero non esserci, ma questi sono di solito quelli che gli utenti aziendali hanno articolato.
Anche se tutte queste informazioni non sono disponibili, inizia ora . Gli sviluppatori che verranno dopo ti ringrazieranno
I buoni unit test o test automatizzati possono anche essere una documentazione utile, anche se difficile da accedere per le persone meno tecniche.
Sembra anche che tu debba apportare una modifica culturale per includere la documentazione . Inizia in piccolo ma, idealmente, il progetto non dovrebbe essere "completato" finché non avrà almeno un livello minimo di documentazione. Questo è probabilmente il passo più difficile perché sopra sono le cose che puoi controllare. Questo è qualcosa in cui gli altri devono comprare. Tuttavia, può anche essere il più gratificante, in particolare se il prossimo progetto che fai viene fornito con una buona documentazione.