Métodos ágeis: o que são e por que você deve adotá-los

Os métodos ágeis são um complemento à forma de pensar as metodologias de processo de um modo mais ágil e menos suscetível a erros. Neste texto, você vai entender porque essas práticas podem fazer seus processos ficarem mais fluidos e otimizados.

Qual a importância desses métodos? Como são aplicados? Vamos passar por essas questões e ainda comentar sobre o modelo em cascata usando como exemplo o desenvolvimento de softwares, e outros serviços influenciados por esses métodos.

Os métodos ágeis (ou metodologias ágeis)¹ não são novidade, estão aí há décadas, mas são amplamente usados e transformados até hoje. Porém, antes de nos perdermos nessas práticas, vamos explorar o modelo cascata.

¹ – Existe uma distinção teórica entre “métodos ágeis” e “metodologias ágeis”, mas, aqui, vamos tratar essas expressões como sinônimas.

Modelo cascata, e porque ele foi por água abaixo:

Em 1970, W. W. Royce, cientista da computação, ficou conhecido pelo Waterfall model (modelo cascata), embora seu ensaio fosse justamente para mostrar como o modelo era defeituoso.

Naquela época, Royce propunha uma metodologia iterativa (repetitiva), com um feedback de cada fase influenciando as próximas, porém o modelo cascata acabou se tornando, ironicamente, uma forma de desenvolvimento sequencial ordenada como a que ele criticava.

Nesse modelo, o desenvolvimento passa pelo requerimento, pelo projeto, pela implementação, pela verificação, e, por fim, pela manutenção. O projeto não avança para a etapa seguinte, até que a anterior esteja pronta.

metodo cascata

Porque o modelo cascata é defeituoso?

Parece objetivo, linear e simples. Então, qual o problema com o modelo cascata?

ERROS!

Método cascata

Imagine trabalhar em um projeto por seis meses e ter como resposta do cliente “não é isso que eu esperava”, péssimo, não é?

O maior problema é perceber erros e inconsistências que estavam no projeto desde a fase de requisitos somente na entrega final. Um pequeno detalhe que poderia ter sido corrigido antes, se torna uma bola de neve. E isso é muito mais comum do que se imagina.

Mas como identificar todos os possíveis erros, se a fase de verificação e manutenção só acontecem no final?

Abandonando a ideia de um desenvolvimento sequencial ordenado.

Métodos ágeis

Existem vários frameworks de processos ágeis, mas o alicerce está no princípio de minimizar os riscos encurtando os períodos. Esses períodos mais curtos são chamados de iteração.

Comumente, esses períodos variam de menos de uma semana a até um mês. Como essas iterações funcionam?

Esse método pode se aplicar em uma infinidade de tarefas, mas vamos exemplificar pensando no desenvolvimento de um software:

Cada iteração é semelhante a uma miniatura do próprio projeto. Ou seja, cada uma dessas pequenas fases inclui todas as tarefas necessárias para implantar o mini-incremento da nova funcionalidade: planejamento, análise de requisitos, projeto, codificação, teste e documentação.²

² – Porém, vamos ver a seguir que de acordo com o manifesto ágil a importância dessas fases é diferente em relação ao modelo cascata.

Em um projeto de desenvolvimento de software convencional, cada fase não está necessariamente focada em incluir um novo conjunto significativo de funcionalidades. Já um projeto ágil busca implantar uma nova versão do software ao fim de cada iteração, etapa na qual a equipe pode reavaliar as prioridades do projeto.

Um exemplo muito comum são as atualizações dos sistemas operacionais dos smartphones, ou de apps como o Facebook. Já notou que frequentemente são feitas atualizações “menores” com uma mensagem genérica do tipo “correção de erros”? Esse é o método ágil na prática!

Ao invés de esperarem até terem um grande pacote cheio de funcionalidades, eles estipulam deadlines menores e entregam todas as correções que ficaram prontas até aquela data em um pacote de “correção de erros”. O que não ficou pronto, é adicionado à próxima iteração.

Esses ciclos menores permitem a correção de pequenos problemas com mais rapidez, e possibilita o recebimento de feedbacks durante todo o processo. Desse modo, as alterações acontecem antes de o problema se tornar uma enorme bola de neve.

Manifesto ágil

Para nortear o que seriam os pilares dos métodos ágeis, foi assinado, em 2001, o manifesto ágil. Além de estabelecer os valores, e documento também determina os 12 princípios.

Vamos reproduzir o conteúdo na íntegra respeitando as exigências de copyright e depois vamos comentar os valores, dê uma olhada:

“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.

Kent Beck

Mike Beedle

Arie van Bennekum

Alistair Cockburn

Ward Cunningham

Martin Fowler

James Grenning

Jim Highsmith

Andrew Hunt

Ron Jeffries

Jon Kern

Brian Marick

Robert C. Martin

Steve Mellor

Ken Schwaber

Jeff Sutherland

Dave Thomas”

Entendendo o Manifesto ágil:

O Manifesto Ágil é muito simples e objetivo, ele não desvaloriza ou critica os itens da direita, apenas fala da importância maior – para a metodologia ágil – dos itens à esquerda. Diferente de um processo engessado, a ideia é ser mais versátil e ágil.

  • No modelo em cascata a priorização acontece da seguinte forma:

Os processos e ferramentas são predefinidos, bem delimitados e seguidos fielmente. A documentação de cada etapa é fundamental para se manter um registro detalhado das implementações feitas a fim de permitir sua reprodução e verificação. Os contratos devem ser acordados com muito cuidado para que o projeto possa os seguir à risca e por consequência ficar ao gosto do cliente. E, por fim, o plano deve seguir como foi concebido para manter uma consistência.

O modelo cascata pode ser aplicado com variações; aqui, o exemplo é um modelo mais “purista” e engessado, em que os itens citados são sempre a prioridade.

  • No processo que valoriza a metodologia ágil, o trabalho acontece dessa forma:

Indivíduos e suas interações ditam mais que o processo; experiências e ideias podem alterar um processo a qualquer momento para transformá-lo e fazê-lo evoluir. Mais importante que documentar, é rodar o trabalho executado, afinal (usando novamente como exemplo a programação) você gera uma documentação na sua própria maneira conferir as implementações usando testes automatizados, então é melhor ganhar agilidade do que documentar tão religiosamente.

Colaboração com o cliente é a chave! A cada entrega ao final de uma iteração curta, há uma oportunidade de conferir com o cliente se está tudo de acordo com suas expectativas. E, por último, é fundamental responder às mudanças; seja uma nova funcionalidade, ou algum obstáculo, é preciso se adaptar; um plano não contempla todos os imprevistos. Você não é o Batman, não conte com o preparo para tudo!

 

metodologia ágil

Batman aprova isso

LEMBRETE: o Manifesto Ágil não é um método ágil, é uma série de conselhos sobre como aplicar as metodologias de uma forma mais ágil e produtiva.

Além disso, os modelos ágeis não são uma metodologia completa, são um complemento às práticas existentes.

Mas onde podemos aplicar isso tudo? Quem pode se beneficiar?

TODOS!

Já vimos que esses métodos são importantes para minimizar os erros e conseguir alinhar melhor a produção com as expectativas do cliente evitando refações – e com isso, ganhando tempo.

Mas não pense que a metodologia ágil se limita à programação. Salvo raras exceções, quaisquer negócios (tecnológicos, alimentícios, prestadores de serviços etc) podem usar métodos ágeis, até mesmo indivíduos particulares em trabalhos acadêmicos ou atividades caseiras.

Ficou curioso em como isso pode beneficiar seu negócio? Que tal falar com uma agência que vai fazer você decolar? Vem de zap fala com a gente!