Neste episódio exploramos como otimizar o refinamento técnico com Marco Ollivier, Senior Staff Engineer na Lemmon Energia. Marco compartilhou insights sobre como planejar melhor atividades técnicas, evitar erros comuns e alinhar equipes multidisciplinares, além de técnicas para melhorar a eficiência das cerimônias de refinamento técnico e reduzir gargalos em entregas.
Reuniões de refinamento devem ter como objetivo alinhar soluções técnicas e garantir que todos os envolvidos compreendam o problema que será resolvido. Um bom ponto de partida é adotar uma estrutura parecida com um documento de RFC (“Request for Comments”), onde o problema é descrito em detalhes, alternativas são apresentadas e soluções são debatidas antes da cerimônia.
Alguns passos importantes para uma reunião bem-sucedida incluem:
O objetivo é que a reunião seja produtiva e focada, reduzindo surpresas durante o desenvolvimento.
Existem erros comuns que comprometem o sucesso das reuniões de refinamento. Esses são alguns deles:
Uma reunião de refinamento não deve ser uma corrida contra o tempo. Ela precisa de preparação adequada, com investigações e definições preliminares que garantam fluidez e clareza.
Uma das maiores dúvidas em refinamentos é o nível de detalhe exigido. Foque em um nível “macro”, como o fluxo de informação entre serviços e o desenho geral da arquitetura. Entrar no código detalhado é uma responsabilidade dos desenvolvedores no momento apropriado.
Por outro lado, dependendo da senioridade do time, pode ser necessário ajustar o nível de detalhamento para evitar retrabalho e discordâncias durante as revisões de código.
Não é tudo que vale a pena passar por uma cerimônia de refinamento. Problemas simples como pequenos bugs ou tarefas pontuais geralmente podem ser resolvidos diretamente pelo time.
Porém, demandas maiores que envolvem refatorações complexas ou mudanças arquiteturais devem ser refinadas com cuidado. Isso inclui avaliar os impactos das alterações e considerar o retrabalho em soluções temporárias.
Quando as discussões não convergem para uma solução, é importante que alguém assuma a responsabilidade de tomar uma decisão. O ideal é que a pessoa mais envolvida na investigação do problema “bata o martelo”. Isso evita paralisia decisória e mantém o time produtivo.
Nem sempre a empresa é uma democracia, e não tem nenhum problema com isso.
Estimativas são sempre desafiadoras, mas essenciais para o planejamento. Marco recomenda basear estimativas em dados históricos, como cycle time e capacidade do time. Ele também destacou a importância de comunicar que estimativas não são garantias, mas sim previsões que ajudam no planejamento do trabalho.
Revisar o escopo de tarefas durante o refinamento pode ser benéfico, especialmente se o trabalho estimado é muito extenso. Nessas situações, considerar entregas incrementais é uma forma de agregar valor rapidamente ao produto e reduzir riscos.
Entretanto, é importante avaliar se a solução menor não gerará retrabalho excessivo quando o escopo completo for implementado.
Um dos desafios é a falta de informações claras em tarefas repassadas por pessoas de produto como Product Managers, Product Owners e stakeholders, por exemplo. A solução? Insistir na documentação.
Documentar, documentar, documentar. Essa é a abordagem para garantir que os problemas sejam bem compreendidos antes de serem resolvidos.
Não existe uma receita única para refinamentos eficazes. O que funciona para um time pode não funcionar para outro. Por isso, o segredo é ajustar as práticas à realidade da sua equipe, sempre mantendo o foco na clareza, comunicação e entrega de valor.
Lembre-se: Refinar uma entrega é acima de time uma atividade de alinhamento de expectativas e comunicação entre os envolvidos. Se você busca mergulhar a fundo nesse assunto então pode conferir o treinamento de Colaboração, Comunicação Assíncrona e Documentação da Escola Forja. Um bom refinamento é crucial, porém há muitas outras ferramentas para te ajudar nesta jornada.