Metas do Scrum
Em Scrum a promessa de bons frutos é grande, mas o caminho para chegar lá é sinuoso. Uma das razões que torna a adoção de Scrum mais difícil é a estimativa do tempo necessário para o desenvolvimento.
Técnicas waterfall costumam ter uma previsão muito apurada da data que o desenvolvimento termina. Esta previsão dá uma sensação muito boa para os gerentes de controle, além de simplificar a geração de relatórios para a direção. Assim, seguindo o cronograma original, será possível ter o sistema pronto para ser utilizado pelo usuário na data exata.
Nesta estimativa os gestores fazem hipóteses sobre o futuro, estimam o tempo necessário para cada requisito e analisam dependências entre atividades de desenvolvimento. O resultado é colocado em um gráfico de Gantt. Para dar mais credibilidade às estimativas alguns gestores adicionam um tempo à data de lançamento, afinal imprevistos acontecem.
Ao longo do projeto os imprevistos são maiores que se podia imaginar. Dificuldades de implementação vão aparecendo. Requisitos antes considerados importantes agora são irrelevantes, e outros requisitos são adicionados. O gráfico de Gantt perde credibilidade. É comum projetos de dezoito meses durarem trinta e seis meses.
Ao final, se o sistema não estiver pronto para ser utilizado pelo cliente na data certa, é porque houve um erro de estimativa ou na gerência do projeto. Alguns argumentos que seguem ao atraso são: que é preciso melhorar nossas estimativas, é necessário melhorar as técnicas de gerenciamento de projeto.
Para resolver este problema, considere algumas suposições. Se os requisitos iniciais (upfront) obtidos possivelmente serão alterados radicalmente, um sistema que adapte rapidamente para alterações possivelmente trabalhará melhor. Se as estimativas dos desenvolvedores são ruins, encontre um jeito de mapear estimativas de desenvolvedores no tempo de desenvolvimento atual. Se o planejamento caro e adiantado dá resultados levemente melhores ou piores que não planejar nada, então o plano sobre pequenos horizontes é melhor que longos.
Scrum é gerenciamento de software e técnicas de planejamento que balanceiam estas metas:
- stakeholder pode re-priorizar ao menos mensalmente;
- quem vem de fora pode fazer experimentos com implementações parciais de primeira mão;
- desenvolvedores podem prever datas de liberação baseados em um conjunto de características;
- stakeholders podem prever datas de liberação baseados em um conjunto de características;
- desenvolvedores podem focar em trabalho ininterrupto, enquanto estão comunicando simultaneamente em reuniões estruturadas e altamente controladas;
- desenvolvedores podem refinar seus processos e trabalhar atividades através de retroinformação e auto-organização.