Agile Methodology | Metodologia Agile
Existem várias Agile Methodology (metodologia agile, agile approach) como o Kanban, XP, Crystal e o Scrumban. Contudo, a metodologia Scrum é a framework agile de desenvolvimento de produtos mais popular no mundo. Todas elas permitem desenvolver produtos e serviços com maior agilidade. Em consequencia estão a ganhar cada vez mais adeptos.
Em 2021 saiu o 15th State of Agile Report, este estudo feito por entrevista é, desse modo, uma amostra do estado do Agile no mundo. Dessa forma, veremos algumas das conclusões deste estudo:
- 94% dos entrevistados dizem que utilizam métodos ágeis /agile framework nas suas organizações
- 52% dos entrevistados dizem que todas ou várias equipas nas suas organizações usam metodologias ágeis / Agile approach
- 66% dos entrevistados dizem usar scrum, 9% scrumban, 6% Scrum/XP Hybrid, 6% Kanban
- 87% dizem fazer daily standups, 83% dizem fazer reuniões de retrospectiva e 83% dizem fazer Sprint/Iteration planning
- 77% dizem usar Kanban boards, 67% task boards e 66% Spreadsheet
- Para escalar o Agile dentro da organização, 37% dizer usar a framework Scaled Agile Framework (SAFe®), 9% Scrum@Scale/Scrum of Scrums
CURSOS AGILE
Os dados deste estudo mostram que cada vez mais pessoas no mundo inteiro usam a framework agile. Para além disso, os dados mostram também que cada vez mais os artefactos, eventos e praticas ágeis são adotados, mesmo quando a framework scrum não é adotada na sua totalidade. Um dos principais manuais que serve de base a esta metodologia é o scrum guide. A Agile Methodology desenvolve os produtos com base em valores e princípios. Alguns desses princípios são:
- Desenvolvimento incremental e iterativo,
- Desenvolvimento adaptativo em vez de perspetivo,
- Timeboxing,
- Comunicação presencial em tempo real.
Abaixo vamos ver mais em detalhe cada um destes princípios. Pode também saber mais sobre os valores do scrum aqui.
Princípios da Agile Methodology ou Agile Approach
Os princípios da metodologia agile foram descritos no Agile manifesto. Vejamos abaixo cada um deles em mais detalhe:
Desenvolvimento Iterativo e Incremental
Uma típica agile methodology desenvolve os produtos de forma iterativa e incremental. Iterativo porque a equipa desenvolve o produto através de ciclos repetitivos. Incremental porque a equipa desenvolve o produto em pequenas componentes de cada vez. Dessa forma, a equipa pode aprender com o passado e aproveitar essa informação para as fases seguintes.
Em primeiro lugar, o cliente e a equipa melhoram o produto de forma iterativa até que este esteja completo. Para além disso, em cada iteração, a equipa faz mudanças a componentes (desenvolvimento iterativo). Por fim, a equipa pode adicionar novas funcionalidades (desenvolvimento incremental).
Desenvolvimento Adaptativo em Vez de Prescritivo
Os métodos tradicionais baseiam-se num pressuposto que nem sempre é realista. Este pressuposto é de que se for feito um grande esforço de planeamento no início do projeto, muitos problemas de desempenho e más decisões no futuro são evitados. Paralelamente, uma definição detalhada dos requisitos, procedimentos e desenhos, evita inconsistências e defeitos. O problema é que o mundo não está estanque. Por isso, a conclusão a que se chegou ao longo da história da gestão de projetos é que este pressuposto, que aparenta ser lógico nem sempre é verdade. Por exemplo, a incerteza e instabilidade do contexto interno e externo do projeto, podem tornar o trabalho feito antecipadamente inútil. Mais ainda, alterações aos requisitos, soluções, tecnologia ou prioridades, não só implicam alterações ao trabalho a fazer como podem implicar voltar a fazer o trabalho já feito.
Assim, criaram-se os métodos adaptativos. Estes métodos focam-se em reduzir o esforço up front de planeamento e desenho. Em primeiro lugar, o esforço é colocado em prever o que irá ocorrer no curto prazo. E por conseguinte, mantêm-se apenas uma visão de alto nível do longo prazo. Assim, quanto mais longe for o horizonte de planeamento, mais vago é a agile methodology sobre o que ocorrerá nessa altura. Ao mesmo tempo, o ágil incentiva as mudanças, criando momentos onde o cliente pode alterar e avaliar o produto. Ou seja, destaque-se facilitar a adaptação ao longo do projeto. Isto é, o método ágil ou agile approach cria momentos onde o produto, plano, estimativas e abordagens podem melhorar.
Timeboxing
Timeboxing usa-se como uma técnica de planeamento do projeto. A maioria dos métodos ágil dividem o trabalho de desenvolvimento em pequenos incrementos. Estes reduzem a quantidade de planeamento e desenho que é necessário fazer antes.
Em primeiro lugar, a equipa define a duração das iterações. As iterações são períodos de tempo curtos (timeboxes) que normalmente duram de 1 a 8 semanas. Em seguida, o cliente e a equipa selecionam os requisitos que possam ser “encaixados” nessa iteração, para entregar o mais cedo possível um produto viável. Isto faz com que, caso seja necessário, por exemplo, decidir se se cumpre a duração da iteração ou o trabalho da iteração, o tempo é sempre a restrição mais rígida. Em outras palavras, se a equipa planeou fazer algum item do backlog e não o concluiu, este deve voltar para o product backlog quando o sprint for concluído em vez de ser terminado. Depois a equipa logo decide se esse item deve ser incluído no sprint seguinte ou não. Ou seja, mesmo que esteja muito perto de estar pronto, não significa que entra no próximo sprint.
Comunicação Presencial em Tempo Real
O ágil dá preferência à comunicação presencial, cara a cara, como forma de manter uma ligação próxima entre a equipa, cliente e outros stakeholders. Isto porque, a comunicação verbal em tempo real facilita a rápida e não constrangida troca de ideias. Também ajuda às boas relações e a criar um sentido de propriedade comum entre todos os membros da equipa sobre o projeto. Para além disso, o ágil promove que os membros da equipa e cliente estejam fisicamente no mesmo espaço. Isto porque, estar junto no mesmo espaço físico, facilita a comunicação, a integração entre o trabalho e o sentido de responsabilidade comum.
A realidade é que uma equipa motivada e com um sentimento de pertença é muito mais produtiva. A equipa ao conhecer o projeto, estar perto do cliente, perceber a sua importância para o projeto e a importância do produto que está a desenvolver, vai trabalhar com maior afinco.
Benefícios da Agile Methodology
Acabamos de ver os principais princípios que distinguem a metodologia Agile da metodologia tradicional e que levam a que cada vez mais pessoas utilizem estes métodos. Mas quais são os reais benefícios da agile framework?
Stakeholders Mais Envolvidos e Satisfeitos
Como vimos a comunicação presencial e contínua permite que o cliente avalie mais vez e com maior frequência o produto, fazendo os ajustes necessários para que o produto satisfaça as necessidades. Isto permite que a equipa entenda melhor o que o cliente quer. Por seu lado, o cliente sente-se mais confiante em que vai receber o que pretende, acabando por se envolver mais.
Transparência
Todo o processo de construção e desenvolvimento do produto é feito à vista do cliente e por isso não há nada escondido. Mas que este ponto funcione, é importante é que o cliente tenha claro que o produto está em processo de criação e não é o produto final para não haver frustração.
Entregas Mais Cedo e Mais Previsíveis
Na agile approach, a equipa desenvolve os produtos em sprints, isto significa que é claro para o cliente quando é que o sprint termina e este poderá ver uma versão do produto. Para além disso, os final users podem ter acesso ao produto mais cedo, assim que ele tiver valor comercial, mesmo que não esteja finalizado.
Flexibilidade nas Entregas
Na metodologia agile, a equipa tem total flexibilidade para escolher os requisitos que fazem mais sentido serem feitos primeiro, para que o cliente possa começar a ver o produto o mais cedo possível. A confiança do cliente também é maior por ver entregas contínuas, ou seja, desde cedo no projeto, o cliente comece a ver o produto, ainda que não seja final.
Mudanças São Bem-Vindas
O foco do sprint é entregar novos itens ao cliente. Contudo, a equipa também deve realizar trabalho que seja para incorporar as mudanças encontradas nos sprints anteriores. O objetivo é que no final o produto satisfaça as necessidades do cliente.
A Equipa Tem Noção do Valor Para o Negócio do Cliente
Ao trabalhar de perto com o cliente, a equipa acaba por ganhar sensibilidade para o que é mais importante para adicionar valor ao cliente. Isto faz com se concentra em entregar esse valor o mais rapidamente possível.
A Equipa Também se Concentra Nos Utilizadores Finais
As user stories concentram-se nas necessidades dos utilizadores, e daí derivam muitas vezes os critérios de aceitação do produto. Assim, a equipa acaba por se concentrar nas necessidades dos utilizadores acabando por estar sempre a entregar valor.
A Qualidade É Geralmente Maior
A possibilidade de fazer avaliações, testes e obter feedback do cliente e utilizadores com maior frequência permite incorporar mudanças mais vezes e de uma forma mais consistente, levando a que no final existe um aumento da qualidade e do grau de satisfação do cliente.
As Equipas Sentem-se Mais Envolvidas e Com Um Propósito
O método ágil ou agile approach foi criada para dar um sentido e um propósito às equipas. Estas sentem-se envolvidas e trabalham com um propósito, o que faz com que sejam mais produtivas e que trabalhem mais eficazmente.