Eu ouvi enxames mencionados no contexto de programação ágil ou extrema. Parece ser um complemento para o emparelhamento.
O que exatamente é isso? Quando deve ser aplicado? Como você faz isso bem?
Eu ouvi enxames mencionados no contexto de programação ágil ou extrema. Parece ser um complemento para o emparelhamento.
O que exatamente é isso? Quando deve ser aplicado? Como você faz isso bem?
Respostas:
A ideia é que todos da sua equipe trabalhem na mesma história ao mesmo tempo. Em vez de todo mundo se concentrar em tarefas diferentes, todo mundo se concentra em uma tarefa de cada vez até que seja concluída. Então eles passam para a próxima coisa, onde todos trabalham juntos.
Isso ajuda as equipes que lutam para concluir as histórias antes do final do sprint. Muitas vezes, as equipes terminam 80% de todas as histórias, mas nenhuma está completa. Isso é menos útil do que terminar completamente 80% das histórias, uma vez que histórias inacabadas não têm (efetivamente) nenhum valor para o usuário final. É mais fácil obter histórias completas quando todos da equipe estão se concentrando em uma história de cada vez. Essa é a motivação por trás do enxame.
Existem algumas dificuldades aqui. Por exemplo, o controle de qualidade nem sempre pode testar as coisas antes de serem criadas (ou mesmo projetadas). Nesse caso, você deve estabelecer um design juntos desde o início e, em seguida, o controle de qualidade pode escrever testes (com falha inicial) no design e não na implementação real.
Enxame apenas se refere ao fato de que várias pessoas trabalham juntas para concluir uma tarefa ou história. Na minha experiência, isso não é algo que você faz com frequência.
Normalmente, cada membro da minha equipe trabalha em uma tarefa diferente e / ou em uma história diferente. Se alguém está ficando para trás, ou se há um desejo de terminar uma tarefa ou história mais cedo, outras pessoas deixarão de trabalhar em outras tarefas e "enxamearão" para concluir a tarefa, o que significa que todos eles trabalharão juntos em uma única tarefa ou história até que está completo.
Recentemente, tivemos um pequeno número de histórias que eram um trabalho bastante chato e desinteressante. Dei à equipe um pequeno incentivo (pizza) e um prazo (final do dia) para terminar o trabalho, para que eles pululassem na história e desistissem de pelo menos alguns dias de trabalho em uma tarde. Eles fizeram o trabalho e saíram do caminho mais cedo, depois cada membro da equipe voltou ao que estava trabalhando. Eles receberam um almoço grátis, eu fiz um trabalho cedo que poderia ter se arrastado devido à natureza monótona, e a equipe ficou à frente do seu sprint. Ganha-ganha-ganha.
"Enxame" nada mais é do que um termo chique para "ei, vamos ajudá-lo com isso".
O enxame é, na verdade, um conceito central da agilidade. Não é algo que é feito "quando há problemas". Enxame, em sua forma mais simples, significa que as equipes trabalham em colaboração em itens (histórias) e os trabalham até a conclusão. O conceito principal é "parar de iniciar e começar a terminar". Em outras palavras, em vez de todos os desenvolvedores trabalharem independentemente em uma história, a equipe se concentra em um conjunto mais limitado de histórias / tarefas e realiza cada item mais cedo. Pense nisso como a diferença entre um sistema de thread único e multi-thread. Se uma história do usuário tiver 10 tarefas a serem executadas e cada uma durar 8 horas, assumindo que não houve complicações, um desenvolvedor poderá trabalhar cada tarefa sequencialmente e concluir a história em 80 horas ou cerca de duas semanas (com 10 dias de sprint) de 8 horas de desenvolvimento por dia). E se dois desenvolvedores dividissem as tarefas e as trabalhassem simultaneamente? As mesmas 80 horas de trabalho podem ser concluídas dessa maneira em uma semana. Adicione um terceiro e você pode ver agora que isso pode ser feito em 3 a 4 dias.
O enxame pode ser feito de várias maneiras:
As equipes que dão uma história a todos os desenvolvedores tendem a ter muito "trabalho em andamento" ou WIP, e geralmente muitas histórias são iniciadas, mas não concluídas. Este é um ANTI-PADRÃO e NÃO é uma prática recomendada.
As equipes que enxameavam tendem a ter menos WIP e completar mais histórias - e, com isso, quero dizer Desenvolvido, Testado, Aprovado, pronto para implantar. Portanto, essa é uma prática essencial para a agilidade.
O artigo a seguir no InfoQ descreve uma abordagem para o enxame:
Leia o artigo para obter uma explicação detalhada.