As Metodologias Ágeis de desenvolvimento de software estão em evidência nos últimos tempos. O interessante é observar o porquê dessa evidência.
Essas metodologias apresentam práticas que não são novidades, como a utilização de um ciclo de vida iterativo e incremental, por exemplo, que é também, encontrada no ciclo de vida do framework RUP (Rational Unified Process) e em outras metodologias mais “tradicionalistas”. Por muito tempo as empresas, por puro modismo, passaram a utilizar processos baseados em RUP e obtendo consequências alarmantes quando, por falta de bom senso e não por conta da metodologia (Vale ressaltar!), emperram o seu processo na burocracia e na preocupação em cumprir a risca o próprio processo.
Um processo de desenvolvimento de software é um conjunto de atividades distribuídas em várias fases de um ciclo de vida, que possuem o objetivo geral de se produzir um software de qualidade. Por muito tempo as empresas que desenvolvem software, sejam empresas que tenham o software como fim ou como meio, viveram no meio de um caos que pode até mesmo ser o que eu chamo de “caos em falso controle”. Nesse “caos em falso controle” as empresas possuem um processo bem denifido e até bem conhecido por seus funcionários, mas ainda sim não conseguem obter qualidade nos seus produtos, sofrendo ainda com estouros de prazos como regra e não exceção, o que também tem como consequência estouro nos custos planejados como regra, custos que acabam por serem repassados muitas vezes para o cliente.
Em 2001 ocorreu um movimento em que envolveu 17 pessoas, dentre essas engenheiros de software, consultores e desenvolvedores que criticavam algumas práticas de Engenharia de Software. Então essas pessoas assinaram um manifesto que propunha alguns valores para o desenvolvimento ágil de software, são os valores:
- 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
Esses valores apresentados no manifesto ágil são os prováveis motivos da evidência das metodologias ágeis,visto que entre as pessoas que assinaram o manifesto encontram-se os criadores de várias metodologias como XP, SCRUM, entre outras. Eles declararam que mais importante que seguir um processo massivo apenas por que a empresa o adotou é saber o que as pessoas pensam disso, pensar em motivar as pessoas que desenvolvem os projetos de software, alimentar a comunicação, a franqueza e a colaboração dessas pessoas entre si de modo que todos entendam que possuem um objetivo comum, desenvolver um produto de qualidade. Mais importante do que fazer documentação em excesso é desenvolver um software que funcione corretamente e atenda as espectativas do cliente. É importante colaborar com o cliente, mais do que negociar novos contratos. Eles entendem que mudança é algo bom, desde que essa mudança agregue valor ao produto para o cliente. Relizar mudanças envolve obter um software de qualidade, vendo qualidade do ponto de vista da satisfação do cliente.
Como disse antes, algumas práticas das metodologias ágeis não são novidades, mas o novo foco apresentado pelos valores e princípios do movimento ágil agradam e estão dando muitos resultados, porém se as empresas derem importância apenas as práticas apresentadas pelas diversas metodologias, esquecendo dos valores e princípos do Agilemanifesto.org, essas também tenderam a ser mais algumas metodologias que não funcionam e causam novos problemas, e serão apresentadas como péssimos exemplos por futuros “xiitas” que terão novas metodologias como a “bala de prata” que resolve todos os problemas da engenharia de software.