Desenvolvimento

14 mai, 2010

Filosofia ágil: Uma introdução ao Scrum

Publicidade

O Scrum é uma metodologia ágil para gerenciamento de projetos de qualquer natureza, conceitualmente concebido para ser aplicado em projetos do setor automobilístico e de bens de consumo. Sua primeira publicação foi realizada em 1986 por Takeuchi e Nonaka, partindo da análise de bons resultados obtidos com trabalhos realizados por equipes menores e multidisciplinares.

Em 1993, Jeff Sutherland, John Scumniotales e Jeff McKenna implantaram a metodologia na empresa Easel Corporation, seguindo a proposta de Takeuchi e Nonaka. A projeção mundial do Scrum ocorreu a partir de 1995, quando Ken Schwaber formalizou a definição e difundiu sua utilização em projetos de desenvolvimento de software.

Nos últimos anos, as metodologias ágeis de desenvolvimento de software vêm chamando a atenção dos profissionais, e Scrum tem se tornado bastante conhecida. A metodologia consiste, fundamentalmente, em particionar a massa de trabalho em ciclos menores, os sprints, comumente com duração de até quatro semanas e com objetivos explicitamente definidos, caracterizando um processo iterativo de desenvolvimento.

O ponto de partida é a elaboração de uma lista de requisitos com as funcionalidades a serem implementadas pelo projeto, conhecida como product backlog, e tipicamente definida com a participação ativa do cliente.

Com o product backlog criado, parte-se então para o planejamento do primeiro ciclo do projeto através de uma reunião entre a equipe (scrum team), o scrum master (responsável pelo projeto), o product owner (responsável pela definição e priorização dos requisitos) além de outras pessoas com interesse no projeto ou diretamente ligadas a ele.

Esta reunião é conhecida como sprint planning meeting e foca na priorização e seleção dos requisitos contidos no product backlog, resultando no sprint backlog, ou seja, uma lista com as atividades possíveis de serem executadas no próximo sprint, através das quais será possível atingir o objetivo definido para o ciclo. O que foi definido para o sprint backlog fica como compromisso para a equipe, devendo ser cumprido no final do sprint planejado.

Durante todos os dias do sprint, a equipe de Scrum se reune para a daily scrum, como é conhecida a reunião diária de acompanhamento do projeto. A pauta da reunião é bastante simples: o scrum master recebe feedback da equipe sobre as atividades que foram executadas no dia anterior, os planos de trabalho para o dia atual, além dos problemas enfrentados pelos integrantes do time.

Uma boa prática para tornar a daily scrum mais eficiente é realizá-la com todos os participantes de pé e em frente a um quadro de anotações, que pode ser útil numa possível discussão de ideias.

No término de cada sprint a equipe se reúne novamente para a sprint review meeting, onde são apresentadas as atividades desenvolvidas na iteração. Durante este encontro, o trabalho executado é analisado e é verificado o atendimento ao objetivo definido no início do sprint. Mais importante do que finalizar todas as atividades eleitas para o sprint é atender ao objetivo estabelecido.

Pode ser realizada também, na conclusão do sprint, uma retrospectiva da execução dos trabalhos, onde são observados os fatos que funcionaram de maneira agradável e aqueles que merecem atenção nos próximos sprints.

Isso é Scrum, uma metodologia ágil voltada ao desenvolvimento de projetos através de uma abordagem empírica e cíclica, perfeitamente alinhada ao mercado de software. O foco está na criação de equipe mais eficientes, dinâmicas e com alto nível de envolvimento e comunicação.