Em nossa equipe, desde que agilizamos, também tentamos restringir e entender a quantidade de documentação realmente necessária. Posso compartilhar com você o que aprendemos até agora.
Antes de mais nada, leia este artigo na documentação do Agile / Lean . Muito boa leitura.
Em segundo lugar, eu recomendo fortemente que você reconsidere a produção de documentos de design após o trabalho preliminar de histórias. Já tentamos isso antes e provou ser um desperdício. No meio da última versão, decidimos atualizar os documentos de design SOMENTE APÓS o código da história ser entregue. E agora estou pensando que isso é muito cedo.
Você precisa se perguntar por que deseja criar documentos de design antes da codificação. Para nós, estas foram as razões:
- Como equipe, precisamos entender como a história afetará o design.
- Ter documentos de design mostrou-se útil quando novos membros (ou temporários) se juntam à equipe ou quando retornam ao código em que ninguém trabalha há mais de um ano. Portanto, eles são úteis para a memória organizacional para ajudar a entender como o código funciona.
- Os documentos de design são úteis para engenheiros de manutenção que podem precisar solucionar problemas do código após o lançamento.
Para satisfazer (1), você não precisa produzir um documento de design real. Sua equipe ainda deve ter uma fase de design antes da codificação, mas essa fase pode ser tão simples quanto uma sessão de 15 minutos na frente de um quadro branco ou de um guardanapo. Você não precisa produzir um documento real que levará horas (se não dias) para escrever apenas para discutir as alterações de design.
(2) ou (3) não são necessários durante o desenvolvimento da história atual e, mais do que provavelmente, não serão necessários para várias iterações subsequentes.
Lembre-se também de que toda vez que um membro da equipe estiver escrevendo / atualizando documentos de design, esse é o momento em que o código não está sendo gravado. Quando você escreve documentos antes do código real, há quase 100% de chances de que eles precisem ser atualizados porque, assim que você começa a codificar, o design sempre acaba sendo alterado. E mesmo se você escrever documentos de design após o código, como nossa equipe aprendeu, a refatoração de histórias subsequentes ainda altera o design.
Então, o que eu recomendaria:
- Inicialmente, produza projetos / modelos temporários o suficiente para que sua equipe possa ter uma conversa inteligente antes da codificação. Não espere mantê-las e não perca tempo formalizando-as.
- Produza apenas a documentação oficial do projeto se alguém precisar (por exemplo, sua equipe tem uma necessidade real de memória organizacional)
- Produza apenas a documentação do projeto no código que foi estabilizado. Não faz sentido tentar documentar um módulo que continua sendo alterado a cada iteração.
- Produza documentos de design que descrevam completamente um módulo (ou parte do produto). No passado, costumávamos escrever documentos de design que documentavam as alterações que precisavam ser feitas. Esses documentos eram completamente inúteis assim que o lançamento foi feito.
- Mantenha o documento em alto nível. Se você escrever 20 páginas cobrindo arquitetura e design de alto nível, esse documento a) será realmente lido por outras pessoas eb) ajudará as pessoas a se familiarizarem com o layout geral do seu código. Para detalhes, as pessoas podem ir direto ao código. Se você escrever 700 páginas de especificação detalhada, elas quase sempre não corresponderão à realidade, é demais para alguém ler e você terá que manter e atualizar 700 páginas em vez de 20 sempre que alterações futuras forem feitas.