Attualmente sto aggiornando un documento di progettazione in modo che sia corretto e aggiornato per gli sviluppatori futuri.
Attualmente, il documento si concentra solo sui fatti, illustrando come è il design. Non c'è alcuna motivazione per le decisioni presentate. Credo che sia importante cogliere le motivazioni in modo che gli sviluppatori sappiano perché qualcosa è così com'è, poiché probabilmente influenzerà le decisioni future. Non è possibile per me aggiungere razionalità a tutte le decisioni di progettazione, specialmente quelle fatte prima di iniziare a lavorare sul progetto, ma sto facendo quello che posso in questo reparto.
Tuttavia, alcune delle decisioni di progettazione sono, rispettosamente, decisioni molto scarse date le esigenze del progetto. Ce ne sono anche di buoni,
Il mio pensiero iniziale era che dovessi includere una discussione sui problemi di progettazione e le soluzioni potenziali 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 informazioni. Non voglio una "critica" del design per la palla di neve per "strappare questo disegno a uno nuovo" mentre altre persone lavorano su questo sistema e aggiornano il documento, poiché ciò è chiaramente inappropriato.
Il mio manager sosterrebbe entrambe le decisioni, quindi tocca a me. Indipendentemente dall'approccio che prendo, il documento prodotto sarà ufficialmente messo in versione e fornito agli sviluppatori che lavorano sul sistema, in genere prima di essere 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:
- Un documento di progettazione dovrebbe attenersi a fatti grezzi ("questo è il design") e logica ("ecco perché questo è il design") o dovrebbe anche essere usato per segnalare problemi non difettosi con il design che potrebbe essere problematico per i futuri sviluppatori?
- Se il documento di progettazione non deve essere utilizzato per acquisire queste informazioni, quale tipo di documento dovrebbe acquisirlo, e che altro dovrebbe essere catturato con una discussione di razionali di progettazione, compromessi e problemi noti (che non sono difetti, come i difetti sono tracciati usando altri strumenti)?