As 5 principais metodologias agile: vantagens e desvantagens

O que são metodologias agile?

A primeira vez que se ouviu falar em desenvolvimento ágil (ou no termo agile) foi em 2001, quando uma comunidade de developers, cansada da utilização de métodos de desenvolvimento considerados ‘pesados’ – nomeadamente, o modelo em cascata – decidiu lançar um manifesto: O Manifesto Agile. Este importante documento teve tanto impacto, que acabou por funcionar, até aos dias de hoje, como a bíblia do desenvolvimento agile, consagrando todos os princípios e boas práticas.

Metodologias agile  defendem que, acima de tudo, se deve procurar satisfazer o cliente através de entregas contínuas de software com valor, mantendo a  comunicação constante com o cliente, mas também mantendo o foco na comunicação entre membros de uma equipa.  Ao contrário das práticas anteriores, a metodologia Agile não se pauta pela definição integral de todo o produto, por uma análise completa ou pela definição de todas as categorias/requisitos, mas sim por uma interação dinâmica, que permite uma entrega constante.

Como defende o Manifesto Agile, e segundo alguns dos seus 12 princípios fundamentais:

  • A prioridade reside na satisfação do cliente, através de entregas contínuas e de valor acrescentado;
  • As alterações de requisitos devem ser aceites, mesmo que estas cheguem numa fase tardia do desenvolvimento. “Os processos ágeis potenciam a mudança em benefício da vantagem competitiva do cliente”, como é declarado no próprio Manifesto;
  • O cliente e a equipa de desenvolvimento devem trabalhar em conjunto e diariamente;
  • É necessário proporcionar um bom ambiente e apoio às equipas de desenvolvimento. Só assim é possível mantê-las motivados;
  • Os processos ágeis promovem um desenvolvimento sustentável, porque o ritmo é constante, e a excelência técnica aumenta a produtividade;
  • Os momentos de retrospectiva em equipa são fundamentais, para que se possam fazer os ajustes necessários e torná-la mais eficaz.

No fundo, o desenvolvimento agile segue um modelo incremental, que fomenta a colaboração entre a equipa, o planeamento contínuo, mas também a contínua evolução e aprendizagem. As metodologias agile devem respeitar o ciclo de desenvolvimento de software – planeamento, execução e entrega final – permitindo que o software seja desenvolvido por etapas, tornando mais fácil a identificação de eventuais bugs bem como a sua resolução.

A principal vantagem da utilização de metodologias agile não reside apenas no facto da entrega de software ser mais rápida, mas sim na constante entrega de valor ao cliente, uma vez que as entregas são incrementais.

 Existem inúmeras metodologias que seguem este mindset agile. Neste blog post selecionamos aquelas que são as 5 principais metodologias agile e quais as suas vantagens e desvantagens no universo do desenvolvimento de software.

Principais metodologias agile:

1. Scrum

Scrum é uma das muitas frameworks da metodologia agile, mas é, sem dúvida, a mais utilizada. Scrum carateriza-se pelos ciclos ou etapas de desenvolvimento, definidas como sprints, e pela maximização do tempo de desenvolvimento de um produto de software. É tipicamente utilizado na gestão de projetos de desenvolvimento de produtos de software, mas também pode ser utilizado em contexto de negócio..

Todos os dias existem pequenas reuniões de 15 minutos, as daily scrum, que funcionam como um sincronizador de atividades e como forma de planear o dia de trabalho.

Vantagens: Desvantagens:
  • Existe uma grande motivação nas equipas, devido ao facto de os programadores quererem cumprir o prazo de entrega de cada sprint;
  • A transparência existente permite que o projeto possa ser acompanhado por todos os membros de uma equipa ou mesmo de uma organização;
  • O foco na qualidade é uma constante no método Scrum, o que faz com que existam muito menos erros.
  • A dinâmica que caracteriza este método permite aos developers a reorganização de prioridades, garantindo que as sprints que ainda não foram terminadas possam receber mais atenção.
  • A segmentação do projeto e a procura pela agilidade de desenvolvimento pode, por vezes, levar a equipa a perder a noção do projeto como um todo, concentrando-se apenas na sua parte;
  • A função de cada developer pode não estar bem definida, o que pode fazer com que alguns membros da equipa fiquem confusos.

2. Kanban

A palavra Kanban é de origem japonesa e o significado encontra-se ligado a um conceito temporal, “just-in-time”. Na prática, no método Kanban existe um quadro ou tabela (o Kanban Board), dividido em colunas, que indica todos os fluxos de produção do desenvolvimento de software. À medida que o desenvolvimento vai evoluindo, a informação presente nas tabelas vai mudando, e, quando surge uma nova tarefa, cria-se um novo “card”.

O método Kanban exige comunicação e transparência, para que os membros de uma equipa saibam precisamente em que ponto se encontra o desenvolvimento e para que possam ver em que estado se encontra o projeto em qualquer altura.

Vantagens: Desvantagens:
  • Capacidade de visualização sobre todas as tarefas de um projeto (Concluído, Em Processo ou em Testes, por exemplo);
  • Possibilidade de limitar o número de tarefas em andamento (ou seja, é possível controlar a quantidade de trabalho, tendo em conta a capacidade de resolução ou entrega);
  • Concentração na duração de um ciclo – quanto tempo demora uma tarefa para ir do backlog até à fase final;
  • Permite entregas contínuas.
  • Existe a possibilidade de os membros de uma equipa poderem interpretar mal a informação refletida no Kanban Board, especialmente quando este se revela ultrapassado;
  • Como não existem timeframes no Kanban, existe a hipótese de se enfrentar problemas de falta de tempo ou de atrasos, associados a cada uma das fases.

3. Extreme Programming (XP)

É uma típica framework de Agile Development, desenvolvida por Kent Beck, adaptável a empresas de desenvolvimento de várias dimensões. É uma metodologia que enfatiza valores como a Comunicação, a Simplicidade, o Feedback, a Coragem e o Respeito, priorizando a satisfação do cliente acima de tudo. Esta é uma metodologia que oferece confiança aos developers, motivando-os, e incentivando-os a aceitar mudanças nos requisitos do cliente, mesmo que estas já cheguem numa fase tardia do ciclo de desenvolvimento.

O trabalho de equipa é extremamente importante no XP, já que, quando existe um problema, o mesmo é resolvido em conjunto, seja por managers, developers ou clientes. Todos são peças importantes do mesmo esquema, criando o ambiente propício para tornar a equipa altamente produtiva e eficaz. Em Extreme Programming, o software é testado desde o primeiro dia, recolhendo feedback para melhorar o desenvolvimento.

Vantagens: Desvantagens:
  • A simplicidade do código escrito funciona como uma vantagem, já que permite a sua melhoria a qualquer momento;
  • Todo o processo e todo o ciclo de desenvolvimento XP é visível, criando metas para os developers e mostrando resultados de forma relativamente rápida;
  • O desenvolvimento de software acaba por ser ainda mais ágil do que em outras metodologias, precisamente devido aos testes constantes;
  • A XP contribui, também, para a motivação do talento nas equipas e para a sua retenção.
  • O foco extremo no código pode levar a que se atribua menos importância ao design, obrigando a uma atenção extra neste ponto;
  • Esta framework pode não funcionar da melhor forma se todos os membros de uma equipa não se encontrarem no mesmo espaço geográfico;
  • Nos projetos XP, o registo de possíveis erros nem sempre é realizado, e essa falta de documentação pode levar à ocorrência de bugs semelhantes no futuro.

4. Lean Development

Lean Development é uma metodologia que deriva diretamente da Lean Manufacturing, criada pela Toyota, e aplicada ao desenvolvimento de software. Este método oferece uma framework conceptual e segue valores, princípios e boas práticas de desenvolvimento, que podem ser aplicados a uma abordagem de desenvolvimento agile.

Lean Development é uma metodologia que conta com 7 princípios fundamentais: Eliminar o que não interessa (tudo o que não trouxer valor efetivo para o projeto do cliente, é para eliminar);  Desenvolver com qualidade (criar qualidade no desenvolvimento exige disciplina e controlo na quantidade de resíduos criados); Criar conhecimento (a equipa é incentivada a documentar toda a infraestrutura, para mais tarde, reter esse valor); Diferir compromissos (este ponto encoraja a equipa a não planear demasiado e a não antecipar ideias sem antes ter um entendimento completo dos requisitos do negócio); Entregar depressa (entregar valor ao cliente, o quanto antes); Respeitar a equipa (comunicar e gerir os conflitos são duas questões essenciais); e, por fim, Otimizar o todo (a sequência de desenvolvimento tem de ser aperfeiçoada o suficiente para conseguir eliminar defeitos no código, de forma a criar um fluxo de verdadeiro valor).

Vantagens: Desvantagens:
  • ·Permite à equipa a eliminação de atividade supérfula, poupando tempo e dinheiro;
  • Diminui o tempo necessário para entregar funcionalidades, já que capacita a equipa de desenvolvimento no processo de tomada de decisão, aumentando a motivação geral;
  • Metodologia facilmente escalável e de fácil adaptação a projetos de qualquer dimensão.
  • Metodologia muito dependente da capacidade de desenvolvimento da equipa e do cumprimento dos princípios Lean, o que significa que será necessário ter developers extremamente dedicados e talentosos;
  • Pode existir maior propensão para peder o foco, já que existem várias tarefas divididas por vários elementos;
  • Requer alguma documentação, nomeadamente sobre as características de negócio para o qual se trabalha. Caso contrário, corre-se o risco de o desenvolvimento ser feito de forma incorreta ou apresentar falhas.

5. Crystal

É uma família de metodologias agile, que inclui variantes como Crystal Clear (para uma equipa até 8 pessoas), Crystal Yellow (para uma equipa entre 10-20 pessoas), Crystal Orange (para equipas entre 20-50 pessoas) ou Crystall Red (para equipas de grande escala, entre 50-100 pessoas). Crystal foca-se em princípios como as Pessoas, as Interações, a Comunidade, os Skills, o Talento e a Comunicação, fazendo com que o desenvolvimento de software corra da melhor forma. O core deste processo de desenvolvimento passa pela interação e simbiose que tem de acontecer entre as pessoas alocadas aos projetos e os processos, de forma a tornar o desenvolvimento eficaz.

Segundo o seu fundador, Alistair Cockburn, “Crystal é uma família de metodologias de desenvolvimento de software que funciona com o poder investido pelas pessoas, é extremamente leve e ‘stretch-to-fit’”. No fundo, Cockburn acreditava que o talento e a forma como os membros da equipa interagiam traria benefícios para todo o projeto.

Vantagens: Desvantagens:
  • Garante entregas frequentes, de forma a poder identificar eventuais problemas em todas as fases;
  • Existe sempre espaço para a melhoria de características, tirando algum tempo ao desenvolvimento de software e permitindo a discussão sobre como aprimorar processos;
  • Permite uma comunicação próxima e promove a interação e partilha de conhecimentos entre os membros das equipas;
  • Exige um ambiente técnico, com automated tests, configuration management e integração frequente.
  • O facto de ter variantes na família de metodologias, faz com que os princípios possam variar também com o tamanho da equipa e a dimensão do projeto, tornando-os pouco claros;
  • Pode não resultar para equipas distribuídas por vários locais, devido à constante necessidade de comunicação e reflexão;
  • O planeamento e o desenvolvimento não dependem dos requisitos.

Na Xpand IT, o desenvolvimento de software é feito à medida, sempre com foco nos resultados e na satisfação do cliente, fase por fase. Todo o desenvolvimento é regido por princípios agile. Por isso, para respeitar o ciclo de desenvolvimento, atingir os resultados desejados, antecipar possíveis erros, maximizar a produtividade e desenvolver de forma segura mantendo os membros das equipas motivados, criámos a nossa metodologia: o XPAgile (uma combinação entre duas frameworks agile, Scrum e Extreme Programming, que garante os melhores resultados, sempre dentro dos prazos estipulados).

Se pretende saber mais sobre a metodologia de desenvolvimento da Xpand IT, clique aqui.

Ana LamelasAs 5 principais metodologias agile: vantagens e desvantagens

Leia mais em

Atlassian

Recomendados

Conheça as novidades, eventos e opinião dos mais reconhecidos experts
do universo de TI, nas áreas de Big Data, Business Intelligence,
Middleware e Mobile.