Actualmente estoy trabajando en mi graduación para mis estudios de "Desarrollo de software", en los que tengo que desarrollar software complejo individualmente en una empresa externa. Todo esto debe hacerse de manera estructurada, creando todos los documentos correspondientes.
Para este proyecto, he elegido trabajar con los documentos estándar de IEEE: Documento de requisitos de software (SRS), Documentos de arquitectura de software (SAD) y Documento de diseño de software (SDD). Aunque se enseñó lo contrario en la escuela, para este proyecto elegí crear el SDD después del desarrollo (en lugar de antes). Mi razonamiento es:
La compañía en la que realizo mi pasantía me ha dado instrucciones para crear una pieza compleja de software, satisfaciendo un cierto conjunto de requisitos, de manera experimental. Debido a la cantidad de libertad que me han dado en la definición del proyecto, casi nada es seguro de antemano, y se puede encontrar mejor al experimentar en el proceso de desarrollo. Además, estoy creando el software de manera individual , no tendría ningún beneficio para nadie más en la compañía que yo haga este diseño de software de antemano. Hacerlo de antemano le me acaba de costar mucho tiempo para cambiarlo más adelante, como puedo estar seguro de que con las incertidumbres en el proyecto, el diseño que hago de antemano tendrá que ser cambiado mucho . Esto me parece contraproducente.
¿Es esta una buena justificación para crear el SDD después del desarrollo? Si no, ¿habría alguna buena justificación para eso?
Editar: La razón para crear el SDD después sería que los futuros desarrolladores continúen en el proyecto. No podré terminar todo el proyecto en mi período de graduación, por lo que otros desarrolladores tendrán que continuar en la base de código actual.