Este Artigo faz parte da Revista Engenharia de Software Magazine 88 Ver Revista
Artigos Engenharia de Software Metodologia ágil: documentação para projetos ágeis
O manifesto ágil cita que "software funcional é mais importante do que documentação extensa". A partir dessa declaração foi criado um mito na comunidade de TI de que projeto ágil não precisa de documentação. A abordagem tradicional gerou um volume excessivo de documentos complexos de difícil entendimento e acesso, resultando na aversão à documentação de projetos. Em contrapartida, a metodologia de desenvolvimento ágil defende a adaptação de melhores práticas no desenvolvimento de projetos através de documentos e bibliotecas eficientes e funcionais, comunicação e compartilhamento, colaboração e participação. A aplicação de práticas de documentação ágil permite alcançar artefatos claros e objetivos, acompanhando a transformação e evolução de tecnologias e plataformas tecnológicas.
A documentação é essencial para apresentação e qualidade dos projetos, facilita a criação e o desenvolvimento do software, a comunicação entre membros da equipe, a comunicação entre equipe e cliente/usuário e aumenta a percepção do cliente quanto à usabilidade/operação do software. Novas plataformas tecnológicas são apresentadas a cada minuto, dando origem a novas e modernas aplicações. Um software mal elaborado apresenta uma documentação defasada e fatalmente não terá evoluções e respostas rápidas e não irá obter uma boa aceitação. Além disso, desenvolvedores acabam gastando muito tempo para a correção dos erros e redundâncias geradas em cima de regras e requisitos mal interpretados. Todo processo bem documentado contribui significativamente para a popularização do software e da equipe de desenvolvimento.
A documentação deve possuir a devida atenção dentro do ciclo de desenvolvimento do projeto. O ideal é que a documentação seja tratada como parte integrante de todo o projeto, deve acompanhar todas as etapas e processos implementados, todas as áreas de conhecimento do ciclo de vida do software. O projeto deve possuir uma biblioteca composta dos principais documentos do projeto. Documentos atualizados, refinados conforme o software vai sendo modelado, estudados e implementados, e de conhecimento de todos os envolvidos no projeto. Desde o marco inicial até final do projeto, os artefatos devem ser criados alimentando as bibliotecas do sistema. Esse método, se bem aplicado, serve de base para o sucesso no desenvolvimento de outros projetos. Claro que não existem receitas ou roteiros a serem seguidos passo a passo, mas projetos ágeis são adaptações positivas para um bom desempenho no trabalho da equipe e projeto. A documentação adequada contribui claramente para o aumento da qualidade do software e para a qualidade e motivação da equipe, resultando na satisfação do usuário final e na conformidade com os requisitos para os quais o software foi projetado.
Neste artigo, a ênfase será nos artefatos gerados dentro de cada etapa do ciclo de desenvolvimento de um projeto de software. A proposta é que engenheiros e arquitetos fiquem atentos às bibliotecas e documentos dos projetos, alertando equipes de desenvolvimento sobre a importância dos artefatos que envolvem os sistemas.
A documentação de um projeto de desenvolvimento de software consiste em um conjunto de manuais gerais e técnicos, podendo ser organizada em forma de textos e/ou comentários, registros de ideias (brainstorming) classificados como: dicionários, diagramas e fluxogramas, gráficos, desenhos, gerenciadores, dentre outros.
Algumas empresas de desenvolvimento de software contam com um responsável pela documentação do projeto, um profissional encarregado de documentar e/ou acompanhar os documentos para garantir que a biblioteca do projeto esteja ativa. Esse responsável conhece todas as etapas do ciclo de desenvolvimento, sendo um especialista em engenharia e arquitetura de software.
Das definições de engenharia de software, a mais adequada para a documentação de projetos é que ela é uma área da computação voltada para a especificação, desenvolvimento e manutenção de sistemas de software, com aplicação de tecnologias e práticas de gerência de projetos e outras disciplinas visando organização, produtividade e qualidade.
Os criadores da UML reforçam a importância do planejamento do software e de sua documentação comparando sua construção à construção de casas e prédios. Citam que assim como o projeto arquitetônico e o de engenharia de um imóvel, o desenvolvimento de software deve ser orientado e guiado por passos documentados. O segredo de um software bem-sucedido é uma questão de arquitetura, processo e ferramentas bem planejadas.
A documentação deve ser feita ao longo de todo o desenvolvimento do software. Sua construção deve:
Comunicar a estrutura e o comportamento do sistema;
Visualizar e controlar a arquitetura do sistema;
Expor oportunidades de simplificação e reaproveitamento;
Compor o estudo de gerenciamento de riscos.
Existem duas razões básicas para documentar: auxiliar a comunicação durante o desenvolvimento do software e auxiliar o entendimento nas atividades de manutenção e atualização quando se fizerem necessárias.