Attualmente sto aggiornando un documento di progettazione in modo che sia corretto e aggiornato per i futuri sviluppatori.
Attualmente, il documento si concentra solo sui fatti, presentando come è il design. Non vi è alcuna motivazione per le decisioni presentate. Credo che sia importante catturare la logica in modo che gli sviluppatori sappiano perché qualcosa è così com'è, poiché ciò influenzerà probabilmente le decisioni future. Non è possibile per me aggiungere una logica per tutte le decisioni di progettazione, in particolare quelle prese prima di iniziare a lavorare al progetto, ma sto facendo quello che posso in questo dipartimento.
Tuttavia, alcune delle decisioni di progettazione sono, rispettosamente, decisioni molto povere dati i requisiti del progetto. Ce ne sono anche alcuni buoni.
Il mio pensiero iniziale era che avrei dovuto includere una discussione sui problemi di progettazione e potenziali soluzioni o soluzioni alternative a questi problemi per focalizzare l'attenzione dei futuri manutentori, ma non sono sicuro che il documento di progettazione sia un posto per questo tipo di discussione e informazione. Non voglio che una "critica" di design si trasformi in "lanciando questo design nuovo" mentre altre persone lavorano su questo sistema e aggiornano il documento, dato che è chiaramente inappropriato.
Il mio manager sosterrebbe entrambe le decisioni, quindi dipende da me. Indipendentemente dall'approccio che seguo, il documento prodotto verrebbe ufficialmente aggiornato e fornito agli sviluppatori che lavorano sul sistema, in genere prima che vengano incaricati del lavoro di sviluppo. Si prevede che un nuovo sviluppatore familiarizzi con i documenti associati a un determinato sistema software prima di iniziare il lavoro di sviluppo.
Domande:
- Se un documento di design dovesse attenersi a fatti grezzi ("questo è il design") e alla logica ("ecco perché questo è il design") o dovrebbe essere usato anche per evidenziare problemi non difettosi con il design che potrebbero essere problematici per futuri sviluppatori?
- Se il documento di progettazione non deve essere utilizzato per acquisire queste informazioni, quale tipo di documento dovrebbe acquisirle e cos'altro deve essere acquisito con una discussione su motivi di progettazione, compromessi e problemi noti (che non sono difetti, poiché i difetti vengono tracciati usando altri strumenti)?