Recentemente, ingressei em um jovem hackerspace ainda em processo de criação. Temos sorte porque o espaço possui alguns projetos internos que precisam ser trabalhados e falta de voluntários para trabalhar neles.
Houve algumas discussões sobre como organizar esses projetos. Minha experiência profissional mais recente foi no Scrum, por isso estou pensando em lançar uma abordagem Scrum para nossos projetos de software, mas não tenho certeza de que será uma boa opção.
Embora eu tenha visto o Scrum funcionar bem para pequenas equipes de tempo integral, a natureza desta organização é diferente:
- Os membros são voluntários . Alguns são estudantes em período integral. Outros trabalham empregos em período integral. Não podemos esperar um nível constante de contribuição de ninguém, pois suas vidas reais têm prioridade.
- Embora quase todo mundo tenha anos de experiência na criação de software, poucos membros o fizeram profissionalmente ou em equipes.
- Não há proprietário do produto . Os requisitos para esses projetos são determinados por um comitê. Os membros desse comitê também estarão trabalhando na implementação. Isso significa que não teremos um único e dedicado Product Owner.
- Não temos prazos (flexíveis ou rígidos). Os projetos serão concluídos quando concluídos.
Essas são diferenças bastante significativas, mas não estou convencido de que serão bloqueadores da aplicação do Scrum. Eu acho que alguns pequenos ajustes podem nos superar esse obstáculo:
- Se mudarmos o Sprints para ter um tamanho fixo de história, mas com uma duração fluida (tempo), ainda podemos nos beneficiar de lançamentos iterativos sem colocar pressão de entrega irreal sobre desenvolvedores voluntários.
- Podemos abandonar gráficos de burndown e cálculo de velocidade . Se bem entendi, essas são ferramentas e métricas que funcionam como uma ponte entre a equipe de desenvolvimento e o gerenciamento. Eles servem para relatar o progresso de uma forma que seja significativa para os desenvolvedores e as partes interessadas. Considerando que não temos ninguém com quem reportar (nenhum gerente de projeto, nenhum proprietário do produto e nenhuma parte interessada), acredito que podemos abandonar isso completamente.
As coisas que acho que poderíamos nos beneficiar não exigirão ajustes:
- As reuniões de reunião de requisitos . Onde todos se sentam ao redor de uma mesa e discutem histórias de usuários, esboçam simulações de interface do usuário e constroem um Backlog do produto.
- Retrospectivas da Sprint . Essa será uma maneira interessante de convergir para um processo de desenvolvimento que funcione para nós como uma equipe de voluntários.
Coisas sobre as quais não tenho certeza:
- Como devem ser tratados os Stand-ups diários ? Eu me pergunto se eles teriam muito valor em nosso ambiente. Meu entendimento do ritual de stand-up é que ele ajuda a comunicação naturalmente disseminando informações por toda a equipe. Considerando o fato de que nossos Sprints provavelmente oferecerão muito menos complexidade do que um Sprint médio, pode haver menos necessidade de estar a par dos progressos / desenvolvimentos de todos os outros membros da equipe.
- Devo pressionar para o XP coisas como Integração Contínua, Revisões de Código e TDD? Estou preocupado que isso esteja pedindo muito. Eu ficaria mais tentado a incorporar esses conceitos em projetos futuros quando as pessoas estiverem mais familiarizadas com o Scrum e trabalhando em equipe.
Minhas perguntas:
O Scrum pode ser adaptado a um ambiente voluntário?
E, minha abordagem planejada está indo na direção certa até agora?