O que é e quem usa Scrum?
Scrum é uma forma diferente de se trabalhar, utilizada por equipes para gerenciar o desenvolvimento de produtos. Não é bem uma metodologia: por ser muito simples, leve e adaptável, dizemos que é um framework – uma estrutura básica, que deve ser completada com outras partes para funcionar bem.
Scrum vem sendo usado com muito sucesso em projetos de desenvolvimento de software para diferentes finalidades, em organizações de todos os tipos e tamanhos. Mas, além de software, há várias outras aplicações.
Mas… por que utilizar Scrum?
Dando boas-vindas à mudança. Imagine um mundo em que grande parte dos projetos de desenvolvimento de software falham. Nesse mundo, os profissionais que realizam esse trabalho têm pouquíssima credibilidade. Eles não cumprem o que prometem: os projetos atrasam, estouram o orçamento e muitas vezes não são o que o cliente precisa. Por outro lado, o cliente não sabe o que quer. Ele fica solicitando mudanças durante todo o projeto e nunca está satisfeito. Soa familiar?
Pois é. A forma tradicional de se desenvolver software reinou por décadas, mas nunca funcionou bem. Nela, o cliente é interrogado logo no início do projeto sobre tudo o que deseja. Um plano longo e detalhado é criado e amarrado em um contrato. Para se obter o sucesso, cada passo desse plano deve ser seguido por todo o projeto. Mudanças tem um custo alto e, claro, são extremamente indesejadas.
Mas essa rigidez sempre esbarra em um problema muito sério: os clientes não sabem tudo o que precisam desde o começo do projeto! Longe disso! Eles só vão entendendo os detalhes do que de fato lhes trará valor à medida que vão recebendo e utilizando partes prontas do produto (veja o artigo “O ‘todo’ não existe!”). Assim, forçá-los a detalhar tudo no começo nos leva a criar um produto que não atende às necessidades do cliente!
Scrum veio para mudar isso. Que tal planejar e desenvolver o produto aos poucos, gerando algo pronto, funcional e, portanto, de valor, a cada algumas semanas? Assim, podemos mostrar e entregar com frequência para os clientes essas partes do produto funcionando. Que tal priorizar esse trabalho, gerando o produto a partir das necessidades mais importantes do cliente? Para isso, os próximos passos do que será feito podem ser decididos a partir do feedback recebido desses clientes, cada vez que mostramos ou entregamos algo. Um projeto com Scrum funciona assim.
Compartilhando as responsabilidades. Outra característica dos projetos tradicionais é a existência de um Gerente de Projetos poderoso, centralizador, que monitora cada passo da equipe, buscando evitar que saiam da linha. Ele pratica o que chamamos de microgerenciamento. De quem realmente é a responsabilidade pelo sucesso ou fracasso do projeto? Dele.
Papéis do Scrum
No Scrum, a equipe que faz o desenvolvimento do software – ou Time de Desenvolvimento – possui mais autonomia e seus membros compartilham a responsabilidade pelos resultados do que produzem, trabalhando orientados a gerar valor para os clientes. Não existe o “meu” e o “seu”, mas sim o “nosso”. Os membros da equipe trabalham juntos, atendendo às necessidades de negócio dos clientes desde as mais importantes. E, assim, compartilham seus conhecimentos, crescendo juntos como equipe.
Scrum traz ainda a figura de um facilitador, chamado de ScrumMaster, que remove impedimentos ao trabalho da equipe, promove mudanças na empresa importantes para aumentar a efetividade da equipe, ensina os processos e trabalha para aumentar a autonomia da equipe.
O Product Owner é o responsável por definir o produto. Ele o faz incrementalmente, a partir do contato com clientes, usuários e outras partes interessadas. Para realizar esse trabalho, ele deve colaborar com os membros do Time de Desenvolvimento ao longo de todo o projeto, de forma que possam, juntos, maximizar o retorno sobre o investimento realizado pelos clientes.
A responsabilidade pelo sucesso do projeto é compartilhada entre os três papéis do Scrum: Time de Desenvolvimento, Product Owner e ScrumMaster.