I'm currently working on my graduation for my "Software Development" studies, in which I have to develop complex software individually in an external company. This all needs to be done in a structured manner, creating all corresponding documents.
For this project I have chosen to work with the IEEE standard documents: Software Requirements Document (SRS), Software Architecture Documents (SAD) and Software Design Document (SDD). Although taught otherwise in school, for this project I've chosen to create the SDD after development (instead of before). My reasoning is:
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.
Is this a good justification to create the SDD after development? If not, would there be any good justification for that?
Edit: The reason to create the SDD afterwards would be for future developers to continue on the project. I'm not going to be able to finish the whole project in my graduation period, so other developers will have to continue on the current codebase.