Conceito: Definição de Pronto
A Definição de Pronto é um acordo formal entre Product Owner e Time de Desenvolvimento sobre o que é necessário para se considerar que um trabalho realizado na Sprint está “pronto”.
Relacionamentos
Descrição Principal

Pronto?

O time entrega uma funcionalidade que considera pronta. Ao começar a experimentar o que lhe foi entregue, o cliente encontra vários erros.
Ele, então, pergunta a um dos desenvolvedores:
— Você testou isso?
Ao que o desenvolvedor responde:
— Não...
— Mas você não disse que está pronto? — se espanta o cliente.
— Sim, está pronto. Só falta testar. — afirma o desenvolvedor.
— Se falta testar, não está pronto! — responde o cliente.
Situações como essa são comuns em projetos de desenvolvimento de software. Isso ocorre porque não há uma compreensão conjunta do que “estar pronto” significa.

Quando o item do Backlog do Produto ou um Incremento é descrito como “Pronto”, todos devem entender o que o “Pronto” significa. Embora, isso varie significativamente de um extremo ao outro para cada Time Scrum, os integrantes devem ter um entendimento compartilhado do que significa o trabalho estar completo, assegurando a transparência. Esta é a “Definição de Pronto” para o Time Scrum e é usada para assegurar quando o trabalho está completado no Incremento do produto.

A mesma Definição de Pronto se aplica a cada item do Backlog da Sprint e ao Incremento do Produto como um todo, que é o conjunto dos itens desenvolvidos na Sprint. Ela orienta o Time de Desenvolvimento no conhecimento de quantos itens do Backlog do Produto podem ser selecionados durante a Reunião de Planejamento da Sprint. O propósito de cada Sprint é entregar incrementos de funcionalidades potencialmente utilizáveis que aderem à definição atual de “Pronto” do Time Scrum.

Uma Definição de Pronto ideal estabelece que o resultado do trabalho de um Time de Desenvolvimento em uma Sprint seja entregável. Dessa forma, idealmente nenhum desenvolvimento, teste, integração ou quaisquer tarefas adicionais devem ser necessárias para que o Incremento do Produto produzido na Sprint possa ser entregue aos clientes do projeto. Entregar ou não ao final da Sprint, no entanto, é uma decisão que cabe ao Product Owner. Mesmo que já seja possível, ele pode decidir por acumular alguns Incrementos do Produto para só então fazer uma entrega. Uma boa Definição de Pronto também garante que o Incremento do Produto tenha o nível de qualidade exigido para ser entregue.

Não há uma Definição de Pronto oficial que deva ser usada por todas as equipes, porque, considerando a complexidade do desenvolvimento de software, cada equipe é única e está resolvendo um problema dentro de um contexto único. Por isso, cada equipe deverá descobrir o que deve fazer parte de sua Definição de Pronto de acordo com seu contexto, ou seja, levando em consideração a natureza do produto, a tecnologia que está sendo utilizada, as necessidades dos usuários etc.

Alguns itens comuns são:

• Código refatorado.
• Código dentro dos padrões de codificação (se existir).
• Código revisado ou feito em par.
• Código integrado no sistema de controle de versão.
• Passando nos testes unitários.
• Passando nos testes de aceitação.
• Passando nos testes exploratórios.
• Passando nos testes de carga (quando aplicável, utilizando ferramentas como JMeter, por exemplo).
• Integrado ao sistema XPTO.
• Manual do Usuário atualizado.
• Nenhum defeito conhecido pendente.

As atividades da Definição de Pronto, portanto, são utilizadas como referência quando o Time de Desenvolvimento seleciona quanto trabalho prevê que conseguirá produzir na Sprint. Servem da mesma forma para quando o Time de Desenvolvimento estabelece o plano para a Sprint, quebrando os itens do Backlog da Sprint em tarefas, por exemplo. A Definição de Pronto é criada, compreendida e compartilhada por todos os membros do Time Scrum. Dessa forma, mantê-la visível para eles é essencial.

A Definição de Pronto é criada antes do início do desenvolvimento do produto. Em geral, antes mesmo da primeira Sprint. Entretanto, ela pode ser modificada e evoluir de forma a acomodar novas necessidades identificadas ao longo do projeto para o desenvolvimento do produto. Com um Time Scrum maduro, é esperado que a sua definição de “Pronto” seja expandida para incluir critérios mais rigorosos de alta qualidade.

Informações Adicionais