Atualmente, estou trabalhando na minha graduação para meus estudos de "Desenvolvimento de Software", nos quais tenho que desenvolver software complexo individualmente em uma empresa externa. Tudo isso precisa ser feito de maneira estruturada, criando todos os documentos correspondentes.
Para este projeto, decidi trabalhar com os documentos padrão do IEEE: Documento de Requisitos de Software (SRS), Documentos de Arquitetura de Software (SAD) e Documento de Design de Software (SDD). Embora ensinado o contrário na escola, para este projeto eu escolhi criar o SDD após o desenvolvimento (em vez de antes). Meu raciocínio é:
A empresa em que faço meu estágio me deu instruções para criar um software complexo, satisfazendo um certo conjunto de requisitos, de maneira experimental. Devido à quantidade de liberdade que eles me deram na definição do projeto, quase nada é certo de antemão, e pode ser melhor encontrado durante as experiências no processo de desenvolvimento. Além disso, estou criando o software de maneira individual . Não traria nenhum benefício para qualquer pessoa na empresa fazer esse design de software com antecedência. Fazer isso de antemão me custará muito tempo para alterá-lo mais tarde, pois posso ter certeza de que, com as incertezas do projeto, o design que faço antes terá que ser muito alterado . Isso parece contraproducente para mim.
Essa é uma boa justificativa para criar o SDD após o desenvolvimento? Caso contrário, haveria uma boa justificativa para isso?
Edit: O motivo para criar o SDD posteriormente seria para futuros desenvolvedores continuarem no projeto. Não poderei concluir o projeto inteiro no meu período de graduação, portanto outros desenvolvedores terão que continuar na base de código atual.