Documentação de Software - eTecnologia/projeto-genesis GitHub Wiki
A documentação é uma parte integrante do desenvolvimento de software, juntamente com a codificação e testes. Ela é essencial para o entendimento do que fazer, compartilhar e transferir conhecimento e facilita a melhoria e evolução do produto de software durante o ciclo de vida.
O que é Documentação de Software?
É todo documento, modelo, fluxos, especificação técnicas/funcionais regras de negócio e declarações que ajudam entender "o que" software deve fazer para gerar valor para as pessoas.
A documentação ainda abrange manuais técnicos e de uso, scripts de configuração e instalação e principalmente comentários no código fonte.
Por que devemos documentar o software?
A parte mais difícil no desenvolvimento de software é saber com razoável certeza o que software deve fazer para atender as necessidades de negócio, ser útil, e gerar valor, benefícios, para as pessoas.
A documentação ajuda no entendimento daquilo que deve ser feito. Contudo, não devemos fazer uma documentação extensa e extremamente detalhada, não devemos documentar tudo, e sim somente aquilo que essencial para entendimento das pessoas interessadas.
A documentação de software pode gerar inúmeros benefícios, entre eles destacamos:
- Habilita o compartilhamento de conhecimento com outros desenvolveres equipes.
- Melhora a colaboração com testadores equipe de testes que precisa conhecer e entender o código para escrever casos de testes mais assertivos e ainda para fazer automação de teste.
- Simplifica a evolução e melhoria do produto. A documentação ajuda entender o que já feito e como foi feito.
- Facilita a manutenibilidade e reduz o esforço de compreensão para correção de defeitos (bugs) da equipe de sustentação e de manutenção. Quando surge um defeito crítico é necessário fazer uma investigação profunda para entender o que ocasiona tal bug, ter comentários no código ajuda no entendimento de que faz cada método, interfaces, classes e até as variáveis.
- Facilita a transferência de conhecimento do código para novos desenvolvedores e/ou na transição de equipe. É comum uma equipe crescer e/ou mudar ao longo do tempo. Novos desenvolvedores quando contrato serão responsáveis por dar continuidade, fazer melhorias e correções defeitos, ter uma documentação atualizada, clara e coesa ajuda no entendimento e facilita o trabalho destes novos profissionais. Outro aspecto é troca da equipe, neste caso existe um plano de transição, mas a nova equipe deve ter informações suficiente sobre aquilo que foi feito para dar continuidade na evolução e melhoria do produto de software
- Cria uma documentação de produto de software robusta que facilita a evolução e melhoria do produto durante seu ciclo de vida, principalmente quando a empresa cresce e quantidade de desenvolvedores passa de centenas.