Attualmente sto lavorando alla mia laurea per i miei studi di "Sviluppo software", in cui devo sviluppare software complessi singolarmente in un'azienda esterna. Tutto ciò deve essere fatto in modo strutturato, creando tutti i documenti corrispondenti.
Per questo progetto ho scelto di lavorare con i documenti standard IEEE: SRS (Software Requirements Document), Software Architecture Documents (SAD) e Software Design Document (SDD). Sebbene abbia insegnato diversamente a scuola, per questo progetto ho scelto di creare lo sviluppo SDD dopo (anziché prima). Il mio ragionamento è:
The company at which I do my internship has given me the instruction to create a complex piece of software, satisfying a certain set of requirements, in a experimental manner. Because of the amount of freedom which they have given me in the project definition, almost nothing is certain beforehand, and can best be encountered while experimenting in the development process. Additionally, I'm creating the software in an individual manner, it would have no benefit to anyone else in the company for me to make this Software Design beforehand. Doing it beforehand will just cost me a lot of time to change it later on, as I can be certain that with the uncertainties in the project, the design which I make beforehand will have to be changed a lot. This feels counterproductive to me.
Questa è una buona giustificazione per creare l'SDD dopo lo sviluppo? In caso contrario, ci sarebbe una buona giustificazione per questo?
Modifica: la ragione per creare l'SDD in seguito sarebbe che i futuri sviluppatori continuassero sul progetto. Non riuscirò a completare l'intero progetto nel mio periodo di laurea, quindi gli altri sviluppatori dovranno continuare con il codice attuale.