segunda-feira, 30 de dezembro de 2013

Priorização de bugs

Quando ocorre um problema em produção, segundo uma visão ágil, ele deveria entrar no backlog do produto e disputar prioridade — como qualquer outro item. A justificativa dessa visão é que os itens de maior valor de negócio sejam priorizados sobre os de menor valor, afinal o objetivo é maximizar o valor entregue em relação ao esforço empreendido. Dado que um bug pode ocorrer em um trecho pouco utilizado do sistema, ou ser de pequeno impacto, talvez não seja estritamente necessário resolvê-lo imediatamente, ou talvez nunca venha a valer a pena investir em sua correção.

Em uma visão Lean, contudo, a ideia é um pouco diferente. Deveríamos encontrar imediatamente a causa-raiz de um defeito, pois ela pode continuar gerando outros problemas até ser atacada — um exemplo claro de desperdício. A questão aqui não é resolver o problema imediatamente, mas diagnosticar não só a causa imediata, como também a mediata. Ou seja, em uma visão Lean, não deveria haver problemas conhecidos cuja causa-raiz não estivesse plenamente identificada.

Como é comum que muito do tempo gasto para corrigir um problema seja justamente no diagnóstico, será que faz sentido fazer uma análise da causa-raiz imediatamente e postergar a correção do defeito?

Minha tendência é acreditar mais na linha Lean de pensamento e buscar logo a razão da geração dos problemas e atacá-la o mais rápido possível, pois uma das ideias mais fundamentais tanto do Lean quanto do Agile é a busca pela melhoria contínua, e para isso precisamos que os problemas apareçam o mais rapidamente possível. Não identificar a causa-raiz de um problema imediatamente é desprezar sinais de problemas subjacente.

Qual a opinião de vocês sobre o assunto? Faz sentido?

Um comentário:

  1. Uau, essa postagem tinha passado sem eu me atentar.

    Se estamos falando da criação de um produto, não devemos comparar com uma linha de produção. Enquanto na primeira se procura descobrir/criar novos e maiores valores constantemente, a segunda busca otimizar o valor já existente.

    No primeiro caso, escolher se quero investigar a causa de um bug, que leva tempo, ou criar uma nova funcionalidade, pode ser a diferença entre muito valor e pouco, ou mesmo, numa visão extremista, definir se o produto e empresa continuarão existindo.

    No segundo caso é uma troca entre entregar mais do mesmo valor ou para e otimizar para entregar ainda mais valor na sequência da descoberta e correção da causa raiz.

    Na prática, poucos vejo poucos times de desenvolvimento de produtos conseguem dominar a arte de priorizar corretamente histórias de grande valor, então uma mescla entre atacar rapidamente bug e selecionar os mais críticos para uma análise raiz me parece a melhor abordagem.

    Abraço

    ResponderExcluir