Pular para o conteúdo principal

Documentação de software: vale a pena?

Hoje vou levantar um assunto polêmico: documentação de software. É incontestável a importância da documentação em quase todo processo de desenvolvimento de software. Documentar software traz diversos benefícios para a equipe de desenvolvimento. Mas não vou perder tempo aqui citando esses benefícios. Não faltam textos sobre esse tema. O que falta é bom senso na hora de decidir se um artefato de documentação deve ou não ser produzido.

Afinal de contas, para que a documentação serve? Serve para três propósitos principais: reduzir os riscos no início do desenvolvimento, facilitar a manutenção e, se for o caso, viabilizar a subcontratação. Na sua organização, talvez a documentação de software sirva a outros propósitos. Mas vamos nos concentrar nesses três, por enquanto. Vamos analisar cada um deles com um pouco mais de detalhe.

Reduzir os riscos no início do desenvolvimento

Quanto mais informação tiver sobre um sistema, menor é o grau de incerteza do desenvolvimento. Por exemplo, um levantamento de requisitos bem feito e com um razoável nível de detalhe vai evitar "surpresas" no meio do desenvolvimento. Mas a produção de artefatos de documentação tem um custo alto se comparada com outras abordagens para reduzir a incerteza de uma demanda de software. Cabe a cada equipe avaliar o seu custo de produção de alguns tipos de artefatos e decidir por aqueles que apresentam um menor custo e um benefício similar. Por exemplo, talvez uma lista de casos de uso seja suficiente e, ao invés de detalhar os fluxos de cada um deles, se possa adotar uma abordagem envolvendo técnicas de prototipação.

Facilitar a manutenção

Outro propósito da documentação é fornecer subsídios à pessoa responsável pela manutenção de um artefato de software. Ter em mãos um modelo de dados ou qualquer outro diagrama facilita a execução de qualquer alteração. Contudo, perceba que muitos artefatos de documentação são pouco ou sequer consultados diante da necessidade de uma alteração. Mesmo aqueles que poderiam ser consultados às vezes estão desatualizados – o custo de atualização é muitas vezes alto. E pode ser até que a documentação exista, esteja atualizada e seja útil para a manutenção. Mas neste último caso, a rastreabilidade dos artefatos de software pode não existir ou não ser confiável. O fato é: é alta a probabilidade de a sua documentação não servir simplesmente para NADA. Assim, vale a pena verificar com a sua equipe se a documentação está sendo atualizada e se ela é vista como útil pelos seus desenvolvedores.

Viabilizar a subcontratação

Subcontratação é um assunto delicado. Às vezes a empresa subcontratada estipula no contrato uma gama de artefatos de documentação que acabam por contribuir pouco para reduzir o grau de incerteza e aumentam o custo daquela que contrata. Às vezes é tão caro produzir a documentação exigida quanto desenvolver o software propriamente dito. Quer um conselho? Inclua no contrato um acordo de níveis de serviço e encontre uma forma de incluir a subcontratada desde o início do processo – de preferência já no levantamento de requisitos – e deixe que ela produza seus próprios artefatos.

Conclusão

É claro que falando assim tudo PARECE muito simples. Na prática você terá que ir substituindo seus artefatos de forma progressiva, sempre provendo o treinamento necessário para os membros da sua equipe. Sinceramente, acredito muito pouco em qualquer documentação. Na prática, as empresas acabam quase sempre dependendo das informações contidas na cabeça de cada pessoa. Mas não adianta ser tão radical – escrever sempre é bom para clarear as idéias. Pensando nisso, acho razoável considerar a produção dos seguintes artefatos de documentação:

- Lista de casos de uso.
- Modelo de dados.
- Protótipo de telas e/ou relatórios.
- Diagrama de componentes.
- Comentários de código (esse é o mais IMPORTANTE).

Comentários

Anônimo disse…
Por que nao:)
Anônimo disse…
Good post and this fill someone in on helped me alot in my college assignement. Gratefulness you seeking your information.
Samuel Diniz disse…
Thanks for the comment. Glad help someone outside Brazil. Also check the MPS.BR series up. It's very similar with the CMMI framework you probably already know.
Daniel Andrade disse…
Muito bom o artigo parabéns, me ajudou bastante.

Postagens mais visitadas deste blog

Como comprar na Internet com segurança e traquilidade

Você costuma fazer compras na Internet? Com que frequência? Comprar na Internet, além de cômodo, pode ser muito mais eficaz. Isso ocorre porque existem várias ferramentas para compararmos produtos e encontrarmos o melhor preço. Além disso, em geral as informações disponibilizadas pelas lojas da Internet são mais seguras do que aquele "papo de bom vendedor". Mesmo assim, muitos deixam de comprar na Internet porque têm medo de que seus dados, em especial os de cartão de crédito, sejam utilizados por criminosos. Para evitar que isso aconteça, eis algumas dicas muito úteis para você comprar na Internet com toda a segurança e tranquilidade. Tenha um cartão de crédito especialmente para isso Ao invés de ficar utilizando vários cartões, concentre suas compras em um cartão de crédito específico para isso. Muitos bancos oferecem cartões adicionais sem o menor custo. O importante é ter um número de cartão de crédito específico para suas compras na Internet. A grande sacada é c...

Engenharia de Software Conference - 22 e 23 de Maio, Lapa, São Paulo

Vou fazer um breve intervalo na série de artigos Desmistificando o MPS.BR para divulgar um importante evento. Nos dias 22 e 23 de maio, a DevMedia realiza, em São Paulo, a Engenharia de Software Conference. Serão três tracks simultâneos, onde os mais graduados especialistas do ramo discutirão os principais temas da Engenharia de Software atual, entre eles o MPS.Br. Uma metodologia de gerenciamento desenvolvida especialmente para as empresas brasileras.  As explanações vão desde o projeto até os últimos testes de um software, passando pelos diversos conceitos de gerenciamento. Serão 40 horas de conteúdo, distribuídas em 30 palestras. O evento conta com a presença de palestrantes renomados, como Ana Regina Rocha, que será a keynote da conferência. Ela foi uma das idealizadoras do Modelo Mps.Br (Melhoria de Processos do Software Brasileiro), além de ser implementadora e avaliadora credenciada pela SOFTEX e membro do grupo de pesquisa em Engenharia de Software da Universidade Federal ...

Compras de software no Setor Público: direito de atualização vs direito de nova versão

Muito se tem discutido, especialmente no Setor Público, sobre direito de atualização de software. A coisa acontece mais ou menos assim. Um órgão do governo publica um edital de licitação para comprar "n" licenças de um dado software. Insere-se no contrato uma cláusula obrigando a contratada a fornecer suporte e eventuais atualizações de software que porventura venham a ser disponibilizadas. O fabricante lança uma nova versão do produto, com as mesmas funcionalidades da versão anterior e algo mais. O órgão público solicita a nova versão. O fornecedor informa que não se trata de uma atualização e sim de um novo produto. O órgão discorda e entra na justiça para obter o que acha que tem direito. E o imbróglio está formado. Afinal, o órgão tem ou não direito à nova versão? O quê é uma atualização de software? Essa não é apenas uma questão técnica. É também jurídica. Depende não apenas das peculiaridades técnicas da nova versão solicitada, mas também do texto contratual. I...