Desenvolvimento De Aplicativos Em Scrum

Metodologia Scrum para o desenvolvimento de Aplicativos

Como a Metodologia Scrum é utilizada em projetos de Aplicativos?

O gerenciamento de projetos pode se dar através de diversas metodologias. A escolha daquela que é mais apropriada a situação está diretamente relacionado ao sucesso do mesmo. No contexto do desenvolvimento de aplicativos é fundamental que o gerenciamento se de maneira flexível, ágil e transparente ao cliente. Atendendo a essas demandas surge o Scrum, metodologia cada vez mais utilizada na área da Tecnologia da Informação.

Por que desenvolver aplicativos em Scrum?

A grande questão do desenvolvimento de aplicativos é que, em geral, não se sabe ao certo como ele irá ficar no final do processo. Existe uma ideia inicial e funcionalidades fundamentais sobre o qual o aplicativo será construído, mas apenas durante o desenvolvimento se tornam claros os recursos e as características que permitirão ao aplicativo cumprir sua finalidade e lhe darão sua identidade.

Durante o desenvolvimento de aplicativos surge a necessidade de diversas funcionalidades que, embora não tenham sido pensadas no início do processo, agregam muito ao produto final de modo que por vezes são até essenciais para que ele cumpra seu papel. Em contrapartida podem haver outras que no começo do desenvolvimento faziam todo sentido mas que acabam se revelando desnecessárias.

Além da parte funcional do aplicativo existe também a questão do design. É muito difícil para o time de desenvolvimento criar um aplicativo que tenha as características desejadas pelo cliente e que funciona exatamente da maneira que ele espera apenas com uma descrição inicial de como tudo deve ser. Para que o aplicativo fique como esperado o processo de desenvolvimento deve ocorrer em ciclos nos quais uma pequena parte do projeto é desenvolvida e em seguida mostrada ao cliente que validará ou requisitará uma mudança encerrando o ciclo.

Nesse contexto, o Scrum se adequa perfeitamente ao desenvolvimento de aplicativos uma vez que atende todas essas questões intrínsecas ao processo. Ele atende a necessidade do escopo abertopois não depende de uma ideia completamente desenvolvida para que se inicie o desenvolvimento do projeto, a necessidade de comunicação com o cliente já que ele é parte fundamental do projeto de desenvolvimento na metodologia e a necessidade do desenvolvimento cíclico já que é subdividido em períodos do tempo.

Mas o que exatamente é Scrum?

O Scrum é uma metodologia ágil de gerenciamento. No começo de cada projeto é definido o conjunto inicial de todas as Histórias, unidade no qual o trabalho a ser realizado é dividido, que o aplicativo deverá ter, no contexto da metodologia chamamos esse conjunto de Product Backlog. Ele é dividido em Sprints, ciclos de desenvolvimento de duração pré-definida.

Em cada Sprint os envolvidos no processo se reúnem e discutem quais Histórias deverão ser desenvolvidas durante a mesma, essa reunião se chama Sprint Meeting. Além da Sprint Meeting há outra reunião no final da sprint chamada Sprint Review. Nela o cliente avalia tudo que foi feito durante a sprint, caso ele não aprove o resultado de alguma História ela voltará para o Product Backlog e será refeita em uma sprint futura.

E o que seria uma história?

As histórias são a menor unidade de trabalho dentro do Scrum, o conjunto de histórias a serem desenvolvidas em um ciclo é uma Sprint Backlog e o conjunto das histórias de todas as sprints é o Product Backlog. Podemos pensar em uma história como uma maneira lúdica de representar uma funcionalidade do aplicativo.

Histórias não possuem detalhes técnicos ou instruções de desenvolvimento, ao invés disso elas descrevem uma funcionalidade vista pela perspectiva do usuário. Para assegurar que as histórias possuam essas características elas são escritas em um formato bem definido:

Eu, como [usuário que se beneficiará da funcionalidade], gostaria de [funcionalidade a ser implementada] para que [motivação para desejar a funcionalidade].

Por exemplo, uma história de um usuário logado no aplicativo que se beneficia de uma opção de mudar a senha seria algo como:

Eu, como usuário logado, gostaria de ter uma opção “Alterar a Senha” para que possa mudar a senha que eu defini durante o cadastro.

As histórias são, em geral, independentes entre si. Por causa disso não há uma ordem certa para que elas sejam implementadas, o cliente que define no início do projeto quais devem ser executadas primeiro baseado no quão importante ele considera aquela história.

Definida a importância de cada história é necessário definir o quão difícil ela é de ser implementada. Para isso utiliza-se o sistema de pontuação. Cada história recebe uma quantidade de pontos, essa quantidade pode ser 1, 2, 3, 5, 8,13 ou 21 sendo 1 uma história muito simples e fácil de ser implementada e 21 uma história complexa de difícil implementação.

Uma vez que as histórias tenham sido priorizadas e pontuadas elas podem começar a ser divididas em sprints. As histórias consideradas mais importantes são divididas entre as sprints iniciais. Para garantir que é viável executar as histórias alocadas em uma determinada sprint define-se que a total de pontos de todas as histórias a serem executadas em uma sprint não deve passar de 21.

Quem participa do desenvolvimento em Scrum?

Uma vez esclarecido o porquê do desenvolvimento de aplicativos em Scrum e como ele funciona é necessário esclarecer quem são os protagonistas do processo de desenvolvimento em Scrum bem como definir quais são seus papéis.

A primeira peça fundamental do conjunto de pessoas envolvidas com o projeto é o Development Team. Os indivíduos que fazem parte dele são os responsáveis pela parte da programação de fato. Eles irão desenvolver o aplicativo implementando as funcionalidades requeridas pelo cliente e darão as características definidas por ele.

O Development Team é comandado por uma pessoa que fica responsável por monitorar o desenvolvimento, dialogar com o cliente e assegurar que as diretrizes definidas por ele estejam sendo implementadas. A esse indivíduo responsável pelo gerenciamento do Development Team e por servir de interface com o cliente damos o nome de Scrum Master.

O Scrum Master e o Development Team são, em geral, funcionários da empresa contratada pelo cliente para desenvolver o aplicativo mas ainda existe uma outra peça fundamental para o processo: o próprio cliente. O envolvimento do Product Owner, que é como o chamamos no contexto do Scrum, é imprescindível para que o aplicativo reflita suas expectativas.

Mas, qual o papel do cliente no processo de desenvolvimento de aplicativos em Scrum?

Diferente do que acontece em outras metodologias de gerenciamento o cliente participa ativamente do processo de desenvolvimento no Scrum. No papel de product owner o cliente fica responsável por dar as diretrizes a serem seguidas pelo Scrum master e pelo development team. Dessa forma é possível garantir que o produto final ficará como ele deseja.

O product owner começa a participar desde a criação do product backlog. Ele se reúne com os outros envolvidos e juntos eles pensam quais funcionalidades e, por consequência, histórias o aplicativo deverá ter. Em seguida o product owner priorizará as histórias dando maior importância àquelas que ele deseja que sejam executadas primeiro.

Iniciado o processo de codificação o product owner, em conjunto com o Scrum master, definirá durante as sprint meetings quais histórias serão desenvolvidas na sprint subsequente. Além disso, é durante essa reunião com o Scrum master que novas histórias inicialmente fora do product backlog podem ser adicionadas a ele caso o cliente deseje adicionar novas funcionalidades ao aplicativo.

No final de cada sprint o product owner se reúne novamente com o Scrum master na sprint review. Nesse momento o product owner irá avaliar o resultado de cada história e decidir se ela ficou de acordo com sua expectativa ou se ela deve voltar para o product backlog.

É justamente esse acompanhamento desde o início do projeto até o final da última sprint que garante um resultado final extremamente personalizado. O ciclo de validação após cada sprint impede que o projeto se distancie da expectativa do cliente deixando-o sempre próximo daquilo que o product owner deseja que ele seja.

Recapitulando…

Por que Scrum para o desenvolvimento de aplicativos?

Porque ele é rápido ágil e personalizado.

Como se organiza o desenvolvimento de funcionalidades?

Através da criação de histórias, ou seja, descrições das funcionalidades a partir da ótica do usuário.

Como criar as Histórias?

Seguindo o modelo de história e pontuando ela de acordo com a dificuldade com um número que pode ser 1, 2, 3, 5, 8,13 ou 21.

Quem participa do processo?

O Development Team, que é composto pelos programadores responsáveis pela codificação; o Product Owner, que é o próprio cliente e o Scrum Master, que deve atuar como interface entre o Development Team e o Product Owner além de gerenciar o processo de desenvolvimento.

Qual o papel do Product Owner?

Trabalhar em conjunto com o Scrum master para pontuar as histórias de acordo com sua urgência e dificuldade de implementação bem como escolher quais delas devem ser desenvolvidas na sequência e validar as já codificadas.

Para mais conteúdo como esse, continue lendo o nosso blog. Estamos sempre postando coisa nova e de diversos assuntos.

Paulo Gabriel Sarlo

Graduando em Engenharia Eletrônica e da Computação, atualmente trabalha na Fluxo como Consultor de Projetos.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *