O Scrum não é um processo ou uma técnica para construir produtos, ao invés disto é um framework no qual se podem empregar várias técnicas ou processos, para melhorar as práticas de desenvolvimento e gestão do produto.
O Scrum é um framework de processo que tem sido usado para administrar o desenvolvimento de produtos complexos desde o início dos anos 90. O nome Scrum é derivado de uma atividade que ocorre dentro de um jogo chamado Rugby. O Scrum dentro do jogo de Rugby significa que o jogo deve recomeçar, sempre que uma regra é infringida.
O framework do Scrum consiste de Scrum Teams, seus papéis, eventos, artefatos e regras. Cada componente dentro do framework serve a um propósito específico e é essencial para o uso e sucesso do Scrum.
A Teoria do Scrum
O Scrum é fundamentado na teoria de controle do processo empírico, ou empirismo. O empirismo afirma que o conhecimento vem da experiência e tomadas de decisões baseado no que é conhecido. O Scrum emprega uma abordagem iterativa e incremental, para aperfeiçoar a previsibilidade e controlar os riscos.
Três pilares apoiam toda a implementação de controle de um processo empírico: transparência, inspeção e adaptação.
Transparência
Os aspectos do processo devem ser visíveis pelas pessoas responsáveis pelo resultado. A transparência requer que estes aspectos sejam definidos em um padrão comum, de forma que os observadores compartilhem o mesmo entendimento do que está sendo visto. Um exemplo de transparência é definir que todos os participantes do processo, utilizem uma linguagem comum, para que todos tenham o mesmo entendimento.
Inspeção
A inspeção deve ser feita durante todo o processo de trabalho, para detectar se ocorreram variações indesejáveis no processo. Mas é preciso ter cuidado para que as inspeções não sejam frequentes demais, de forma a atrapalhar o andamento do trabalho. A inspeção é mais eficiente se as pessoas que executam são conhecedoras do assunto
Adaptação
Se o inspetor detecta que um ou mais aspectos do processo sofreu desvios de forma que o produto resultante seja inaceitável, o processo deve ser ajustado. O ajuste deve ser feito o mais rápido possível para minimizar futuros desvios.
Exemplo de Scrum
Normalmente encontramos muita teoria do que é o Scrum, mas não encontramos com facilidade publicações de exemplos práticos de empresas que adotaram o Scrum.
Nesse post inseri dois exemplos de utilização, um com uma aplicação na área de software e o outro na área de construção. Os exemplos tem um link para os artigos com a história completa, detalhando a utilização do Scrum no processo de desenvolvimento do produto. Os artigos estão originalmente em inglês.
Scrum Aplicado em Projeto de Software nas Ferrovias Holandesas
A ferrovia holandesa tinha a necessidade de desenvolvimento de um software de informações de viagens para os passageiros. As informações como horários, destinos, intervalos, deveriam ser exibidas em displays e comunicadas através de som automaticamente.
A ferrovia contratou uma consultoria que aplicou o Scrum no desenvolvimento do projeto, utilizando equipes na Índia e na Holanda. O projeto era muito grande envolvendo várias equipes localizadas nos dois países, e com uma integração complicada com outros produtos, além de possuir uma interface de usuário bem complexa.
Uma das exigências do cliente neste projeto era ter a possibilidade de ver o projeto funcionando em etapas, desde o início e não somente na entrega final do produto. Com a utilização do Scrum foi possível fazer entregas incrementais e permitir uma maior participação do cliente em todas as fases. Também permitiu um melhor gerenciamento de todas as equipes envolvidas no projeto.
O artigo descreve detalhadamente como foi todo o processo de desenvolvimento, bem como as dificuldades e as lições aprendidas sobre o início do projeto, a importância da escolha do dono do produto (Product Owner), a importância de estimativas, a efetividade da comunicação e a importância de uma documentação bem elaborada.
A história completa está descrita no artigo
Case Study: Distributed Scrum Project for Dutch Railways.
Scrum Aplicado em Projeto de Construção de Viaduto
Na Índia em Bangalore, existia a necessidade de construir dois viadutos um para cada sentido, para melhorar o tráfego na região. A estimativa do projeto era de entregar os viadutos em dezoito meses.
A ideia era construir duas rotas temporárias uma para cada sentido antes de construir os viadutos, para desviar o tráfego da área de construção. Com a utilização do conceito incremental foi construída uma rota temporária e um viaduto, que ficou pronto em nove meses, e já passou a ser utilizado pelos usuários.
Como um viaduto estava pronto, ele começou a ser utilizado pelos usuários, ao invés de ter que construir a outra rota temporária para o outro sentido. Nos nove meses restantes foi construído o segundo viaduto.
A utilização do Scrum neste caso com a entrega incremental se mostrou eficaz tanto para o projeto como para os usuários, que tiveram a entrega de um viaduto na metade do tempo sem a necessidade de construir duas rotas temporarias.
O detalhe completo do projeto está descrito no artigo
A Real Life Example of Agile.
Como podemos observar nos exemplos de Scrum, ele pode ser aplicado tanto na área de software onde a utilização é mais conhecida, como em várias outros áreas de projetos complexos.