Atualmente, estou no processo de atualizar um documento de design para que esteja correto e atualizado para futuros desenvolvedores.
Atualmente, o documento concentra-se apenas nos fatos, apresentando como é o design. Não há justificativa para nenhuma decisão apresentada. Acredito que é importante capturar a lógica para que os desenvolvedores saibam por que algo é do jeito que é, pois isso provavelmente afetará decisões futuras. Não é possível adicionar justificativa para todas as decisões de design, especialmente aquelas tomadas antes de eu começar a trabalhar no projeto, mas estou fazendo o que posso neste departamento.
No entanto, algumas das decisões de design são, respeitosamente, muito ruins, dados os requisitos do projeto. Existem alguns bons, também.
Meu pensamento inicial era que eu deveria incluir uma discussão sobre problemas de design e possíveis soluções ou soluções alternativas para esses problemas, para focalizar a atenção de futuros mantenedores, mas não tenho certeza se o documento de design é um local para esse tipo de discussão e informações. Não quero que uma "crítica" de design seja usada como "rasgando um novo design", pois outras pessoas trabalham nesse sistema e atualizam o documento, pois isso é claramente inapropriado.
Meu gerente apoiaria qualquer decisão, então depende de mim. Independentemente da abordagem adotada, o documento produzido seria oficialmente versionado e fornecido aos desenvolvedores que trabalham no sistema, normalmente antes de serem encarregados do trabalho de desenvolvimento. Espera-se que um novo desenvolvedor se familiarize com os documentos associados a um determinado sistema de software antes de iniciar o trabalho de desenvolvimento.
Questões:
- Se um documento de design se apegar a fatos brutos ("este é o design") e a justificativa ("aqui está o porquê desse design") ou também deve ser usado para apontar problemas não defeituosos no design que possam ser problemáticos para o design futuros desenvolvedores?
- Se o documento de design não deve ser usado para capturar essas informações, que tipo de documento deve capturá-lo e o que mais deve ser capturado com uma discussão sobre as razões do design, as compensações e os problemas conhecidos (que não são defeitos, pois os defeitos são rastreados) usando outras ferramentas)?