A metodologia ágil surgiu a partir de um manifesto realizado em fevereiro de 2001 por um grupo de pensadores renomados e independentes sobre desenvolvimento de software, e às vezes concorrentes entre si, que concordaram com o Manifesto para Desenvolvimento Ágil de Software. O manifesto for Agile Software Development, ou simplesmente Manifesto Ágil que diz:
O movimento formalizou princípios básicos que dão suporte aos métodos ágeis de desenvolvimento de software. Foram criados então os 12 princípios da construção de um software rápido:
| “Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através deste trabalho, passamos a valorizar: |
|
| Indivíduos e interação entre eles | 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.” |
|
1. Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.
2. Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas.
3. Entregar software funcionando com frequência, na escala de semanas até meses, com preferência aos períodos mais curtos.
4. Pessoas relacionadas a negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto.
5. Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.
6. O método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara.
7. Software funcional é a medida primária de progresso.
8. Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes.
9. Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
10. Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.
11. As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis.
12. Em intervalos regulares, o time reflete como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.