Como abordar a tarefa scrum queimar quando tarefas têm envolvimento de várias pessoas?

12

Na minha empresa, uma única tarefa nunca pode ser concluída por um indivíduo. Haverá uma pessoa separada para o controle de qualidade e a revisão de código de cada tarefa. O que isso significa é que cada indivíduo fornecerá suas estimativas, por tarefa, quanto tempo levará para ser concluído.

O problema é: como devo abordar a queimadura? Se eu agregar as horas, assuma a seguinte estimativa:

10 h - Hora do desenvolvedor

4 h - controle de qualidade

4 h - Revisão de código.

Estimativa da tarefa = 18 horas

No final de cada dia, peço que a tarefa seja atualizada com "quanto tempo resta até terminar". No entanto, cada pessoa geralmente pensa apenas em sua parte. Eles devem marcar o esforço restante e, em seguida, adicionar o esforço estimado a isso? Como vocês estão fazendo isso?

ATUALIZAR

Para ajudar a esclarecer algumas coisas, na minha organização, cada tarefa de uma história requer 3 pessoas.

  1. Alguém para desenvolver a tarefa. (faça testes de unidade, ect ...)
  2. Um especialista em controle de qualidade para revisar tarefas (eles fazem principalmente testes de integração e regressão)
  3. Um líder técnico para fazer a revisão do código.

Eu não acho que exista um caminho errado ou um caminho certo, mas este é o nosso caminho ... e isso não vai mudar. Trabalhamos em equipe para completar o menor nível possível de uma história. Você não pode realmente testar se algo funciona até que esteja completo, e também não pode revisar a qualidade do código ... então o melhor que você pode fazer é dividir as coisas em pequenas fatias lógicas para que a funcionalidade mínima básica possa ser testada e revisado o mais cedo possível no processo.

Minha pergunta para aqueles que funcionam dessa maneira seria como queimar uma "tarefa" quando configurada dessa maneira. A menos que uma tarefa tenha suas próprias subtarefas (que o JIRA não permite) ... não tenho certeza da melhor maneira de realizar o rastreamento "do que resta" diariamente.

AgileMan
fonte
8
Você poderia descrever qual é o seu processo? Nunca usamos horas em nosso planejamento Scrum e nunca relatamos horas restantes. As tarefas são concluídas quando concluídas.
precisa saber é o seguinte
1
@ user814064: Bom argumento. Toda vez que eu vejo equipes estimando cada tarefa, sempre entendem errado. Às vezes, por um fator de 1/10 e mais.
Arseni Mourzenko
Esse processo é novo para mim. No passado, estávamos queimando a tarefa quando ela estava concluída. No entanto, estou tentando incentivar as pessoas a melhorarem a estimativa. Podemos analisar nossas estimativas e compará-las com nossas reais e, com sorte, aprender com ela. Pode ser um empreendimento infrutífero, mas é algo que quero que as equipes tentem por um tempo.
AgileMan
É meio difícil de explicar por que você não deve fazer isso nos poucos caracteres que pode digitar aqui. Estimativa é exatamente o que o nome indica: é vago, é um valor aproximado e você não pode melhorar de maneira significativa e equilibrada em relação custo-benefício. Afinal, chama-se "estimar", não "calcular". Aconselho você a ler mensagens de Neil Killick em #NoEstimates: neilkillick.com/2013/01/31/...
Stefan Billiet

Respostas:

14

São 3 tarefas, não uma.

Pode ser uma característica / história, mas são três tarefas. Uma única tarefa pode ser concluída por uma única pessoa em tempo finito.

Steven A. Lowe
fonte
@ user814064: não é uma suposição; o OP listou estimativas para cada tarefa no post
Steven A. Lowe
Eu deveria ter sido mais específico ... isso JÁ está no nível da tarefa. Por exemplo, TODAS as tarefas (o pequeno pedaço da história) precisam ser desenvolvidas, testadas e revisadas. Mesmo que a tarefa tenha sido realizada por um único indivíduo ... outros gastam tempo para garantir sua conclusão. Suponho que você possa fazer com que cada tarefa tenha suas próprias tarefas ... mas não tenho certeza de como isso funcionaria.
AgileMan
3
@AgileMan: em um mundo de senso comum, uma tarefa é uma única unidade de trabalho que pode ser executada por uma pessoa e três tarefas em série por três pessoas diferentes é um projeto. No mundo do scrum ... é a mesma coisa. (por exemplo, www.scrumalliance.org/community/articles/2007/march/glossary-of-scrum-terms#1129). História-1-dev, História-1-QA-review e História-1-code-review são 3 tarefas diferentes. Se você deve modelar tarefas 3-parte, talvez 3 diferentes gráficos de burndown seria apropriado;)
Steven A. Lowe
Se isso for necessário em um nível de tarefa, você realmente precisará trabalhar na sua definição de concluído e dividir suas tarefas. Deve ser simples sim / não saber se uma tarefa é concluída, não um processo através de várias pessoas.
SpoonerNZ
7

TL; DR

Você está usando a queima incorretamente de várias maneiras. Tarefas e histórias estão concluídas ou não; Ao tentar rastrear desvios em relação às estimativas de planejamento baseadas no tempo, você está reestimando sua programação em vez de estimar o restante do produto de trabalho.

No Scrum, você deve medir o progresso em direção a uma meta da Sprint, em vez de medir o tempo da Sprint. Isso mantém o foco na capacidade da equipe e na entrega de recursos, em vez de nos ajustes de agendamento contínuos.

Tarefas vs. Histórias

Você está confundindo tarefas e histórias. As histórias compreendem todas as tarefas necessárias para concluir a história, de acordo com a "definição de feito" da sua equipe. A história é considerada 100% incompleta, a menos que todas as tarefas sejam concluídas. No Scrum, as histórias são sempre estimadas de alguma maneira; na maioria das vezes, eles são estimados em pontos da história.

As tarefas são as etapas ou marcos necessários para completar a história. Embora cada tarefa possa ter dependências e pré-requisitos, você pode certamente dizer que a revisão do código está concluída ou não, independentemente das outras tarefas.

Queimar

No Scrum, seu gráfico de queima mostra a quantidade de trabalho restante para o sprint ou projeto. Os gráficos reais de queima frequentemente têm platôs; em alguns casos, o gráfico pode até subir. Por exemplo, em uma corrida de uma semana com duas histórias no valor de 3 e 5 pontos, seus pontos de dados podem ser algo assim:

Mon | Tue | Wed | Thu | Fri
--- | --- | --- | --- | ---
 8  |  5  |  5  |  5  |  0

Nesse cenário idealista, você começa com 8 pontos da história. A história de 3 pontos foi concluída na terça-feira à tarde, enquanto a história de 5 pontos não foi concluída até sexta-feira. Os pontos da história não são deduzidos do detalhamento até que a história atenda à definição de concluído. Se você estiver usando o horário ideal em vez de contar histórias, a única coisa que muda é a sua escala.

Time-Boxing

A prática geralmente aceita é garantir que suas tarefas sejam decompostas em pedaços pequenos entre 1/2 e 2 dias. A variação de mais de um dia deve ser evidente a partir das stand-ups diárias ou do Sprint Backlog; não deve haver necessidade de executar um status formal.

Você também pode executar análises estatísticas no gráfico de queima para determinar se o seu sprint está tendendo corretamente. Pequenos desvios ou platôs são normais, mas se ninguém estiver levantando nenhum bloqueador nos levantamentos diários, mas sua queima parecer travada, isso geralmente é um sinal de que o Sprint Backlog foi mal avaliado ou se há "trabalho invisível" precisa ser explicitado em seu processo.

CodeGnome
fonte
Acho que não concordamos totalmente. Certamente, o gráfico de burndown mede o progresso em direção a uma meta do sprint ... mas faz isso medindo o progresso em histórias específicas do sprint. Geralmente, você pode optar por queimar uma vez que uma história esteja 100% concluída, ou você pode queimar horas em cada história todos os dias à medida que o trabalho estiver sendo concluído. Estou tentando fazer o último ... mas estou achando um desafio para as equipes. Sinto como se sua postagem se afastasse da pergunta que fiz originalmente.
AgileMan
um dos riscos de não permitir que uma tarefa para perto de 100% é ter 100% de suas tarefas 99% feito, o que significa nada é realmente "feito"
hanzolo
1
@AgileMan Você está achando "desafiador para as equipes" porque está medindo a coisa errada. Você certamente pode aplicar qualquer metodologia que funcione para você e sua equipe, mas defenderei a afirmação de que medir estimativas originais - o tempo decorrido não é a mesma coisa que medir o produto de trabalho restante. Faça o que funcionar para o seu projeto, mas não tenha medo de questionar as suposições que sustentam suas métricas atuais.
#
@CodeGnome. Há uma simples comunicação incorreta acontecendo aqui. Não estou tentando rastrear o "tempo decorrido". Estou tentando determinar o "tempo restante". Quando esta tarefa será concluída? É tudo o que estou tentando determinar. No entanto, como mesmo a menor tarefa (geralmente) envolve várias pessoas, o desafio é como determinar o que resta de uma maneira simples e direta.
AgileMan
4

Você pode definir a tarefa dev como "concluída" antes que o controle de qualidade faça sua parte? Você pode definir a revisão de código como "concluída" antes da conclusão do desenvolvedor? O controle de qualidade pode ser "concluído" se a revisão do desenvolvedor e do código não for?

Eu diria que você deve agregar os três itens em uma única tarefa e as três pessoas devem trabalhar juntas.

O Scrum NÃO diz que qualquer item é de responsabilidade de um membro da equipe. Exatamente o oposto - os itens de log do sprint são de responsabilidade da EQUIPE. Se são necessárias três pessoas para executar uma tarefa, é preciso.

Matthew Flynn
fonte
Eu tenho algumas dúvidas sobre essa sugestão. Para mim, uma tarefa de desenvolvimento pode ser realizada antes do controle de qualidade e da revisão de código, mas a revisão de código e o controle de qualidade (que são tarefas individuais para si mesmos) provavelmente produzem novas tarefas de desenvolvimento que podem ser "queimadas" individualmente. Obviamente, se "tarefa" significa "implementar uma história completa do usuário", você está certo, mas por que a tarefa deve ser tão grosseira?
Doc Brown
@ DocBrown - eu fiz isso nos dois sentidos. Descobri que dizer que uma tarefa é concluída quando não foi verificada (revisão e teste) não se mostrou útil para acompanhar o progresso. Colocar a todos a disposição para concluir a tarefa ajuda a manter a urgência de todos os envolvidos.
Matthew Flynn
Obviamente, nada é "feito" até que tenha passado pelo processo do Departamento de Defesa. No entanto, as coisas podem progredir a um ponto em que pode ser benéfico ser revisado por outras partes. Atualmente, mesclo todo o "trabalho" necessário para cada pequena tarefa em uma hora agregada, como você mencionou. O desafio é que, quando uma pessoa está tentando relatar o que resta, geralmente ela tem que dar conta de sua parte e, em seguida, adicionar as estimativas de outras pessoas por cima ... então é um trabalho muito ocupado. Eu sinto que há uma maneira melhor.
AgileMan
3

Não importa. Desde que seja relativamente consistente entre as histórias, seu gráfico de burndown ainda funcionará de qualquer maneira. Use o caminho mais natural para a sua equipe relatar.

Minha equipe realmente faz uma espécie de híbrido, embora não por acordo formal. Colocamos 16 horas se acharmos que uma tarefa levará uma pessoa por dois dias, mas se duas pessoas acabarem trabalhando juntas, não mudaremos.

Após a estimativa inicial, ela informalmente se torna mais de um por cento concluída para nossa equipe do que uma hora restante. Se originalmente pensamos que levaria dois dias, mas depois de um dia, achamos que está apenas 25% completo, tiramos 4 das 16 horas originais. Isso deixa 12 horas onde tecnicamente estimamos 24, porque provavelmente deduziremos 4 horas pelos 3 dias restantes.

Isso me incomodou como um scrum master a princípio, mas por mais estranho que pareça, é uma maneira muito natural de fornecer estimativas, porque os desenvolvedores realmente odeiam adicionar horas a uma estimativa. Tudo isso faz com que a burndown ainda seja útil, e é isso que é importante.

Karl Bielefeldt
fonte
2

O tempo restante da tarefa não importa muito: nada pode ser entregue até que toda a história esteja pronta.

Se você deseja acompanhar quanto tempo resta de uma história (em geral), solicitando que as pessoas preencham o tempo restante nas tarefas, divida as tarefas por pessoa.

Dito isto:

  • Grandes tarefas podem ser uma indicação de que suas histórias são muito grandes. Nesse caso, a melhor solução é reduzir o escopo e o tamanho das histórias, e se você reduzi-lo, o rastreamento suficiente de tempo restante nas tarefas não importa mais (elas estão concluídas ou não - soma da estimativa das tarefas não concluídas) é granular o suficiente).
  • O SCRUM incentiva todos a entender o que precisa ser feito. Se você estiver atribuindo tarefas a pessoas (em oposição a funções), estará potencialmente impedindo-se de fornecer uma história, mesmo se o desenvolvedor não estiver fazendo nada - porque o controle de qualidade está com gargalo.
ptyx
fonte
-1

Divida a tarefa em várias tarefas e insira-as como tarefas em que cada uma é tratada por uma pessoa diferente.

Tarefa original: corrigir algo

Novas tarefas: (filho do pai da tarefa original)

  • Dev A - Corrigindo o problema
  • Dev B - Ajudando o desenvolvedor A a corrigir o problema (ou seja, programação em pares, revisão de código)
  • Dev A - dev testando a correção usando o conjunto de dados X
  • Dev B - dev testando a correção usando o conjunto de dados Y
Asim Ghaffar
fonte
questão afirma que a sub tarefas não são permitidos
mosquito
eu nunca quis sub tarefa por si só .. eu quero dizer pausa a tarefa em tarefas e torná-los todos criança de uma história ou bug .. i vai reformular a minha resposta ..
Asim Ghaffar
bem, quebrá-lo da maneira que você descreve já foi sugerido e explicado em pelo menos duas respostas anteriores (votadas com mais frequência neste momento): "São três tarefas, não uma ..." "Você está confundindo tarefas e histórias ..."
Gnat #