Metodologia Scrum para desenvolvimento de aplicativos

Tags:    

Compartilhar no facebook
Compartilhar no twitter
Compartilhar no linkedin
Receba atualizações semanais no e-mail

Quando o assunto é metodologias para desenvolvimento de softwares, tem-se ouvido muito o termo “ágil”. Mas, você sabia que ele foi criado em 2001 por um grupo de desenvolvedores que sentiam a necessidade de algo transparente, rápido e adaptável? Assim, foi criado o Manifesto para Desenvolvimento Ágil de Software (Agile Manifest) que dizia o seguinte:

Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo. Através deste trabalho, passamos a valorizar:

Indivíduos e interações mais que processos e ferramentas

Software em funcionamento mais que documentação abrangente

Colaboração com o cliente mais que negociação de contratos

Responder a mudanças mais que seguir um plano

Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.

Com base nestes conceitos foram criados diversos frameworks, também chamados de metodologias ágeis. Todos tem seu devido valor, mas dentre elas existe uma que vem sendo cada vez mais utilizada, não só no desenvolvimento de aplicativos, mas em diversas outras áreas, o Scrum.

O que é Scrum?

O Scrum foi introduzido na década de 1980, mas sua popularidade só começou a crescer a partir dos anos 90, quando o desenvolvimento de software começou a tender para projetos menores, como aplicativos e tecnologia móvel.

Com uma abordagem direta, o que o torna atraente para muitos gerentes de projetos, o Scrum é a melhor solução quando o assunto é flexibilidade. Por isso, é amplamente utilizado no desenvolvimento de aplicativos, seja via outsourcing de desenvolvimento ou não. Em geral, a metodologia Scrum pretende fazer o seguinte:

  • Melhorar o atendimento ao cliente;
  • Entregar o software em um ritmo acelerado;
  • Promover o trabalho de equipe entre desenvolvedores e as partes interessadas;
  • Medir os resultados com base no trabalho concluído;
  • Permitir que as equipes se auto-organizem.

Projetos que podem ser separados em seções distintas de funcionalidade são particularmente adequados ao Scrum. Além disso, é importante que tais projetos possam ser entregues dentro de um prazo fixo, ou sprint, geralmente abrangendo uma ou duas semanas. Ao contrário das abordagens tradicionais, o Scrum não exige que a equipe crie requisitos detalhados antes que o trabalho possa começar.

A metodologia Scrum é flexível o suficiente para encurtar o tempo de preparação. E se a equipe receber um novo feedback ou houver mudanças do mercado, novas sprints podem ser introduzidas com relativa facilidade. Além disso, requer comunicação cara-a-cara regularmente (não literalmente, pois pode ser presencial ou virtual), e os papéis são claramente definidos para que cada membro da equipe conheça suas responsabilidades.

Para que a metodologia Scrum seja aplicada da melhor maneira é preciso uma boa gestão de tempo e ferramentas para gestão de equipe ao longo de todo o processo. Por isso, conhecer ferramentas para auxiliar nessa gestão é fundamental.

Como a metodologia Scrum funciona?

No rugby, Scrum é o momento no qual todos os jogadores colocam suas cabeças juntas. Da mesma forma, quando se trata do desenvolvimento de aplicativos, Scrum é o momento em que os desenvolvedores juntam suas cabeças para resolver problemas complexos.

O desenvolvimento começa com uma lista dos recursos a serem incluídos. Então, a partir deste ponto a equipe se reúne para discutir:

  • O backlog a partir do roadmap do produto;
  • O que ainda precisa ser completado;
  • Quanto tempo irá levar as demandas.

O cotidiano

Para acompanhar o cotidiano do desenvolvimento, são realizadas reuniões diárias chamadas dailys. Nelas as equipes se reúnem para discutir seu progresso desde a reunião anterior e fazer planos para o dia atual.

Para que sejam eficientes, as dailys não podem durar mais que 15 minutos. Logo, cada membro precisa estar presente e com suas falas preparadas. O objetivo é contar o progresso do dia anterior, as dificuldades e sucessos, pois, a partir daí, o Scrum Master irá dar direcionamentos. Afinal, este o SM é quem vai manter o time focado no objetivo.

A sprint

Como já foi possível perceber, sprint é uma das principais etapas dentro da metodologia Scrum. A sprint é a divisão dos processos a partir de um tempo determinado pela equipe para a realização de cada etapa de um projeto.

Durante esse período, a equipe tem seu foco todo voltado para atingir metas relacionadas ao projeto para que ele seja finalizado com rapidez sem que tenha perda em sua qualidade. A sprint se inicia por meio de uma reunião para estruturar os processos, apresentar as metas e entender as expectativas. 

A partir daí é definido o backlog e as prioridades e também são definidos prazos. Para acompanhar todo o projeto é preciso fazer reuniões diárias (lembra das dailys?) para entender como está a equipe, quais as dificuldades e o que já foi feito.

Ao fim de toda daily, é feito um sprint review que tem como objetivo colher feedbacks do trabalho feito pela equipe. Como a tradução indica, é durante a sprint review que é apresentado o que foi feito durante a sprint e é feita a verificação do produto para validar se está de acordo com o que foi pedido e quais são as considerações feitas para que possa ser melhorado.

Tudo isso acontece numa duração de até 4 semanas e, ao fim desse período, é revisado e mensurado todas as ações e os resultados delas no projeto.

Resumindo a sprint

  • Sprints são períodos de tempo em que o desenvolvimento de software é realmente feito;
  • Uma sprint geralmente tem a duração de uma semana à um mês para completar um item do backlog;
  • O objetivo de cada sprint é criar um produto viável;
  • Cada sprint termina com uma sprint review;
  • Em seguida, a equipe escolhe outro backlog para desenvolver, iniciando uma nova sprint;
  • As Sprints continuam até a deadline do projeto.
processo scrum

Quando usar o Scrum?

Se você tem um escopo com tudo definido, desde quem vai exercer cada função até a disponibilidade de todos os recursos necessários, você não precisa de um Scrum. Isso porque essa imagem condiz com um cenário previsível. 

O momento mais recomendado para usar a metodologia Scrum é quando você tem um cenário caótico, muito comum no desenvolvimento de software. Isso significa que você tem uma visão clara dos seus objetivos, mas não tem todos os requisitos necessários para colocá-los em prática, seja por falta de recursos, uma equipe pequena, entre outros fatores.

A partir desse cenário imprevisível, ter uma organização e metodologia que permite que um trabalho seja feito com qualidade ainda que não tenha todos os recursos é essencial. Por isso, na metodologia Scrum é tão importante ter uma equipe organizada e ciente de suas tarefas e de como anda o processo dos outros, além de ter entregas rápidas.

Os squads ágeis de desenvolvimento são equipes totalmente focadas nas entregas rápidas e, por este motivo, o scrum também acaba sendo uma metodologia popular entre eles. O método de esquadrões é oriundo do Spotify. Logo, podemos afirmar que empresas com produtos de alta demanda precisam de bastante organização para serem ágeis e eficientes, sendo o Scrum um grande contribuinte.

Cargos da metodologia Scrum

Beleza, mas quem tanto está envolvido nessa metodologia? Vamos entender os principais agentes além dos desenvolvedores.

Scrum Master

Scrum Master é o profissional responsável por garantir que a metodologia Scrum esteja sendo bem implementada em sua equipe. É ele quem vai orientar a equipe e terá contato direto com todas as partes envolvidas na realização do projeto.

Sendo assim, o Scrum Master é o facilitador para a equipe, apoiando-a durante os processos, assim como definindo prioridades e se certificando que os prazos estão cumpridos e que o projeto está evoluindo. Além disso, ele também é responsável por guiar as reuniões do Scrum.

Por ser um cargo essencial para as empresas que adotam a metodologia Scrum, o salário do Scrum Master pode chegar a R$8000,00.

Product Owner

O Product Owner, PO, é outra peça chave na execução de um projeto. Como o nome já diz, quem ocupar a posição vai agir como o dono do produto.

O PO é responsável por planejar e acompanhar toda a estratégia por trás do projeto, visando o valor do produto e sempre em contato com os stakeholders. Dessa forma, ele faz a intermediação entre equipe de desenvolvimento e clientes, levando em consideração as expectativas do cliente ao mesmo tempo que precisa garantir que sua equipe de desenvolvimento entregue o produto sem que isso os deixem sobrecarregados. 

Por ser uma das pessoas que fica a frente de todo o projeto, o salário do Product Owner chega a R$8000,00.

Dentro do time que faz parte do Scrum, é preciso destacar também o time de desenvolvimento, o time de design e o Gestor de Projetos. O time de desenvolvimento é uma parte fundamental para a metodologia Scrum, são eles que farão com que o projeto ganhe vida.

O time de design também pode se beneficiar da metodologia Scrum, já que eles têm grande importância no desenvolvimento de um novo produto e estão em constante contato com o time de desenvolvimento.

Há quem diga que o Gestor de Projetos pode ser substituído pelo Scrum Master dentro da metodologia Scrum. No entanto, isso depende muito de cada projeto que está sendo desenvolvido. Quando é um projeto muito complexo, os riscos são altos e tem muitas pessoas na equipe, a presença de um Gestor de Projetos se faz importante para manter tudo funcionando.

Time de desenvolvimento

Dentro do time de desenvolvimento existem vários profissionais, cada um com uma especialidade diferente. Juntando cada conhecimento, é possível criar um time multidisciplinar que pode trazer diversos pontos de vista para um projeto.

Desenvolvedores

Começando pelos desenvolvedores, são esses os profissionais responsáveis pela criação de um software. Dentro dessa área existem diferentes tipos de desenvolvimento, podendo ser desenvolvimento web, mobile e até de games. Os desenvolvedores também são divididos em desenvolvedor back-end, front-end ou full stack. 

Analista de Qualidade

Outra peça importante quando se trata do time de desenvolvimento, principalmente em um squad ágil, é o Analista de Qualidade. Esse profissional é responsável por garantir que as aplicações estejam correspondendo às expectativas do cliente e dos requisitos de sistema. Há até quem brinca que o time de qualidade são os caçadores de bugs.

O analista de Qualidade precisa estar em constante contato com os desenvolvedores e próximo da documentação do software, pois é a partir dessa interação que ele saberá apontar se o app está atingindo o que precisa. Caso não, novas demandas são criadas para o time de desenvolvimento até que o projeto seja concluído com sucesso.

Equipe de Design

Por fim, não pode deixar de falar da equipe de design. Essa equipe está em constante comunicação com os desenvolvedores e o lado de cliente, seja diretamente ou através do PO. Afinal, são eles que projetam as telas e tudo precisa estar alinhado com as expectativas dos stakeholders. 

A equipe de design é dividida em Design UX e Design UI, sendo UX responsável pela experiência do usuário e UI pela interface. São eles quem vão definir quais botões serão aplicados em cada lugar, como será a interface e como o usuário vai interagir com ela, quais os caminhos o usuário vai tomar dentro de cada tela. 

É a partir do que eles projetam que a equipe de desenvolvedores vai desempenhar suas atividades, ambas as equipes garantindo uma boa experiência ao usar o produto, de forma simples e intuitiva e que assim, consiga cumprir com a finalidade do produto.

Scrum para desenvolvimento de aplicativos

Por se tratar de uma metodologia ágil, o Scrum permite ao time de desenvolvimento se adaptar às novas tendências do mercado, mesmo antes de finalizar o projeto. Além disso, essa metodologia traz diversas vantagens, dentre elas:

1 – Melhora a qualidade do aplicativo

Como o teste e o controle de qualidade são integrados a cada sprint durante o processo ágil, o aplicativo é verificado em todos os estágios, garantindo que ele seja desenvolvido de acordo com o padrão de qualidade definido, com todas as regras de negócios, selando assim seu futuro em termos de alto desempenho e aceitação.

2 – Maior satisfação do cliente

Como o método ágil é baseado no envolvimento dos clientes em cada ponto, eles têm um acesso claro ao progresso do aplicativo, já que recebem uma demonstração do aplicativo com cada conjunto de recursos recém-adicionados após cada sprint.

3 – Maior transparência

Como a metodologia ágil envolve todos que fazem parte do processo de desenvolvimento de aplicativos, inclusive o cliente, todos sabem o trabalho exato que deve ser feito e seu status.

4 – Retorno mais rápido do investimento

Uma das vantagens associadas à metodologia Scrum é o desenvolvimento e o ROI mais rápidos. Com a ajuda do Scrum, as empresas podem iniciar o processo de desenvolvimento muito mais rápido. Além disso, são capazes de ocupar várias áreas do processo ao mesmo tempo.

Outras metodologias além do Scrum

Existem outras metodologias ágeis para além da metodologia Scrum. Uma das mais conhecidas é o Kanban, uma técnica de organização de tarefas que funciona por meio de um quadro com as atividades da equipe de forma que fique visível para todos o andamento de cada processo.

Um exemplo de ferramenta que possui a técnica Kanban é o Trello. Nele você organiza as atividades e tarefas e consegue movê-las de acordo com o seu desenvolvimento. Assim a equipe consegue saber exatamente em que momento do processo cada atividade se encontra.

Outra metodologia ágil é o método Lean que consiste em entregar um produto de qualidade em menor tempo possível e evitando desperdícios. Essa metodologia é muito utilizada com a intenção de diminuir gastos e o uso de recursos enquanto aumenta o valor do produto. 

Considerações finais

O desenvolvimento de aplicativos tem que ser flexível e rápido para atender a um mercado que muda constantemente. Por isso, ao compreender os benefícios da metodologia ágil Scrum, você está preparado para mudar seu processo de trabalho. Porém, antes, garanta que suas partes interessadas e equipe estejam de acordo com a ideia.

Conhece outra metodologia para desenvolvimento de softwares? Diga-nos qual aqui nos comentários. 
Importante ressaltar que o Scrum se aplica também à empresas terceirizadas de desenvolvimento. Que tal conhecer alguns modelos de terceirização? Leia mais sobre o outsourcing de TI!

Tópicos

Uma resposta

Deixe uma resposta

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

Posts relacionados

Estamos contratando, venha conferir nossas vagas