O Scrum é melhor para equipes com membros generalistas, ou seja, equipes em que pelo menos duas pessoas podem realizar as mesmas tarefas. Minha principal preocupação é encontrar boas soluções para adaptar o scrum (o que manter, o que remover, o que melhorar) para equipes compostas por especialistas?
Suponha que você tenha uma equipe de 5 desenvolvedores (não é real, apenas para o exemplo):
- Um matemático com fortes habilidades em C;
- Um desenvolvedor de banco de dados;
- Um desenvolvedor da Web;
- Um desenvolvedor de UX / GUI;
- Um arquiteto de software;
Aqui, todos são especialistas e ninguém pode substituir outra pessoa (não me importo com os riscos de formar uma equipe, quero me concentrar no scrum). Então, no contexto do scrum, aqui estão meus pensamentos:
- Planejamentos inúteis da primavera: de fato, quando o matemático diz que uma tarefa específica vale 2 pontos, ninguém pode votar contra ele;
- Métrica inútil de velocidade da equipe: como todos podem alocar qualquer número de pontos para suas próprias tarefas, a velocidade da computação não faz sentido;
- Substitua as reuniões diárias do scrum por reuniões semanais (mais longas): como cada membro da equipe está trabalhando em suas próprias tarefas, as reuniões diárias do scrum devem ser realmente importantes para manter um "espírito de equipe". No entanto, as reuniões diárias do scrum devem durar cerca de 15 minutos. Claramente, isso não é suficiente para entender o que os outros estão fazendo e farão. Além disso, o matemático costuma responder as mesmas coisas: "Ainda estou fazendo % & Lo (+? $$ + &)" ... As reuniões semanais dariam mais tempo. Para manter o mesmo tempo entre as reuniões de scrum "iniciais" e as reuniões de scrum "semanais", cada reunião de scrum semanal deve durar (5 dias por semana, com 4 semanas de sprints, com reuniões de sprint com duração de 4 horas e reuniões diárias com 15 minutos): (4 * 60 + 20 * 15) / 4 =>
Ou o scrum ainda é utilizável? Talvez outra técnica ágil deva ser usada?
Respostas:
Scrum não é uma bala de prata. Nem todo projeto precisa usar o Scrum para ter sucesso. A situação que você está descrevendo, no entanto, parece ser uma ótima opção para o Lean / Kanban. Você pode querer conferir.
O Kanban basicamente pede que você faça apenas algumas coisas, nenhuma das quais está em desacordo com o tipo de equipe que você está descrevendo:
Você pode querer verificar algumas referências sobre o Kanban:
fonte
Você está se concentrando um pouco demais na mecânica do scrum / ágil sem observar o que o ágil deve oferecer. Você diz que se o sujeito da matemática estima 2 pontos, ninguém pode dizer que está errado. Este não é o objetivo. O objetivo é acordar um conjunto alcançável de objetivos para o próximo sprint. Como especialista nessa tarefa, ele saberá melhor quanto tempo levará.
"Então, e se ele mentir ou simplesmente errar?" você diz. Na minha experiência, as pessoas subestimam mais porque temem ser baleadas por dar um palpite preciso. Outros sob estimativa acrescentam uma margem de segurança que equilibra tudo, e a pessoa preguiçosa e excêntrica superestima para que não precise se apressar. Dos três, o primeiro será captado no rastreamento de velocidade, o segundo, com o som errado, está funcionando e o terceiro é algo com o qual você deve lidar fora do scrum.
A reunião diária ainda oferece benefícios. Existem dependências entre os membros da equipe, mesmo que sejam especialistas. O cara da interface do usuário pode estar esperando o cara do servidor para corrigir um erro de notificação. O funcionário do servidor pode estar esperando o funcionário de matemática para descobrir por que um cálculo está errado. Também não se trata apenas de como o trabalho deles afeta você. Se um membro da equipe estiver constantemente atrasado por causa do "Motivo X", mas não tiver tempo para mitigar ocorrências futuras do "Motivo X", isso poderá ser contestado.
fonte
Se você tem um especialista com qualificações como as que você descreveu, sua suposição de que cada um está trabalhando em sua própria tarefa, com pouca necessidade de se comunicar com os outros, está IMHO errado. De fato, para realizar um novo recurso (uma "história do usuário"), você frequentemente precisará
Então eu acho que eles terão que se comunicar muito mais como em uma equipe de generalistas, onde todos poderiam trabalhar em uma história de aplicativo / usuário diferente, fazendo todas as alterações necessárias em todas as camadas de aplicação por conta própria. Portanto, todas as atividades de equipe do Scrum listadas acima fazem muito sentido para essa equipe.
fonte
Certamente, o Scrum ainda é apropriado para sua situação, mas outras estruturas também poderiam.
Para oferecer novos recursos, você provavelmente precisará de todas ou muitas dessas habilidades. Para que a equipe tome decisões que impactam uma à outra e trabalhe em conjunto, elas precisam se comunicar. Quanto maior o tempo entre as reuniões do Scrum, mais um plano negativo pode se desviar da equipe. Reunindo-se diariamente, a equipe pode resolver essas situações rapidamente e elaborar um novo plano.
Gostaria de abordar alguns tópicos específicos que você mencionou também:
Equipes multifuncionais Uma equipe seria considerada multifuncional se tiver todas as habilidades necessárias para cumprir uma meta de sprint e / ou um item de lista de pendências do produto. Isso não significa que existem 2 pessoas para cada trabalho.
Dimensionamento É importante lembrar que estamos dimensionando um problema ou necessidade comercial, não uma solução ou parte de uma solução. Por exemplo, integrar mídias sociais / Twitter em nosso site de comércio eletrônico é um problema que requer UX, design de interface do usuário, programação, banco de dados e conhecimento da API do Twitter. Uma equipe deve dimensionar isso como uma unidade, pois eles, como equipe, entregarão essa funcionalidade. Esse tamanho não será 100% preciso, mas descobrimos que, agregadas, as previsões baseadas no tamanho relativo são mais precisas. Isso significa que alguns serão altos, outros serão baixos e, juntos, a previsão calculada é mais precisa do que a duração estimada.
Planejamentos inúteis da primavera O planejamento da sprint é um momento para colaborar como uma equipe Scrum (equipe de desenvolvimento + proprietário do produto + mestre Scrum) para determinar o que deve ser produzido e elaborar um plano para começar. Algumas equipes dividem esses itens do Backlog do produto escolhidos em tarefas, enquanto outros criam seu próprio caminho para progredir, como testes que precisam passar (pense no XP).
Essa é uma colaboração bidirecional. Atribuir à equipe um conjunto de PBIs e dizer "ir" é o papel de um ditador. A equipe está negociando com o Dono do produto para maximizar o tempo no sprint.
Métrica inútil de velocidade da equipe Com as equipes dimensionando os problemas e as necessidades da empresa que cortam a arquitetura / sistema e a experiência passada, informando quantos da equipe foram entregues em uma caixa de tempo consistente (sprint), agora podemos fornecer uma previsão da equipe para o restante da lista de pendências.
Novamente, não há dois sprints iguais e, quanto menor o conjunto de amostras de itens do Backlog do Produto que você usar, menor será o erro nas estimativas. Pense nisso como o mercado de ações; sempre subiu, mas isso não significa que não temos anos em baixo. No total, você pode ganhar dinheiro, mas em qualquer mês, trimestre ou ano, você vai adivinhar errado.
Substituir reuniões de scrum diárias por reuniões de scrum semanais (mais longas) O Daily Scrum existe para fornecer à equipe um ciclo de feedback de 24 horas e oportunidade de planejar as próximas 24 horas. Nada mais nada menos. As "três perguntas" são destinadas a ajudar a facilitar esse esforço.
Se você não receber feedback por cinco dias, acredito que suas tarefas não são suficientemente detalhadas. Esta é simplesmente a minha opinião, mas é baseada na minha experiência como treinador e membro da equipe. As equipes devem conversar, planejar e integrar seus esforços MUITO mais frequentemente.
Conclusão O Scrum tem como objetivo facilitar o aprendizado e equilibrar esse aprendizado com a entrega (onde o aprendizado real acontece). Experimente seus processos e ferramentas ao longo do tempo e use o Scrum para inspecionar o impacto. Tente passar do Scrums diário para o semanal e veja se isso ajuda ou prejudica a capacidade das equipes de oferecer a funcionalidade correta. Isso pode funcionar para você.
fonte