Documentação ágil: equilibrando velocidade e retenção de conhecimento
Publicados: 2022-03-11Os diversos documentos, artefatos e processos relacionados à sua geração são alguns dos principais símbolos do modelo Waterfall. Tomando emprestado do Lean, o Agile considera muita documentação como “desperdício” que precisa ser erradicado para otimizar o ciclo de vida do desenvolvimento.
Para muitos gerentes de projeto, não é um grande esforço entender como as fases Waterfall são transformadas em sprints – o mesmo trabalho é realizado; é apenas organizado de uma maneira diferente. No entanto, a remoção da maior parte da documentação é uma pílula mais difícil de engolir, pois sublinha uma maneira completamente diferente de trabalhar. Requer afrouxar as rédeas do controle, abraçar o desconhecido e capacitar a equipe de entrega para tomar decisões no local.
A abordagem tradicional da documentação está sendo desafiada
Na metodologia Waterfall, muito tempo é gasto na documentação dos requisitos do projeto e no detalhamento das soluções. Esse processo funciona quando os requisitos estão completamente claros e temos certeza de que nada mudará em relação ao que foi capturado e definido. No entanto, as experiências da maioria das empresas nas últimas décadas mostraram que isso quase nunca é verdade. No mundo de hoje, o ritmo de mudança é tão dinâmico que as necessidades do cliente mudam consideravelmente quando terminamos a fase de documentação.
O foco do Agile é fazer as coisas e agregar valor às partes interessadas. Ele é construído de tal forma que o modelo desencoraja trabalhar nos periféricos e em atividades que não agregam valor direto e imediato ao cliente.
Documentação em Waterfall vs. Agile
Cada empresa possui um nível diferente de documentação, que pode diferir até mesmo em nível de projeto. Mas aqui está como são os procedimentos típicos de documentação em projetos Waterfall e Agile:
Cachoeira | Ágil |
A documentação é obrigatória na maioria das vezes. Nenhum trabalho progride a menos que a documentação esteja completa. | Apenas a documentação básica para entender apenas o suficiente para começar o trabalho é incentivada. |
Os documentos passam por um longo processo de revisão e devem ser aprovados por várias partes. | Não existe um processo formal de revisão e aprovação e o gerente de projeto é o principal tomador de decisões. |
Modelos padronizados precisam ser seguidos. | Não há modelos formais de documentação; as melhores práticas são usadas em seu lugar. |
Vários tipos de documentos são necessários em diferentes fases: termo de abertura do projeto, declaração de visão, documento de requisitos de negócios, requisitos funcionais e não funcionais, documentos de design de alto nível (HLD) e design de baixo nível (LLD), etc. | Apenas os documentos necessários para entregar a funcionalidade no próximo sprint são necessários. |
As alterações na documentação são difíceis porque todos os documentos estão interligados. | As alterações na documentação são muito mais fáceis. |
É necessário um sistema ou processo para gerenciar um grande número de documentos. | A documentação é mínima, portanto, fácil de gerenciar. |
O Caso da Documentação
O Waterfall promove uma abordagem muito mais rigorosa à documentação, o que pode parecer excessivo. Mas antes de descartar isso como “desperdício”, aqui estão vários benefícios de ter procedimentos de documentação fortes.
Oportunidade para Pensamento Estratégico
Quem não planeja, planeja fracassar. A documentação força um gerente de projeto a se sentar e pensar sobre as coisas e, em seguida, apresentar as melhores soluções. As pessoas às vezes interpretam mal o valor Agile do software em funcionamento em relação à documentação abrangente para significar que nenhuma documentação é necessária. Eles então correm para o mercado, um movimento que Paul Adams, vice-presidente de produtos da Intercom, descreve como jogar coisas na parede e ver o que gruda. Projetar soluções, criar planos, deliberar ações – essas atividades criam valor ao economizar tempo ao não desenvolver todas as ideias de recursos que vêm à mente.
UX e consistência funcional
À medida que as empresas crescem de alguns fundadores para centenas ou milhares de funcionários, muitas equipes diferentes começam a trabalhar no mesmo produto ou em produtos relacionados. A equipe A pode pensar que o que eles estão trabalhando não está relacionado com o que a equipe B está trabalhando, mas para o usuário final, é tudo o mesmo produto. Em vez de equipes multifuncionais fazendo suas próprias coisas, uma documentação clara sobre a experiência do usuário e os níveis funcionais evita um fluxo de usuários desarticulado.
A documentação pode ser convertida em guias do usuário
Em Waterfall, muito tempo é gasto detalhando as soluções e como elas serão usadas. Imagens de designs de alta fidelidade são criadas para desenvolvedores front-end. Todos esses ativos exigem menos trabalho para serem convertidos em guias de usuário internos ou externos do que criá-los do zero.
Como o Agile reduz as necessidades de documentação
Um fator que surge repetidamente como desculpa para exigir documentação é a rotatividade de funcionários. Os gerentes temem perder o conhecimento institucional quando as pessoas saem e novas entram para substituí-las. Como eles saberão o que foi implementado e como funciona? Quanto tempo eles levarão para se recuperar? A equipe atual terá largura de banda para atender novos membros da equipe?
A esperança é que uma boa documentação faça com que os novos funcionários que trabalham principalmente de forma independente sejam rapidamente atualizados. No entanto, o Agile reduz inerentemente a necessidade de documentação por meio de técnicas de colaboração que, ao mesmo tempo, reduzem o tempo de integração. Aqui estão algumas maneiras pelas quais o Agile reduz a necessidade de documentação.
Interação regular entre equipes de produtos e membros de equipes ágeis
O Manifesto Ágil promove “indivíduos e interações acima de processos e ferramentas”. Como os requisitos tendem a mudar durante um projeto e novas ideias surgem, o Agile garante o esclarecimento dos requisitos diretamente da fonte, em vez de depender de artefatos escritos que precisam de atualização constante.

A preparação e o planejamento compartimentam as tarefas
A preparação do backlog e o planejamento do sprint dividem os recursos em partes específicas e implementáveis que são facilmente compreendidas e podem ser trabalhadas de forma independente. Isso cria uma oportunidade para os novos contratados serem produtivos desde o início, embora ainda não entendam completamente o quadro geral de todo o projeto.
Histórias de usuário fornecem documentação eficiente
O formato simples das histórias de usuários permite que os gerentes de projeto capturem os requisitos mínimos básicos que criam um entendimento compartilhado entre todos os membros da equipe. Mesmo que uma história de usuário não chegue a um sprint, o desperdício de criar esse artefato de documentação é muito baixo. À medida que as histórias do usuário se transformam em sprints, elas podem ser desenvolvidas e complementadas com outras informações necessárias, como wireframes, designs, critérios de aceitação, etc. Esse processo fornece uma entrega de documentação muito eficiente, altamente descartável e produzida nos estágios de desenvolvimento mais apropriados.
Necessidade reduzida de documentação de código
Técnicas como programação em pares e revisão de código criam oportunidades constantes para disseminar conhecimento técnico por toda a equipe, especialmente para novos membros da equipe. O feedback constante leva a um entendimento compartilhado que também tem a flexibilidade de se adaptar a novas circunstâncias, em vez de ficar rapidamente desatualizado em um documento em algum lugar.
Cerimônias Ágeis
Levantamentos diários, revisões de sprints e retrospectivas criam amplas oportunidades para resolver problemas e tomar decisões pessoalmente, em vez de depender de e-mail e documentos. O prazo limitado de todas as cerimônias garante que apenas as informações mais importantes sejam priorizadas, em vez de gastar tempo documentando tudo, mesmo que provavelmente nunca sejam usadas.
Todos os itens acima reduzem direta ou indiretamente a documentação e priorizam a entrega dos objetivos do projeto, garantindo que nada seja realmente perdido por falta de documentação.
Abordagens híbridas para documentação
Algumas empresas ainda preferem ter alguma documentação, mesmo em um ambiente ágil. Agile não é prescritivo, porque cada projeto é diferente e tem um conjunto único de circunstâncias que precisam ser abordadas.
Abaixo estão alguns exemplos de como o Agile pode ser combinado com métodos de documentação mais demorados.
Combinando UML e Agile
Considere usar uma linguagem de modelagem padrão, como a Unified Modeling Language (UML), que é muito estruturada e tem entidades definidas para visualizar um sistema. Isso ajuda a manter o conteúdo muito simples e focado no que é necessário e garante o uso mínimo da linguagem escrita. Ferramentas como StarUML e Draw.io, entre muitas outras, são opções convenientes.
Geradores de Documentação de Código
Outra abordagem é garantir que o código seja muito mais legível introduzindo comentários mais estruturados e detalhados como parte dos detalhes da classe, detalhes do método, uso de parâmetros, dependências e assim por diante. Existem muitas ferramentas que automatizam o processo de geração de documentos úteis a partir do código-fonte e são chamadas de geradores de documentação. Eles variam de genéricos a específicos de linguagem de programação.
Documentos de design detalhado e UX
A definição de requisitos por meio de wireframes, mockups, diagramas de fluxo de usuários, diagramas de sequência, etc. ajuda a simplificar os fluxos do projeto, além de deixar explicitamente claro para a equipe técnica o que precisa ser desenvolvido. Documentos de design são uma ótima maneira de ter um nível variável de documentação mais rígida. Existem várias ferramentas de wireframe e UX para escolher para essas tarefas.
As ferramentas de gerenciamento de projetos automatizam a documentação
O gerenciamento de projetos mais poderoso e as ferramentas relacionadas, como JIRA, Confluence, Asana e Basecamp, fornecem uma maneira de manter todas as informações relacionadas ao projeto em um só lugar. As tarefas podem ser vinculadas, marcadas, aninhadas e atribuídas a diferentes membros da equipe, que podem deixar comentários e relatar quaisquer problemas. Todas essas ações, juntamente com a flexibilidade para adaptar essas ferramentas, podem criar uma quantidade substancial de documentação com pouco ou nenhum esforço.
Além disso, historicamente, parte das necessidades de documentação decorre de requisitos de relatórios. As partes interessadas querem acesso ao desempenho da equipe ou outras métricas relevantes. As ferramentas de gerenciamento de projetos facilitam a automatização de painéis e visualizações personalizados que refletem o progresso do projeto e vinculam a documentação relevante na ferramenta.
A gestão da documentação é um ato de equilíbrio
Os criadores do Agile Manifesto escrevem que valorizam “software funcional em vez de documentação abrangente”. No entanto, eles também adicionam um aviso de que “enquanto há valor nos itens à direita, [eles] valorizam mais os itens à esquerda”. O Agile não sugere remover toda a documentação, porque alguma documentação obviamente agrega valor; ele simplesmente sugere que a prioridade deve ser o software funcionando e a adição de documentação apenas conforme necessário, dependendo das circunstâncias do projeto e sem impedir muito o progresso do desenvolvimento.
Os gerentes de projeto precisam alcançar um equilíbrio entre gastar menos tempo na documentação e gastar mais tempo na entrega de software funcional e realmente descobrir onde alguma forma de documentação é necessária para o sucesso a longo prazo.