O manifesto ágil foi assinado em 2001 pelos principais profissionais veteranos na área de desenvolvimento de softwares engajados em discutir uma nova forma para melhor a velocidade no desenvolvimento de seus sistemas baseados em suas experiências de anos programando. Embora cada envolvido tivesse suas próprias práticas e teorias preferidas, todos concordavam que, em suas experiências prévias, os projetos de sucesso tinham em comum um pequeno conjunto de princípios. Com base nisso eles criaram o manifesto para o Desenvolvimento Ágil de Software, freqüentemente chamado apenas de Manifesto Ágil.
Valores do Manifesto Ágil:
- Indivíduos e iterações são mais importantes que processos e ferramentas;
- Software funcionando é mais importante do que documentação completa e detalhada;
- Colaboração com o cliente é mais importante do que negociação de contratos;
- Adaptação a mudanças é mais importante do que seguir o plano inicial.
1. Indivíduos e Iterações
- O foco tradicional é em Processos e Ferramentas;
- Quem produz software são pessoas, indivíduos reunidos em equipes complementares;
- Pessoas precisam aprender a trabalhar juntas, como numa banda, é necessário praticar uma ou mais vezes para aprender a tocar juntos e a executar a musica com perfeição.
2. Software Funcionando
- O foco tradicional é desenvolver uma documentação detalhada;
- A quantidade e complexidade de detalhes de requisitos, arquitetura, design e implementação só podem ser ajustados obtendo feedback, papel não consegue dar feedback suficiente para ajustar a estratégia.
3. Colaboração com Cliente
- Entender as necessidades de negócio e propor soluções com objetivos voltados para dar resultados de negocio;
- Ajustar entendimento do negocio e dos requisitos que fornecem valor.
4. Responder a mudanças
- Requisitos mudam;
- Negócios mudam;
- Entendimento é aprimorado e mudam;
- Abordagens mudam.
Princípios do Manifesto Ágil:
- Nossa mais alta prioridade é satisfazer o cliente através de entregas continuas de software que agregue valor;
- Entregar versões funcionais em prazos curtos;
- Medir o progresso através de software funcionando;
- Simplicidade é essencial;
- De tempos em tempos, o time pensa em como se tornar mais eficiente e ajusta o seu comportamento de acordo;
- Acolhemos mudança de requisitos, inclusive tarde no desenvolvimento. Processos ágeis permitem mudanças que contribuam para a vantagem competitiva dos nossos clientes;
- Desenvolvedores e o pessoal de Negócios devem trabalhar juntos durante todo o projeto;
- Construa projetos ao redor de indivíduos motivados. Ofereça o ambiente e suporte que eles precisam, e confie neles para ter o trabalho feito;
- A forma mais eficiente e eficaz de fazer saber informação para e entre uma equipe de comunicação é face a face;
- As melhores arquiteturas, requisitos, e projetos emergem a partir de equipes auto-organizadas.
Modelos Tradicionais x Métodos Ágeis
Modelos Tradicionais | Métodos Ágeis |
---|---|
Resistir às mudanças | Abraçar as mudanças |
Planejar muito bem antes | Planejar o tempo todo |
Principais Características dos Métodos Ágeis
- Entregar valor;
- Ênfase em comunicação;
- Eliminar desperdícios;
- Entrega freqüente de código funcionando;
- Aproveitar as habilidades das pessoas;
- Alta qualidade;
- Melhorar constantemente.
Principais Métodos Ágeis
- Programação eXtrema (XP);
- Scrum;
- Feature Driven Development (FDD);
- Adaptive Software Development;
- etc..
Há um livro de XP muito interessante e de fácil entendimento, cujo nome é “Extreme Programming Explained” ou “Programação Extrema (XP) Explicada” (versão em português). Este livro foi escrito por nada mais nada menos que Kent Beck, o pai do XP.
Referências e leituras recomendadas:
http://pt.wikipedia.org/wiki/Desenvolvimento_%C3%A1gil_de_software
http://manoelpimentel.blogspot.com/