Desenvolvimento: Tradicional x  Ágil de Software

Desenvolvimento: Tradicional x Ágil de Software

Ao longo dos artigos desenvolvidos para esse blog, um termo muito comum atravessou a maioria das análises, “desenvolvimento ágil de software”. Porém, apesar de muito citado e comentado, pouco foi feito no sentido de examiná-lo e explica-lo por aqui. Por esse motivo, este artigo dedica-se exatamente a isto, definir e analisar o que de fato trata o desenvolvimento ágil para softwares.

Primeiramente, é preciso entender que o desenvolvimento ágil nasceu em detrimento das práticas tradicionais de desenvolvimento no campo dos sistemas de informação. Na metodologia tradicional, o projeto se desenvolve através do modelo em cascata no qual o software é construído através de uma sequência de fases dependentes entre si para o andamento do desenvolvimento geral. Ou seja, com exceção da primeira, a próxima fase sempre depende da conclusão da anterior.

Outro ponto importante, é que dentro do desenvolvimento tradicional, cada fase representa uma etapa a ser concluída. Geralmente, o modelo mais seguido de cascata é através das seguintes fases: Análise, design, implementação, testes, implantação e manutenção. E dentro de sua metodologia de desenvolvimento parte de algumas premissas básicas que servem de norte teórico, a linearidade e a especialização são pontos chaves de orientação no desenvolvimento tradicional.

Entretanto, apesar de ainda ser amplamente utilizada hoje em dia, o desenvolvimento em cascata não contempla eficientemente as etapas de desenvolvimento, e se mostra uma metodologia equivocada, tanto pelos resultados de produtividade baixos, como também por gerar profissionais muito mecânicos e pouco criativos em relação a ideias e desafios impostos pelo trabalho.

Logo, a partir de constatações tomadas por diversos profissionais e estudiosos de engenharia de software, foi identificado que só era possível minimizar riscos de desenvolvimento quando tratado de forma diferente do que fora tradicionalmente ensinado. Nesse sentido, foi criado o “Manifesto para o Desenvolvimento ágil de Software”, ou para os íntimos, o “manifesto ágil” que relacionava diversos princípios de orientação para a realização do desenvolvimento ágil de software.

A metodologia ágil de desenvolvimento se dava através do modelo em espiral, onde todas as fases do modelo tradicional eram executadas diversas vezes ao longo do projeto por meio de ciclos e repetições, gerando softwares funcionais, testados e aprovados. E a cada novo ciclo mais funcionalidades e interações são adicionadas e testadas ao projeto, para que ao final do desenvolvimento se tenha um produto com todas as funcionalidades em concordância com o projeto e aprovadas pelos testes anteriores.

Dentre as premissas do desenvolvimento ágil vale ressaltar o comprometimento com o cliente e usuário. Processos e ferramentas não são tão importante quanto os indivíduos e a interação. O software em completo funcionamento em detrimento de um roteiro rígido e sem mudanças. A capacidade de tomar erros como oportunidades dentro do desenvolvimento ao invés de fracassos operacionais. A capacidade do cliente aprender com o seu produto através do desenvolvimento do mesmo.

Em segundo lugar, economicamente falando, uma das premissas ágeis mais importantes é o conhecimento comprovado que os custos de alteração se mantém ao longo do projeto, em resposta ao que se acredita no tradicional de que estes crescem exponencialmente ao desenvolvimento. Essa linearidade de custos se dá através do uso de refatoração para melhorar e simplificar o design, testes automatizados, melhores linguagens e os avanços ocorridos na microinformática.

Por fim, o desenvolvimento ágil se apresenta como uma metodologia de desenvolvimento de software mais completa que a tradicional justamente por sua flexibilidade e poder de adaptação a diversos cenários, e também por buscar profissionais que enxerguem o desenvolvimento de maneira criativa. O desenvolvimento ágil é uma das premissas do XP (Extreme Programming) que desenvolvemos aqui na Zydax sempre buscando propor o melhor em nossos projetos.