Algumas informações básicas
Faço parte de uma equipe interna de desenvolvimento de software. Isso consiste de
- 5 desenvolvedores (com experiências que variam de 2 a 5 anos, eu sou um deles)
- 3 funcionários de implementação (eles fazem a implantação e o treinamento do software)
- e 1 gerente de projeto.
Desenvolvemos muitos projetos de pequeno a médio porte, e seus prazos geralmente se sobrepõem. O desenvolvimento é assim:
- "Cliente" nos fornece um conjunto de requisitos iniciais
- Desenvolvemos o sistema para a referida especificação
- Apresentar o referido sistema ao "cliente"
- "Cliente" nos fornece requisitos adicionais com base na referida apresentação
- Repita de 2 a 4 até que o "cliente" fique sem novos requisitos ou a data de destino da implantação esteja próxima
- Configurar e implantar o sistema
Isso, junto com o fato de ser o "cliente" que lida com os prazos na maioria das vezes (o que é uma bandeira vermelha, pelo que vejo aqui em Programadores e PM.SE) e não seguimos uma metodologia definida de desenvolvimento à codificação de cowboys, código quase impossível de manter e bugs que passam pela produção, entre outras coisas. Por isso, optamos por adotar uma metodologia baseada em Agile como Scrum.
Por que Scrum?
Foi uma iniciativa do nosso gerente, e todos parecem concordar com isso, dada a nossa situação atual.
O problema com o Scrum
Alguns dos elementos do Scrum estão em conflito com a nossa configuração atual que não podemos resolver com facilidade, particularmente a natureza do "pau para toda obra" dos desenvolvedores Agile. A equipe de implantação não sabe como programar e os desenvolvedores têm habilidades de comunicação e treinamento abaixo da média. E essa formação não vai mudar tão cedo.
A questão
Isso afetaria a efetividade do Scrum como metodologia? Outras mudanças precisariam ser feitas para compensar? Ou seria melhor abandonar completamente o pensamento e pensar em uma metodologia diferente?