Metodologias ágeis buscam prover um modo de trabalho para o desenvolvimento de software que ataca os riscos mais comuns desta atividade. Este modo é baseado em princípios que, ao contrário de outras metodologias mais pesadas e formais, valorizam garantir a satisfação do usuário através de ciclos curtos de desenvolvimento, chamados de iterações, e da interação freqüente dos desenvolvedores e outros atores envolvidos no processo.
Garantindo que a cada iteração tenha-se uma aplicação usável, os métodos ágeis atacam os riscos comuns dos métodos que envolvem um grande esforço de planejamento e especificação antes de se iniciar o desenvolvimento propriamente dito. A comunicação constante e em tempo real dos desenvolvedores (preferencialmente de maneira presencial) ataca os problemas de comunicação e entendimento e, ao mesmo tempo, evitam a necessidade de documentação formal e extensiva. A cada ciclo novos requisitos são atendidos e novas funcionalidades adicionadas ao produto. Desta maneira projetos de todas os portes podem ser desenvolvidos com os métodos ágeis.
Os métodos ágeis têm seus princípios fundamentais descritos no Manifesto para o Desenvolvimento Ágil de Software. O Manifesto Ágil
(http://agilemanifesto.org/) foi rascunhado em Fevereiro de 2001 por 17 desenvolvedores, dentre eles alguns dos maiores defensores destas metodologias como
Kent Beck,
Martin Fowler e
Ken Schwaber. O manifesto
declara 4 princípios:
* Indivíduos e interações sobre processos e ferramentas.
* Software funcional sobre documentação extensiva.
* Colaboração com o cliente sobre a negociação de contratos.
* Responder a mudanças sobre seguir um plano.
Tendo trabalhado tanto com os métodos mais tradicionais (planejados e cascata) e com métodos ágeis como
Scrum e
XP, tenho clareza de que os métodos ágeis oferecem uma vantagem sem comparações para aplicações onde os requisitos mudam constantemente como é o caso das aplicações web. Porém, é fundamental que toda a organização abrace a nova maneira de se fazer software em sua plenitude, pois o risco de se acabar com um processo disfuncional é grande caso isto não aconteça. Outra ponto que temos observado na
WebCo Internet (onde desenvolvemos o
BlogBlogs e o
Brasigo) é que o uso apenas de uma metodologia ágil como Scrum, no caso, não traz todo o potencial esperado para o trabalho. É fundamental que também se adote conceitos de
engenharia de software adequados ao trabalho em questão. No nosso caso temos adotado, além do Scrum, alguns conceitos de Programação Extrema (XP ou Extreme Programming) como Desenvolvimento Orientado a Testes (TDD ou
Test Driven Development), Programação em Pares (
Pair Programming) e
Integração Contínua.
O maior risco, em minha opinião, para os métodos ágeis é o de abraçá-los parcialmente ou com a atitude errada. É fundamental o engajamento de toda a organização, o contato constante da equipe e a presença do cliente ou seu representante (o Scrum Master no caso do Scrum). Por outro lado, quando aplicado corretamente os métodos ágeis trazem, gradativamente, o desenvolvimento sustentável e eficiente. Por fim, nunca confunda pressa com eficiência.
--
Manoel Lemos - http://manoellemos.com - é engenheiro da Computação formado pela UNICAMP, é o criador do BlogBlogs e do Brasigo, ambos produtos da Webco Internet, empresa brasileira de web 2.0 voltada para o conteúdo em língua portuguesa e que valoriza as cores locais. Atuou como diretor de P&D e Tecnologia da Hypercom Corporation, e na startup PageMe.com. Trabalhou também com Consultoria em TI para o Ministério da Saúde, o Ministério da Ciência e Tecnologia e a Sociedade da Informação [SocInfo]. Manoel também atuou como consultor em importantes projetos nas áreas de sistemas de informação em saúde e em democracia eletrônica, incluindo o Livro Verde da Sociedade da Informação do Brasil e o Livro Branco da Democracia Eletrônica da cidade de Issy Les Moulineaux na França.