Pense em uma marca que você admira. Agora, pense no produto que você mais gosta dessa marca. Como será que ela consegue produzir esse produto em grande escala e com agilidade sem comprometer a qualidade entregue ao cliente? Seriam processos bem definidos? Pessoas capacitadas e motivadas? Ferramentas e tecnologia de ponta? Investimentos em pesquisas e melhoria contínua? Com certeza um pouco de tudo isso e muito mais, não é mesmo?
Consistência, confiabilidade e qualidade são atributos de produtos ou serviços que são aprimorados ao longo do tempo. Certamente, o produto que você pensou passou por diversos testes, experimentações e alterações até atingir o nível de excelência esperado. Para que isso fosse possível, processos e pontos de medição foram estabelecidos a fim de monitorar o progresso da produção e qualidade entregue em cada uma das etapas. Assim, o produto é finalizado dentro das conformidades, no menor tempo possível, sem retrabalho e defeitos.
No framework Scrum, os artefatos e os seus compromissos são formas de aumentar a transparência do trabalho ou valor entregue e medir o progresso. Desta forma, a inspeção e adaptação acontecem a todo instante reforçando o empirismo e os valores Scrum para todos envolvidos no projeto. Nesse contexto, a Definition of Done (DoD), compromisso do incremento, é fundamental para desenvolver e entregar produtos ou serviços de maneira consistente e confiável através de um acordo do time sobre critérios de qualidade.
O que é Definition of Done (DoD)?
De acordo com o Scrum Guide: “A Definição de Pronto é uma descrição formal do estado do Incremento quando ela atende às medidas de qualidade exigidas para o produto“. A DoD é uma prática que estabelece critérios claros e específicos que um incremento de trabalho deve atender para ser apresentando na Sprint Review, considerado concluído e potencialmente pronto para entrega ao cliente ou para a próxima etapa do processo. Em outras palavras, é uma lista de verificação que define o que significa “feito” ou “concluído” para um item de trabalho dentro de uma iteração ou sprint.
A DoD garante a transparência, qualidade e consistência do trabalho realizado pela equipe. Ela fornece uma definição clara de quando um item de trabalho pode ser considerado pronto para ser entregue, ajudando a evitar ambiguidades e garantindo que todos os membros da equipe compartilhem a mesma compreensão do que é necessário para concluir uma tarefa. Um exemplo de DoD seria:
- Code Review de no mínimo duas pessoas
- Os testes unitários devem cobrir pelo menos 80% do código
- Documentação técnica atualizada no repositório ABC (pode ser no GitHub, Swagger, Confluence, Notion, etc.)
- Para itens de UI, seguir os padrões de estilo e componentes definidos pela empresa
- Teste de regressão finalizado sem bugs abertos de severidade crítica, alta ou moderada
- Testes de segurança realizados de acordo com a política ABC estabelecida pelo time de segurança
- Testes funcionais concluídos sem nenhum bug em aberto
Ela é única para cada equipe e pode variar dependendo do contexto do projeto, das necessidades do cliente e das práticas da organização. No entanto, geralmente inclui critérios relacionados a aspectos como funcionalidade, qualidade, desempenho, testes e integração.
Por que utilizar a DoD?
Ao estabelecer e manter uma DoD clara e rigorosa, as equipes podem melhorar a qualidade do trabalho entregue, reduzir o risco de retrabalho e garantir uma entrega consistente e confiável a cada sprint. Além disso, a DoD serve como uma ferramenta importante para promover a colaboração e o alinhamento entre os membros da equipe, clientes e outras partes interessadas, ajudando a garantir que todos tenham expectativas claras sobre o que será entregue em cada incremento de trabalho.
A transparência promovida pela DoD faz com que o trabalho possa ser inspecionado e o plano adaptado durante todo o processo. Da mesma forma, permite a equipe planejar a sua rotina e considerar os recursos e o tempo necessários para entregar cada incremento.
Como utilizar a DoD na sua equipe?
Chame a galera para conversar! Reuna o pessoal para um workshop onde os conceitos de DoD serão apresentados (o que é? para que serve? quando utilizar? como utilizar?), mostre exemplos e permita que todos colaborem na definição dos critérios de qualidade. Questione sobre a necessidade de ter uma DoD para cada item de trabalho (user story, bug, tech debt, etc.) ou ter uma definição única e mais abrangente. Sugira níveis de maturidade e percentuais a serem atingidos em cada um. Assim, eles não precisam implementar tudo de uma única vez e podem aumentar os critérios e cobertura de maneira gradual. Se a equipe nunca trabalhou com uma DoD, melhor começar aos poucos, com baby steps.
Não reinvente a roda! Há diversos exemplos na internet para utilizar como base. Além disso, troque ideias com outras pessoas da empresa para saber como é a DoD do time delas. Uma vez estabelecida, utilize as retrospectivas para revisar a aderência do time. Pode ser que eles estejam enfrentando dificuldades como falta de tempo, de capacidade ou pressão para não cumprir alguns dos critérios com o intuito de adiantar as entregas. Ou, quem sabe, eles já dominam os critérios estabelecidos e estão prontos para iniciar o próximo nível de qualidade.
Por fim, documente. Garanta que a DoD esteja de fácil acesso e que o time possa atualizar caso seja necessário (evite centralizar essa tarefa em uma única pessoa). No JIRA, eu costumo criar um checklist que é adicionado automaticamente sempre que um determinado item é criado. Assim, a DoD fica visível e o time pode acompanhar o progresso durante o desenvolvimento e testes. Utilize a sua criatividade para que o checklist não caia no esquecimento!
Considerações finais
A Definition of Done (DoD) melhora a transparência, qualidade e consistência do que está sendo entregue. Ao olharem para um incremento concluído as pessoas sabem que ele passou por um determinado controle de qualidade e isso gera segurança e confiabilidade. Na verdade, a DoD é como se fosse um selo de qualidade, atestando que algo está pronto para ser liberado em produção.
Os critérios de uma DoD evoluem ao longo do tempo juntamente com as exigências do produto ou serviço. Desta forma, comece com o que é possível ser feito de acordo com a capacidade do time e ajude-os a reservar tempo para trabalhar nos critérios a cada sprint. Ao adicionar um novo critério estabeleça os responsáveis, certifique-se que ele é mensurável e analise os seus benefícios e riscos.
Lembre-se que o sucesso da entrega de valor não se dá através de uma entrega mais rápida e sim da satisfação do cliente através da entrega contínua e adiantada (1º Princípio do Manifesto Ágil). Uma DoD bem elaborada é um investimento que agiliza entregas, reduz retrabalho e melhora a percepção de qualidade em relação ao produto ou serviço entregue ao cliente.