Scrum: como fazer um Refinamento eficaz

AGRADEÇA AO AUTOR COMPARTILHE!

Olá, pessoal! Tudo bem?

Faz tempo que não publico no Profissionais TI, por isso, decidi escrever sobre um assunto que parece ser subestimado por muitos times: Refinamento

Para quem já assistiu um treinamento ou workshop de Scrum, sabe que o refinamento é um processo contínuo que acontece durante as Sprints de um projeto ou produto usando Scrum. Segundo o próprio Scrum Guide, não existe exatamente um Time-box ou padrão para execução deste processo, mas entende-se que é de grande importância, pois é com isso que o time de desenvolvimento e o Product Owner preparam o backlog de próximas Sprints, com o intuito de adicionar detalhes, eliminar dúvidas, estimar e até ordenar itens do backlog do produto. Mas então, se isso é tão importante, por que erramos tanto?

Existem vários motivos para o refinamento não ser algo tão bem executado. Vamos pensar em alguns motivos:

sCRUM

Esquecemos que Refinamento é planejamento

Refinar, especificar, detalhar são tarefas que fazem parte de uma etapa anterior à construção. Estamos falando de coletar informações que nos darão mais insumos sobre O QUE precisamos fazer e COMO vamos executar a tarefa. Neste processo estamos coletando dados, soluções, validando hipóteses, fazendo POCs (Proof of Concept), criando novos desenhos e acumulando informação. Com isso, chegamos, por exemplo, numa reunião de planejamento de Sprint munidos de todos os detalhes para criar o plano que irá atender à meta da Sprint.

Descolamento entre refinamento e Definition of Ready

Lembram disso? Definition of Ready nada mais é do que critérios pré estabelecidos pelo time e pelo PO para representar um item de trabalho – história de usuário, PBI, etc – preparado para ser desenvolvido, isto é, com todas as informações necessárias para iniciar a construção sem qualquer dependência ou gap de informações. E qual a relação disso com Refinamento? TUDO! O Refinamento deve considerar que estamos criando informações para que o DOR seja seguido, através de um processo contínuo.

O Corre-Corre do sistema

Quando falamos de Scrum, as cerimônias bem definidas são essenciais. Não só por que sabemos da sua importância, mas pelas próprias políticas e restrições de cada uma. Porém, o refinamento não possui estas restrições. Com isso, times podem achar que o refinamento é algo adiável ou dispensável, se não tivermos a devida disciplina. Existem várias formas de realizar o refinamento, mas em todas elas, subestimar este processo SEMPRE irá trazer mais coisas ruins. Além disso, a urgência e pressa das entregas coloca uma pressão desenfreada em POs e times de desenvolvimento, que passam a considerar o refinamento algo “para depois”. É preciso ter tempo para respirar, considerar o fluxo com todas as suas restrições.

Falta de visão a médio e longo prazo

Se você não sabe para onde está indo, qualquer direção é possível. É uma frase conhecida, adaptada de C.S. Lewis, mas é válida. Se não sabemos o que vem à frente ou se de fato iremos fazer isso, fica difícil para um time confiar no backlog do refinamento e até mesmo realiza-lo. O planejamento constante, seja de Sprints, Releases ou Roadmaps é essencial para que todos compreendam o que irá acontecer e, principalmente, POR QUE!

Como podemos melhorar?

Vamos pensar em algumas formas agora para que possam fazer o refinamento de forma mais eficaz.

Exemplo 1 – Estabeleça a rotina

Apesar do refinamento ser um PROCESSO e não uma REUNIÃO, é importante setar algumas restrições. Não só a nível de Time-box, mas também setar algumas datas para ver se as dúvidas ou problemas que surgiram durante este processo foram solucionadas. Eu, por exemplo, coloco 2 dias de refinamento, em momentos diferentes e espaçados da Sprints, para que tanto o PO tenha tempo de executar as atividades, quanto o time de absorver.

Exemplo 2 – Deixe claro o escopo

É importante mostrar para todos por que o refinamento é realizado. Além disso, precisamos deixar CLARO o que deve ser revisado neste processo, por exemplo:

  • Resultados de testes de usabilidade ou pesquisas;
  • Visitas a empresas para benchmark;
  • Resultado de POCs ou validações;
  • Dúvidas de regras de negócio;
  • Dúvidas sobre as soluções técnicas e tecnologias a serem utilizadas;
  • Dúvidas e considerações sobre Layout / telas desenvolvidas;
  • Cenários de testes que irão influenciar no comportamento ou nas regras.

Logo, em todo refinamento, alguns – ou todos – destes pontos devem ser considerados.

Exemplo 3 – Deixe o backlog visível

O time precisa saber o que vem pela frente. Não só para refinar melhor, mas também para entender como as coisas se conectam, qual a relação dos itens com a meta, o quanto conseguem estimar e até mesmo sua motivação. Mostrando o roadmap, não só podemos entender melhor o todo, mas também deixar mais visível o quanto estamos nos planejando para o futuro. Um exemplo que já usei foi escrever em um quadro duas colunas entre dúvidas técnicas e dúvidas de negócio. Toda histórias deveria estar nesse quadro e com suas dúvidas levantadas. 

Exemplo 4 – use ferramentas do mercado

Existem várias ferramentas de priorização. Uma delas é a matriz de esforço x valor. Nela, podemos avaliar o que temos de itens estimados a nível de esforço e o valor que cada item traz. Considere, neste caso, estimar os itens no refinamento e trazer o time o impacto do item, seja a diminuição de um custo, a eliminação de um risco, um acordo com um cliente, etc. Deixando estes itens em evidência, podemos setar melhor as expectativas sobre oque será priorizado e, consequentemente, refinado. Refine com base em PRIORIDADE.

Exemplo 5 – elimine as dependências

Quando queremos desenvolver algo, é muito bom comum dependermos de alguém ou de algo pra fazer isso acontecer. Isso pode existir na forma de diversas restrições, como:

  • Acessos e privilégios;
  • Informações em outros times e fornecedores;
  • Tecnologia ser comprada ou liberada;
  • Aumento ou geração de massa de dados;

Todos estes itens são exemplos de restrições, ou melhor, de dependências que o desenvolvimento pode ter para dar vida ao produto. Portanto, no dia a dia do seu refinamento, procure mapear, gerenciar e eliminar as dependências dos itens de trabalho.

 

E aí, ajudou? Comente! Grande abraço :)

AGRADEÇA AO AUTOR COMPARTILHE!

Felipe Oliveira

Mais artigos deste autor »

Sócio proprietário da Mindset Ágil, Palestrante, professor, gerente, consultor, Scrum Master, Agile Coach e eterno aprendiz. Certificado ASM, P2AP, P2AF, KMP I, PSM I, PSPO I, LITAF, CI-ASP, SCAC, CLF, SFC, ITIL V3, COBIT 5, entre outras.


Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">