terça-feira, 10 de julho de 2012

Scrum: quais os diferenciais desta metodologia?


Ele é considerada hoje o melhor caminho para investir no desenvolvimento ágil de software, tornando mais controlável as mudanças que poderiam acontecer durante os projetos.

Atualmente, a complexidade dos softwares é algo que vem crescendo constantemente, junto com a necessidade dos sistemas incorporarem diversas funcionalidades. Para lidar com isso, algumas empresas investem em metodologias de gerenciamento, como o Scrum, que é  aplicada  ao desenvolvimento de projetos, em busca de melhor controle sobre o planejamento estratégico, técnicas e qualidade do software. Considerada uma metodologia ágil de gerenciamento de projetos executados por pequenas equipes, auto-organizáveis e que trabalham com entregas cíclicas, tornando o desenvolvimento do projeto algo iterativo, o Scrum pode ser utilizado em projetos que não estejam ligados ao desenvolvimento de software, embora seu uso concentre-se nesta área.

Mas, quais seriam os diferenciais desta metodologia? Basicamente, ela apresenta-se como uma maneira alternativa para o gerenciamento de projetos, que não possam ter todo seu processo definido, tornando mais controlável as mudanças que poderiam acontecer durante o desenvolvimento. Ou seja, o Scrum defende que um projeto seja executado em pequenas etapas, com no máximo 30 dias, chamadas de sprint, e que ao término de cada etapa, o produto desenvolvido possa ser entregue para avaliação do cliente. Vamos ver como isso funciona na prática?

A primeira atividade é uma reunião de planejamento, para definir um escopo de entregáveis, em um período de três ou quatro meses, dependendo do tamanho do projeto. Nesta reunião são levantados os cenários mínimos necessários para que essa entrega seja feita, etapa em que os cenários são descritos pelo dono do produto, junto com o ScrumMaster e a equipe completa, de uma forma menos detalhada, focando em regras de negócio mais importantes e funcionalidades prioritárias. Em seguida, é montado um backLog, com os cenários da entrega.

Feito isso, são planejados sprints, de uma ou duas semanas, em que os cenários vão sendo implementados, testados, entregues e validados pelo dono do produto. A cada reunião de sprint, cada cenário é detalhado tecnicamente pelo time de desenvolvedores em conjunto com o ScrumMaster, para verificar quanto tempo e esforço serão necessários para desenvolver cada um deles. É importante frisar que o resultado de um sprint é um cenário vertical, entregue e validado pelo próprio dono do produto. Ou seja, todo final de sprint deve agregar valor ao produto, com funcionalidades que possam ser testadas por ele.

Para que você possa entender melhor, o Scrum define papéis a todos os envolvidos no projeto, e tarefas são repassadas a cada um. Acompanhando um raciocínio, a definição dos papéis engloba (SANCHES, 2011):

- Dono do produto: define as funcionalidades do produto, prioridade de entrega, data de início do projeto e validação das entregas realizadas. Responsável por priorizar backlog e conhecer muito bem o roadmap do produto, pela rentabilidade do projeto e as alocações dos recursos necessários para a execução (responsabilidade exercida pelo Scrum Master ou pelo líder técnico da equipe, em conjunto com o dono do produto);

- ScrumMaster: gerente do projeto e intermediador da equipe, responsável por garantir que não haja obstáculos que afetem a produtividade, ou funcionalidade, evitando interferência externa. A responsabilidade principal é fazer com que as práticas propostas pelo Scrum sejam realizadas: reuniões diárias, de sprint, e de planejamento; incentivar a atualização dos quadros de Scrum; alinhar expectativas do dono do produto junto com a equipe; tratar conflitos entre PO, desenvolvedores e outros stackholders do projeto. Tudo isso para garantir que o time tenha tudo que é necessário, para poder trabalhar focado nas entregas.

- Equipe: no máximo com nove integrantes, é responsável pelo desenvolvimento das tarefas definidas. O Scrum não especifica papéis aos integrantes, tornando a equipe auto-organizável. Os integrantes devem ser multi-funcionais e atuar em tarefas de diversas. 

Com base na metodologia, o Scrum define que, durante a fase inicial do projeto, cabe ao dono do produto elaborar uma listagem das funcionalidades que deverão ser entregues e organizá-las de acordo com a importância. Depois, a equipe deve realizar uma estimativa de tempo necessário para a conclusão de cada tarefa, que deve ser disposta em uma lista (produto backlog). Definido o produto backlog, é dado início ao projeto na data combinada.

Desenvolvido de forma interativa, são agendadas reuniões no início de cada sprint. Além disso, os itens alocados no produto backlog devem ser movidos para uma listagem de tarefas da sprint, denominada sprint backlog, de acordo com o tempo necessário estimado e o disponível, durante a realização do sprint.

No período de execução da sprint, a equipe e o ScrumMaster devem realizar curtas reuniões diárias, para que cada integrante apresente o que foi feito, o que será produzido e se existe algum impedimento na ação. Ao término da sprint, todas as funcionalidades desenvolvidas devem ser apresentadas ao dono do produto, que irá validar a entrega, aceitando ou não o resultado. Por fim, antes do início de uma nova sprint, equipe e ScrumMaster devem realizar uma nova reunião para discutir e montar um feedback, a respeito de problemas enfrentados na iteração anterior, e discutir o que pode ser alterado para as próximas iterações. Em seguida, novas reuniões são definidas, e este ciclo repete-se até o fim do projeto. Vamos começar?

(*) Rafael Gilberto Dalosto é líder de equipe e desenvolvedor na Informant, empresa especializada na prestação de serviços terceirizados em Pesquisa e Desenvolvimento de Software. Atua desde 2010 na área de desenvolvimento de projetos de software, com uso de  metodologias ágeis.

Nenhum comentário:

Postar um comentário