Introdução ao Manifesto Ágil e ao Framework Scrum
Qual é o mais eficaz?
O trem que chega a 550 km/h ou o segundo animal mais veloz do mundo, o Guepardo, que chega a 115 km/h?
Tudo depende do contexto, porém de se estamos considerando o desenvolvimento do software o Guepardo é o mais eficaz, já que ele consegue se adaptar ao ambiente, parar e mudar de direção.
Essa adaptabilidade é uma das habilidades mais preciosas no ambiente ágil, com ela a entrega de valor agrega muito ao profissional, ao projeto e as empresas.
Business Agility é a capacidade de uma organização se adaptar rapidamente às mudanças nas condições do mercado.
— Klaus Leopold
Metodologia Ágil
Ágil ou Agilidade é uma abordagem do desenvolvimento de software que enfatizam o aprendizado contínuo, a entrega incremental, a colaboração e planejamento. A equipe com agilidade faz pequenas entregas de valor e podem ser consumidas pelo cliente final.
Requisitos, planos e resultados são avaliados continuamente, para que as equipes respondam com mais eficácia e rapidez as mudanças do mercado.
O termo Ágil foi lançado em 2001 no Manifesto Ágil, estabelecendo valores e princípios para orientar uma abordagem melhor para o desenvolvimento de software. Este Manifesto declara 4 instruções de valor que representam a base do movimento ágil e 12 princípios norteadores.
Princípios do Manifesto Ágil
- Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.
- Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adéquam a mudanças, para que o cliente possa tirar vantagens competitivas.
- Entregar software funcionando com frequência, na escala de semanas até meses, com preferência aos períodos mais curtos.
- Pessoas relacionadas a negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto.
- Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.
- O método mais eficiente e eficaz de transmitir informações para, e para um time de desenvolvimento, é através de uma conversa cara a cara.
- Software funcional é a medida primária de progresso.
- Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem conseguir manter, indefinidamente, passos constantes.
- Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
- Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.
- As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis.
- Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.
Benefícios da Metodologia Ágil
Quando bem aplicados utilizando ciclos iterativos curtos, planejamento guiado por entrega de valor, feedbacks constantes, transparência das informações, adaptação a mudanças, integração da equipe e proximidade com o cliente. A cultura ágil, traz alguns benefícios:
- entrega contínua de valor;
- envolvimento do cliente;
- apuração de feedbacks constantes;
- simplicidade na execução das tarefas;
- facilidade na adaptação a mudanças.
A cultura, estrutura, práticas, ideologias e motivações organizacionais irão impactar na aplicação das metodologias ágeis.
Usar metodologia ágil NÃO significa:
- Ser o único caminho para Business Agility;
- Ser ágil;
- Se isolar ou criar silos;
- Não documentar;
- Não planejar;
- Realizar uma transformação ágil;
- Quebrar processos da empresa;
- Ter pressa e/ou velocidade;
- Ter papéis ágeis formais;
- Ter uma bala de prata;
Apesar de uma cartilha com regras explicitas, isso não garante uma organização ágil, porém esses métodos ajudam a alcançar e operacionalizar os valores e princípios ágeis. Ser ágil é atuar com um conjunto de valores, sendo colaborativo e tendo a participação coletiva da equipe. Os métodos ágeis são para as pessoas e a interação entre elas é fundamental para um resultado positivo.
Esses resultados deverão ser obtidos através de uma estratégia de atuação, essa estratégia deve deixar claro para todos, o: porque fazer, que fazer e como fazer e junto a isso, uma relação dos métodos ágeis e os procedimentos da empresa.
Agilidade não é sobre entregar mais rápido, é sobre entregar melhor.
Scrum
Conceito
Scrum é um framework de gerenciamento de projeto ágil utilizado para descrever um conjunto de cerimônias, ferramentas e papéis para cada membro da equipe para ajudá-los a gerenciar seu trabalho.
O Scrum é uma estrutura que ajuda as equipes a trabalharem juntas, estimulando as equipes a aprenderem com as experiências, a se organizarem enquanto resolvem um problema e a refletirem sobre os êxitos e fracassos para melhorarem sempre.
Características:
- Pilares: transparência, inspeção e adaptação
- Valores: comprometimento, coragem, foco, abertura e respeito.
- Papéis: Scrum Master, Product Owner e Time de desenvolvimento.
- Cerimônias: planejamento do Sprint, reunião diária, revisão do Sprint e retrospectiva do Sprint.
- Artefatos: product backlog, Sprint backlog e incremento do produto.
Benefícios de utilização do Scrum
- Melhor qualidade
- Aumento do ROI
- Tempo reduzido de entregas
- Melhor dinâmica entre equipes
- Funcionários mais satisfeitos
- Melhor qualidade: o Scrum fornece a estrutura para feedback e discussão contínuos, garantindo que a qualidade seja a mais alta possível;
Ciclo de vida do Sprint
A figura acima representa um ciclo de uma Sprint, nele temos:
- Product backlog: é um documento que descreve os requisitos de um sistema, projeto ou produto. Esses requisitos deverão produzir um valor.
- Ciclo de vida do sprint: sprint planning, sprint backlog, sprint execution, daily scrum, sprint review e sprint retrospective, serão descritos a seguir, ainda neste documento.
- Entregável “potentially shippable increment”.
Conceito de Sprint
Sprint é um período em que um trabalho definido é anteriormente concluído e vai para ser revisado por profissionais responsáveis pela aprovação dessa entrega., normalmente duram de 2 a 4 semanas.
Um objetivo é esperado ao final do Sprint e o maior desafio é conseguir fazer essa entrega mesmo com interferência de fatores externos, tais como influência dos clientes, problemas urgentes de entregas anteriores.
Elementos do Scrum
Quadro Scrum: local hoje digital, mas antes físico que “guarda” todas as informações de maneira organizada. Uma boa prática que esse quadro seja sempre visível para outras membros equipes, ou seja, toda a empresa. Esse elemento tem a composição formada por linhas e colunas. As linhas estão as atividades, e as colunas os status.
Pontos de Estimativa: prática para dimensionar o “Esforço X Complexidade” de uma atividade e assim visualizar o que é possível ser colocando no sprint e qual é a velocidade de entrega do time de desenvolvimento. Essa leitura das atividades pode ser feita por referências de horas ou dias — o que é mais comum em times com pouco contato com Scrum.
Burn-Down: gráfico mostra o andamento do sprint, baseado nas entregas e a relação com o tempo do sprint.
Funções do Scrum
Product Owner: é o papel que irá trazer o valor do produto ao time, também será responsável pela gestão efetiva do Backlog do Produto, além de tornar-se transparente, visível e objetivo para o time Scrum. O Product Owner é o papel que representa a visão estratégica de várias partes interessadas no Backlog do Produto.
Scrum Master: papel que irá garantir que o Scrum esteja sendo seguido pela equipe e o norte para retirada de obstáculos que estão atrapalhando as atividades de fluir durante a Sprint.
Garantirá que o Scrum esteja sendo praticado pela equipe. Está atento a como a equipe pode melhorar, simultaneamente, em que ajudar a resolvem impedimentos e outros problemas de bloqueio que surgem durante o Sprint.
Time Scrum: o Time de Desenvolvimento ou Scrum é um grupo multifuncional e auto-organizado, que conta com todas as habilidades necessárias para o desenvolvimento do projeto, fornecendo incrementos potencialmente entregáveis do produto a cada Sprint.
Cerimônias do Scrum
Esses encontros têm o principal objetivo de manter todos os membros das equipes alinhada para produzir e entregar mais valores com menor tempo.
Planejamento do Sprint (Sprint Planning)
Primeira etapa do Sprint. É aqui que serão apresentadas as prioridades do Sprint.
Reunião diária (Daily Meeting / Daily Scrum / Daily Stand-up)
Encontro realizado no mesmo horário e diariamente. O Time Scrum se reúne para que todos estejam alinhados com o desenvolvimento das atividades do Sprint. Um direcionamento para melhorar esse alinhamento pode ser respondido pelos membros das equipes, sendo as perguntas:
- O que fiz ontem (ou desde a última reunião)?
- O que farei hoje?
- O que está impedindo de alcançar o resultado estado?
Porém, não há obrigatoriedade de ser só essas perguntas que devem ser respondidas, o importante é cada membro trazer atualizações sobre a atividades que estão sendo feitas.
Revisão do Sprint (Sprint Review)
Cerimônia que fecha o ciclo do sprint. É nela que o time Scrum irá apresentar quais foram os itens do backlog foram concluídos, trazendo os problemas e como foram resolvidos.
Retrospectiva do Sprint (Sprint Retrospective)
Nesta cerimônia o Time Scrum irá traçar planos de melhorias que serão aplicados na próxima Sprint, através da análise e avaliação, também são levantados os pontos bons. Características como pessoas, relacionamentos, processos e ferramentas são considerados.
Conclusão
Agilidade só tem a acrescentar ao processo de desenvolvimento de software, porém a aplicação dela pode causar estranheza em empresas que estão num processo mais engessado e antigo.
Uma dica que posso compartilhar sobre essa mudança de mindset (mentalidade) é a abordagem gradativa e não forçada, trate de ir adicionando ao seu dia a dia e lentamente você irá enxergar os ganhos da abordagem ágil!
A segunda dica é para os profissionais, sempre busque de atualizar, procure abordagens novas no mercado.
Por último, agilidade não é bala de prata!
O material disponibilizado neste documento foi construído a partir do texto disponibilizado no Guia do Scrum. Ah, aqui no meu perfil tem um texto sobre agilidade, “Agilidade é sobre fazer rápido? Como utilizar Agile UX e desenvolver melhores produtos” e umas anotações de estudo para certificação Scrum.
Se você leu até aqui, meu muito obrigado 🤘🏼💝. Gostou? Compartilhe para mais pessoas! 😉