DEV Community

Otávio
Otávio

Posted on

Scrum, conceitos básicos

Um resumo do que é a metodologia do desenvolvimento ágil e o Scrum, principal e mais utilizado framework de gerenciamento de projetos do mundo.

Scrum é um framework de gerenciamento de projetos amplamente utilizado no mundo do desenvolvimento de software. Até 2021, era a metodologia ágil mais utilizada no mundo.

Imagem exemplificando o fluxo do scrum

Antes de começarmos a falar propriamente do Scrum, vale pontuar o que seria o desenvolvimento ágil de software.

Desenvolvido em 1990, o Manifesto Ágil surgiu para fundamentar os princípios do desenvolvimento ágil de software. Esses princípios são baseados em valores, descritos a seguir:

  • Os indivíduos e suas interações acima de procedimentos e ferramentas;
  • O funcionamento do software acima de documentação abrangente;
  • A colaboração com o cliente acima da negociação e contrato;
  • A capacidade de resposta a mudanças acima de um plano pré-estabelecido.

O primeiro valor tem por objetivo salientar que as maiores e melhores ferramentas não terão o poder de ajudar automaticamente a melhorar processos, mas que o que vale é criar uma equipe que funcione e ela sim vai ser capaz de configurar o ambiente de acordo com a necessidade do projeto.

Já o segundo valor diz que o código não é o meio ideal para comunicar o fundamento lógico e a estrutura de um sitema. É importante manter uma documentação desses fundamentos, mas ela deve ser curta e notória, algo em torno de 10 a 20 páginas e deve manter-se por discutir tais fundamentos de forma global do projeto, somente suas estruturas de alto nível. Os dois melhores documentos para transferencia de informações para novos membros sempre serão código e equipe.

O terceiro valor diz que projetos bem sucedidos envolvem feedback regular e frequente do cliente.

E por último, a capacidade de responder a mudanças frequentemente determina o sucesso ou o fracasso de um software.

Esses valores são os responsáveis por fundamentar os 12 princípios do desenvolvimento ágil de software, que são:

  1. Quanto mais frequentes são as entregas, maior é q qualidade final do sistema.

  2. Uma equipe ágil trabalha arduamente para manter a estrutura do seu software flexível, a fim de que quando os requisitos mudarem, o impacto no sistema seja mínimo.

  3. Entregar software funcionando com a maior frequencia possível no menor tempo possível.

  4. Para que um projeto seja ágil clientes, desenvolvedores e interessados devem ter uma interação significativa e frequente.

  5. As pessoas são o fator de sucesso mais importante. Todos os outros fatores são de segunda ordem e estão sujeitos a mudança caso estejam prejudicando as pessoas.

  6. O método mais eficiente e eficaz de transmitir informações para e dentro de uma equipe de desenvolvimento é a conversa face a face.

  7. Software funcionando é a principal medida de progresso.

  8. Os patrocinadores, desenvolvedores e usuários devem manter um ritmo constante indefinidamente. Elas trabalham em uma velocidade que lhes permite manter os padrões de qualidade mais alta durante todo o projeto.

  9. Atenção contínua a excelencia técnica e ao bom projeto aumenta a agilidade. Ir rápido é mantar o software o mais limpo e robusto possível.

  10. Simplicidade - a arte de maximizar o volume de trabalho que não precisou ser feito. É necessário fazer o trabalho mais simples e de qualidade mais alta hoje, confiante de que ele será mais fácil de alterar, se e quando os problemas de amanhã surgirem.

  11. Uma equipe ágil é auto organizada e os membros trabalham juntos em todos os aspectos do projeto.

  12. Uma equipe ágil ajusta continuamente sua organização, suas regras, suas convenções, seus relacionamentos etc.

imagem resumindo os principios da metodologia ágil

Agora que entendemos um pouco de como funciona a metodologia ágil, vamos ver como ela é aplicada no Scrum.

Scrum

O scrum é sustentado por 3 pilares, são eles: transparencia, inspeção e adaptação.

A transparencia se refere principalmente a forma de comunicação, que deve ser clara e possuir uma linguagem comum a todos os membros da equipe.

Já a inspeção se refere a estar constantemente inspecionando seus artefatos (valor), identificando possíveis variações, no entanto é necessário tomar cuidado, elas não devem ser tão frequentes, pois podem atrapalhar a execução das tarefas.

Por fim, a adaptação é a capacidade de ajustar os processos de modo que o produto final seja entregue no tempo previsto e da forma prevista.

Dentro do scrum existem quatro eventos formais, contidos dentro dos limites da Sprint, justamente para
inspeção e adaptação:

  • Reunião de planejamento da Sprint (planning);
  • Reunião diária (a famosa daily);
  • Reunião de revisão da Sprint;
  • Retrospectiva da Sprint.

Vamos falar do time da scrum

Ele é composto por duas peças-chave além da equipe, geralmente, de desenvolvimento. Sendo eles:

  • Scrum master: responsável por garantir a aplicação do scrum, ele é o conhcedor do framework e vai garantir que ele seja entendido por todos.

  • Product owner: responsável por fazer a ponte entre o cliente e os desenvolvedores. Ele também é a única pessoa responsável por gerenciar o Backlog do Produto (requisitos).

  • Time de desenvolvimento: composto idealmente entre 5-7 pessoas. São multifuncioanais e auto-organizados.

Os eventos do Scrum:

Todos os eventos no scrum tem uma quantidade de tempo definida, e não pode ser aumentada nem reduzida. Além disso eles foram planejados de modo que não haja a necessidade de outros eventos além dos listados abaixo e são sempre oportunidades de gerar inspeções e adaptações no no desenvolvimento.

  • Sprint: o core do Scrum, o evento principal que dita todos os outros eventos. Ela é composta por: uma reunião de planejamento da Sprint, reuniões diárias, o trabalho de desenvolvimento, uma revisão da Sprint e a retrospectiva da Sprint. Elas tem uma duração média de 2-4 semanas. Cada Sprint tem a definição do que é para ser construído, um plano projetado e flexível que irá guiar a construção, o trabalho e o resultado do produto.

  • Reunião de planejamento da sprint: consiste basicamente em responder a 3 perguntas principais que norteiam uma sprint: O que pode ser entregue nesta Sprint? Como o trabalho escolhido será entregue? Qual o objetivo ou meta da Sprint?

  • Reunião diária ou daily: uma reunião diária com o time de desenvolvimento de duração média de no máximo 15 minutos que busca sincronizar a equipe a respeito do andamento da sprint através das perguntas: o que eu fiz ontem que ajudou o Time de Desenvolvimento a atender a meta da Sprint? O que eu farei hoje para ajudar o Time de Desenvolvimento atender a meta da Sprint? Eu vejo algum obstáculo que impeça a mim ou o Time de Desenvolvimento no atendimento da meta da Sprint?

  • Revisão da sprint: ocorre ao final da sprint para inspecionar o incremento (a parte do produto que está sendo entregue) e adaptar o backlog (requisitos) do Produto se necessário. Durante a reunião de Revisão da Sprint o Time Scrum e as partes interessadas colaboram sobre o que foi feito na Sprint. Com base nisso e em qualquer mudança no Backlog do Produto durante a Sprint, os participantes colaboram nas próximas coisas que podem ser feitas para otimizar valor.

No scrum a medida não é o tempo, nem quantidade, mas sim o valor que é entregue ao longo de cada sprint

  • Retrospectiva da sprint: é uma reunião que tem por finalidade fazer com que o Time Scrum inspecione a si próprio e crie um plano para melhorias a serem aplicadas na próxima Sprint.

Artefatos do scrum:

  • Backlog do produto: é uma lista ordenada de tudo que deve ser necessário no produto, ou seja, seus requisitos. O Product
    Owner é responsável pelo Backlog do Produto, incluindo seu conteúdo, disponibilidade e ordenação. Ele é flexível e nunca possui uma versão final, vai se adaptando conforme as necessidades.

  • Backlog da sprint: é um conjunto de itens do Backlog do Produto selecionados para a Sprint, juntamente com o plano para entregar o incremento do produto e atingir o objetivo da Sprint.

  • Incremento, é a soma de tudo que ja foi entregue nas sprints anteriores e o que foi entregue na sprint atual, o equivalente as "features" do produto.

Por ser o framework mais utilizado dentro do ambiente de desenvolvimento de software e pela metodologia ágil ter sido criada com o foco na da engenharia de software, é de extrema importancia conhecer seu funcionamento e princípios, tanto para o mercado de trabalho, como também para melhorar a entrega de projetos pessoais, trabalhos de faculdade e freelas.

Top comments (0)