Introdução ao desenvolvimento ágil…
Antes de entrar em detalhes e metodologias ágeis, é necessário que você tenha lido o post “Repensando o desenvolvimento de software” e que conheça o que foi o Manifesto Ágil, responsável por essa revolução na forma de pensar o desenvolvimento de software.
O manifesto ágil foi criado em 2001 por profissionais experientes no desenvolvimento de software. Esses profissionais resolveram criar esse manifesto por perceberem que o desenvolvimento de software tradicional, cada vez mais, gerava grandes problemas e ate culminava em softwares fracassados.
Abaixo segue o Manifesto:
“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. “
O conteúdo original em inglês pode ser lido acessando: http://www.agilemanifesto.org/
Partindo desse texto, chegamos à conclusão de que o desenvolvimento ágil não se limita a um processo que deve ser seguidos a risca para se desenvolver softwares de qualidade. O manifesto ágil é na verdade, um conjunto de valores importantes no desenvolvimento para que um software consiga obter sucesso. Além disso, desenvolvimento ágil é uma mudança drástica de cultura.
Por tanto, desenvolvimento ágil não é uma simples receita. Porém, utilizando os valores destacados nesse manifesto, existem algumas metodologias de desenvolvimento. Dentre elas o Extreme Programming, ou simplesmente XP, que é um conjunto de práticas que se baseiam nos valores do manifesto ágil.
Quando se desenvolve software utilizando uma metodologia ágil, no caso o XP, o foco do desenvolvimento está em gerar valor para o cliente. Tentando evoluir continuamente durante o projeto, sempre buscando aumentar a produtividade e melhorar a qualidade do produto final. Partindo dessa premissa, o XP utiliza alguns “recursos” que ajudam a produzir um software de qualidade que atenda as necessidades do cliente.
XP se baseia em 5 valores básicos. Comunicação, Coragem, feedback, respeito e simplicidade. Não da para usar XP sem que esses valores sejam levados em consideração.
Vamos discutir cada um desses valores de forma resumida.
A comunicação é uma das partes mais importantes. O XP parte do principio de que a comunicação direta e constante entre o cliente e os desenvolvedores, faz com que o software final, atenda as expectativas e necessidades do cliente. Muitas vezes os clientes acreditam saber o que querem logo no inicio do projeto. Porém isso dificilmente é verdade. O cliente geralmente tem algo completamente abstrato em mente e aprende com o sistema cada vez que se depara com parte dele funcionando. Dessa forma a comunicação gera aprendizado para o cliente e para os desenvolvedores. Também é de extrema importância que haja comunicação constante entre os membros da equipe.
É preciso ter coragem para começar a utilizar o XP em seus projetos. Primeiro, porque XP pode ser uma mudança cultural muito grande para sua equipe e para a maioria dos seus clientes. Segundo, porque é preciso ter confiança para decidir apenas o que é necessário agora e deixar as coisas do futuro para o futuro.
Feedback. A partir da comunicação constate e direta entre o cliente e os desenvolvedores, sempre haverá um aprendizado de ambas as partes, como já foi dito. Com isso o cliente estará sempre gerando um feedback para a equipe. Além disso, como no XP os releases são muito curtos, o cliente terá sempre um software para colocar em produção gerando um feedback dos usuários de forma muito rápida. Isso agrega ainda mais valor para o produto final.
Se não houver respeito entre integrantes de uma equipe XP, dificilmente haverá uma comunicação adequada entre membros da equipe o que poderá criar ambientes competitivos. Isso é gravíssimo em um projeto XP, já que no Extreme Programming o código é gerado e mantido por todos (código coletivo) e por isso precisa de um ambiente onde todos devem cooperar para o sucesso do projeto.
Simplicidade. XP parte do principio de criar menos software, ou softwares mais simples. No XP, menos é mais. Muitas vezes um software é desenvolvido para fazer de tudo. Nesses casos o que acontece é que o software faz de tudo menos o que realmente precisa fazer. Além desse problema o código do sistema fica complicado e de difícil reutilização. Isso pode gerar grandes problemas no futuro.
Partindo desses valores, o XP utiliza diversas práticas, dentre elas: Cliente presente, jogo do planejamento, stand up meeting, programação em par, desenvolvimento guiado por testes, refactoring , código coletivo e padronizado, design simples,metáfora, ritmo sustentável, integração continua e releases curtos.
Durante esse mês, dedicarei um post único para cada prática do XP. Dessa forma você poderá entender melhor o objetivo dessa metodologia e os seus benefícios no desenvolvimento de software.
Nessa semana irei me aprofundar nos conceitos básicos e fundamentos do Extreme Programming. Apresentarei um pequeno histórico. Além disso, farei observações mais detalhadas sobre os valores dessa metodologia, sempre comparando com os valores do desenvolvimento tradicional.