Nos últimos anos, grandes e pequenas empresas de desenvolvimento de softwares têm conseguido entregar mais em um menor tempo e com um menor custo.

Grande parte desse ganho se dá pela utilização das chamadas metodologias ágeis.

Neste post vou falar um pouco sobre o que são as metodologias ágeis e como surgiu essa cultura, que é o manifesto ágil.

 

Existem diversas maneiras de desenvolver um software, falei nos posts anteriores um pouco sobre diversos Processos e Modelos de Desenvolvimento de Software e também sobre o RUP que é um processo robusto e usado no desenvolvimento de grandes softwares.

A questão é, o que apresentei até agora foram metodologias e processos que chamamos de tradicionais, e neste post irei apresentar uma nova forma de se fazer a mesma coisa, uma maneira diferente de se construir softwares.

 

Metodologia Ágil

Nas metodologias ágeis, nós executamos as mesas fases das metodologias tradicionais.

A especificação, desenvolvimento, validação e evolução são comuns à todo tipo de processo, porém agora fazemos de um modo diferente, onde a documentação é mínima e a comunicação é mais intensa.

Nas metodologias ágeis não precisamos de especialistas em atividades técnicas e sim equipes completamente envolvidas no projeto, precisamos de pessoas que tomam decisões (autogestão).

Todas as tarefas são bem transparentes e a metodologia ágil expõe as nossas fragilidades muito rápido para todos, por isso algumas pessoas não se adaptam.

São exigidos de uma equipe que trabalha com metodologias ágeis os seguintes requisitos:

  • Competência técnica;
  • Foco em comum;
  • Colaboração;
  • Capacidade de tomada de decisões ;
  • Auto organização;
  • Respeito e confiança mútua.

 

O manifesto Ágil

Em 1996, a empresa Chrysler estava com um sério problema em seu projeto C3 (Sistema de Compensação Abrangente da Chrysler). Eram ao todo quatro sistemas que controlavam nada menos que a folha de pagamento de aproximadamente 86 mil funcionários.

O objetivo da Chrysler era unificar os sistemas em apenas um software, e para isso chamaram o Engenheiro de Software Kent Beck para liderar a operação.

Após três dias analisando o cenário e o projeto C3, Beck ofereceu três opções à Chrysler:

  1. deixar da forma que estava;
  2. demitir todos os funcionários e cancelar o projeto e;
  3. conceder uma semana de folga e começar o projeto do zero.

A Chrysler optou pela terceira opção e foi então que, através de Kent Beck, foi utilizada pela primeira vez o XP (Extreme Programming), conhecida como a primeira metodologia ágil, e desde então o XP vem sendo evoluído.

Na primavera de 2000, reuniram-se na parte rural de Oregan, os líderes da comunidade do Extreme Programming com o intuito de discutir diversas questões que envolviam a metodologia, e uma delas foi a relação do XP com os chamados “métodos leves”, que eram processos usados na época que não exigiam tanta documentação como os tradicionais.

Nesta reunião estava Robert Cecil Martin (conhecido como Tio Bob), que decidiu reunir em 2001, nas montanhas nevadas do estado norte-americano de Utah no resort de inverno e verão Snowbird (foto no post), pessoas interessadas nos métodos leves.

Apareceram para a reunião 17 pessoas que chegaram a um consenso comum sobre importantes aspectos do desenvolvimento de software e escreveram um documento que serviria como grito de guerra aos novos processos. Eles o chamaram de Manifesto Ágil.

O que foi definido na reunião de 2001 serve como princípio para toda metodologia ágil.

 

 

 

 

Princípios do manifesto ágil

  1. A prioridade é a necessidade real do cliente;
  2. Aceitar a qualquer momento mudanças de requisitos (a vantagem é a satisfação do cliente e a desvantagem são os riscos);
  3. Entregar software funcional frequentemente (Curto tempo);
  4. O cliente e o desenvolvedor devem estar próximos;
  5. Manter os indivíduos motivados, pois é uma forma de manter a qualidade. (Tira a responsabilidade de uma única pessoa, o gerente, e entrega a todos);
  6. O método mais eficiente de transmitir informações é através da comunicação cara a cara. (comunicação é uma habilidade muito exigida);
  7. Software funcional é a primeira medida de progresso;
  8. Precisamos construir e definir um ritmo para as coisas acontecer atendendo sempre a necessidade do cliente (pensamos em várias formas de automatizar para manter a sustentabilidade);
  9. Excelência técnica (código padronizado e documentado) para garantir a qualidade;
  10. Simplicidade (imaginar o escopo sempre de forma simples pensando que ele pode ser modificado);
  11. Equipes auto organizáveis;
  12. Intervalos regulares e frequentes onde todos trabalhem com todas as tarefas.

Confira o texto oficial: http://agilemanifesto.org/iso/ptbr/manifesto.html

Principais tipos de Métodos Ágeis

Existem diversas metodologias que são baseadas nestes princípios, como FDD, XP, MSF, DSDM e Scrum, vou falar um pouco sobre cada uma delas nos posts a seguir.

E vale lembrar que não existe uma metodologia melhor que a outra, existe a solução mais adequada dentro do contexto de cada empresa.