Nossa versão do Agile não está funcionando. Dicas?

12

Eu trabalho em uma pequena equipe de 4 desenvolvedores. Estamos implementando uma versão do Agile que parece continuamente nos fornecer as mesmas dificuldades, semana após semana, e estou procurando sugestões que possam nos ajudar a melhorar nosso processo.

O fundo:

Geralmente, fazemos sprints de duas semanas e, a cada tendência, subestimamos nosso trabalho, e enfrentamos problemas com nosso gerente porque estamos atrasados.

Começamos cada corrida, organizando as histórias que nosso gerente cria para nós. Às vezes, ele também executa as tarefas e nós as estimamos. Nós não usamos pontos da história. Usamos o software Urban Turtle para "gerenciar nossos sprints", que são essencialmente apenas histórias e tarefas, e o queimadura associado. Não planejamos uma liberação no final de um sprint.

O problema mais comum que ocorre é que planejamos uma tarefa no início de um sprint apenas para descobrir que seu escopo é muito maior, mas ainda com alta prioridade, por isso precisamos trabalhar mais horas nela. O segundo problema mais comum é que um de nós enfrenta um problema técnico que diminui a velocidade das horas queimadas, causando um bloqueio.

A única sugestão que nos é fornecida é ser mais proativo ao ajustar nossas estimativas e fornecer atualizações durante as paradas da manhã, para que possamos ajustar o tempo extra necessário.

No entanto, parece haver algo fundamentalmente errado com a maneira como estamos fazendo as coisas. Talvez haja uma desconexão entre as expectativas do gerente no nível do projeto e as expectativas no nível do sprint. Porque estamos fazendo essas iterações de sprint de acordo com um plano de projeto e, portanto, estendendo um sprint ou adiando itens estraga o plano do projeto. Portanto, como desenvolvedores, estamos sendo encorajados a executar o Agile estendendo as estimativas quando necessário, mas também concluindo o sprint no prazo, o que é confuso.

Este não pode ser um problema incomum, por isso espero que aqueles mais sábios do que eu tenham uma sugestão ou duas sobre como podemos parar de enfrentar esse mesmo problema a cada corrida. É frustrante.

letsgetsilly
fonte
8
não aloque 100% do tempo para histórias e tarefas, talvez apenas 80% do tempo? E se você terminar tudo (parece improvável) trazer outra história do backlog? Ou crie um multiplicador para suas estimativas (seu número = 2)?
22412 Kevin
1
Obrigado, acho que o multiplicador é uma boa ideia, além de escopo menor.
Eu concordo com o Kevin. Para um cenário em que você precisa fazer uma estimativa e não fazer ideia, faça um e, em seguida, dobre-o e adicione um pouco mais para uma boa medida. Então, se você diz 8 horas, eu iria dobrar para 16 e provavelmente rodada até 20 por exemplo
dreza
3
Mudar para cascata. O Waterfall funciona muito melhor com estimativas incorretas e cronogramas excessivamente restritos. (Não pode fazer que uma resposta porque os downvotes inevitáveis me custaria aproximadamente 0.025 pontos de reputação)
user281377
1
Como você está escolhendo quantas histórias fazer em um sprint?
jk.

Respostas:

20

porque estamos atrasados

Esse tipo de pensamento é seu problema. Você não está atrasado, o cronograma é muito apertado. Você deve começar a estimar histórias em pontos abstratos, em vez de horas, e depois de duas a duas iterações descobrir sua velocidade. Sua velocidade é quantos pontos você costuma fazer a cada iteração, não quantos pontos seu gerente deseja que se encaixem.

Depois disso, não importa se você subestima constantemente as tarefas - sua velocidade já é responsável por isso.

Obviamente, isso é impossível se você usar horas em vez de pontos.

Fixpoint
fonte
A velocidade do projeto com +1 é a chave, embora eu pense que você possa fazê-lo com horas, desde que esteja disposto a ajustar as horas brutas por um fator de velocidade
jk.
1
Isso pressupõe que suas estimativas estão sempre fora do mesmo fator. Na minha experiência, esse raramente é o caso. Até desenvolvedores inexperientes estimam algumas tarefas com muita precisão. E desenvolvedores bastante experientes às vezes produzem estimativas extremamente baixas de determinadas tarefas. O Santo Graal é saber quais tarefas provavelmente serão estimadas com precisão e quais serão mal. A aplicação de algum fator de cobertura não ajudará nisso.
Dawood diz que restabelece Monica
4
@DavidWallace Certamente, ele não produzirá estimativas precisas por tarefa , mas o objetivo é uma estimativa mais precisa de um sprint inteiro. Pelo menos, a teoria é que a variedade tarefa por tarefa é calculada em média sobre as 3 iterações nas quais a velocidade é calculada.
23412 Chris Pitman
12

Parece que os problemas são a incapacidade da sua equipe de fazer estimativas precisas e a incapacidade de prever os problemas que a inevitabilidade surge.

Tarefas pequenas são muito mais fáceis de estimar com precisão do que tarefas grandes, portanto, tente dividir suas tarefas em partes muito menores.

Não permita que alguém faça uma estimativa para qualquer tarefa, a menos que saiba exatamente como vai fazê-lo. Para qualquer tarefa que o desenvolvedor não saiba o que concluir, dedique algum tempo ao cronograma do ESTE sprint para que ele faça alguma investigação e design e faça uma estimativa precisa. Nunca menos que meio dia. Mas mova a tarefa para o NEXT sprint. Então, quando você planejar o próximo sprint, terá uma boa estimativa. Observe que esse tempo extra não é desperdiçado, porque é hora de o desenvolvedor acabar gastando em qualquer caso.

E não tenha medo de voltar ao gerente de projeto e dizer a ele que precisará de mais sprints para passar pela lista de tarefas. É melhor fazer isso do que se comprometer com alvos impossíveis.

Dawood diz restabelecer Monica
fonte
+1 para investigar problemas difíceis e adiar a implementação para o próximo sprint. Observe que isso geralmente é chamado de "solução de pico" (ou apenas "pico"); extremeprogramming.org/rules/spike.html .
23412 sleske
+1 para investigação antecipada. Pessoalmente, quando estou confuso com a biblioteca ou com o princípio de programação, se eu pensar no assunto por uma semana ou duas, quando volto ao assunto, isso faz muito mais sentido.
Buttons840
6

Você está tentando alocar 100% do seu tempo? Se sim, pare de fazer isso. Comece adicionando todas as horas que sua equipe tem para contribuir durante o sprint. Faça isso assumindo que cada trabalhador, na melhor das hipóteses, dedique 6 horas por dia ao projeto. Este é considerado um "dia ideal". Essas outras duas horas? Sugado por reuniões, pausas, tarefas administrativas, o horário da manhã em que você está lendo e-mails e planejando o seu dia, etc. Isso não é "proteger suas apostas" ou "sacos de areia", é realista.

Segundo, multiplique essas 6 horas / dia por 80% . Por quê? Porque, como seres humanos, somos péssimos em prever quanto tempo uma tarefa levará. Isso explica erros em nosso julgamento. Novamente, não ensacamento, está sendo realista.

Agora você tem um número que representa um número realista de horas que você espera aplicar diretamente em suas tarefas. Quando você estiver fazendo uma estimativa, pare de adicionar histórias quando a próxima história o expor.

Por fim, não deixe o proprietário do produto adicionar tarefas. O planejamento do Scrum é para a equipe , o PO não faz parte da equipe que está fazendo o trabalho. É claro que, no mundo real, se a OP tiver mais conhecimento do que qualquer um da equipe, sua contribuição poderá ser muito útil. Ainda assim, se a equipe está se esforçando para ficar para trás, precisa se apropriar exatamente das tarefas que fará. Seu objetivo é poder atender aos critérios de aceitação; se uma tarefa não levar diretamente a isso, não faça.

Lembre-se, Scrum não é ser mais produtivo. É sobre ser mais aberto e comunicativo. O trabalho levará o que for preciso para ser feito. O Scrum existe para facilitar a estimativa, a comunicação com as partes interessadas e o comprometimento da sua equipe.

Bryan Oakley
fonte
5

Critérios de aceitação mal definidos no início do sprint?

As estimativas iniciais geralmente são muito baixas porque os cartões de histórias têm critérios de aceitação insuficientes (se houver) quando são estimados. Que tal mudar para o ATDD (Teste de Aceitação), também conhecido como teste de histórias, para ajudar a equipe a ficar realmente clara sobre o que é o cartão?

Histórias muito grandes?

Outro motivo para você descobrir no meio da corrida que suas histórias demoram mais que o esperado pode ser que elas são muito grandes. Você viu o Agile em um baralho de flashcards em Flash ? Eles têm um cartão de memória chamado "Shrink XL stories to Fit". Ele fornece estratégias para dividir histórias, como adiar casos extremos, efeitos colaterais, aspectos não funcionais ou tratamento de erros para histórias posteriores.

Não é possível estimar porque você não possui informações suficientes?

@sleske faz uma boa sugestão sobre picos . Tente identificar incógnitas técnicas no momento da estimativa. Se houver, veja se você pode adiar a história para um sprint posterior e, em vez disso, faça uma investigação pontual (pico) nesse sprint para tentar aprender o que seria necessário para estimar. Não se empolgue e resolva a história original - o pico ocorre quando você sabe o suficiente para estimar a história.

Falhar mais rápido

E eu concordo com @Patrick Hughes - pense em mudar para sprints de uma semana para que você possa ver os problemas mais rapidamente.

JeffH
fonte
3

Além das boas sugestões de @ Kevin e @ Patrick ...

As abordagens ágeis não são "tamanho único", mas esse comentário chamou minha atenção:

Estamos implementando uma versão do Agile que parece nos fornecer continuamente as mesmas dificuldades

É melhor começar com uma metodologia "aprovada pelo livro" (o Scrum é dominante atualmente) - e EXATAMENTE o que outras equipes de sucesso fizeram ... Faça isso por alguns sprints ... E só então comece a considerar mudanças necessárias para otimizar as condições locais.

Alugar um coach Scrum experiente (por algumas iterações) pode ser uma verdadeira diferença. Há sutileza em obter a agilidade certa.

codingoutloud
fonte
3

Primeiro, recomendo seguir o livro scrum-xp-from-the-trenches . Veja na página 26 o ponto sobre os cálculos de velocidade. A idéia é definir um fator de foco e dizer isso para o próximo Sprint:

homem-dia disponível * fator de foco = velocidade estimada

velocidade estimada é a soma das estimativas das histórias que você planeja implementar durante o próximo Sprint.

E após um Sprint, você calcula o último fator de foco do Sprint como:

fator de foco = velocidade real / homem-dia disponível

onde velocidade real é a soma das estimativas das histórias que você implementou durante o sprint.

Em seguida, você reutiliza esse fator de foco real para o próximo Sprint e, depois de alguns, poderá ser mais preciso com o quanto você realmente pode conseguir durante um Sprint ...

pgras
fonte
+1 por mencionar o scrum das trincheiras. A pergunta e as respostas me fizeram pensar naquele livro.
Buttons840
1

Até que você obtenha suas estimativas para encurtar seus sprints para uma semana, assim você reconhecerá o excedente mais rapidamente e poderá reagir em incrementos menores.

Gaste mais tempo com antecedência ao projetar tarefas para conseguir espaço para respirar e reconhecer os efeitos colaterais que provavelmente estão causando o sangramento do escopo. Também pode ser que as próprias tarefas sejam muito longas para uma estimativa ágil adequada, veja se as tarefas podem ser divididas em etapas mais curtas que serão mais fáceis de engolir.

Deixe todo mundo à vontade com o envio de uma bandeira vermelha assim que encontrar um problema, em vez de ficar preso em um problema por algumas horas. Tente desanexar o ego e culpar esse processo, isso é mais fácil para alguns do que para outros =)

E, como o @Kevin falou, você nunca agenda 100% diretamente para tarefas, porque sempre há sobrecarga como reuniões e assim por diante que você pode não reconhecer como comedores de tempo.

Quando tudo estiver legal na agenda de agendamento e depois voltar para duas semanas, você magicamente recuperará um pouco de tempo das poucas reuniões novamente.

Patrick Hughes
fonte