Engenharia Clássica X Desenvolvimento Ágil - Revista Engenharia de Software Magazine 52
Este Artigo faz parte da Revista Engenharia de Software Magazine 52 Ver Revista
Este artigo é útil para todas as partes envolvidas no desenvolvimento de software. Não só a parte da equipe de T.I., mas clientes que desejam adquirir uma solução informatizada para seu negócio, pois um dos pontos que mais contribui para o insucesso de projetos de software é a falha de comunicação entre as partes.
O processo de desenvolvimento de software é muitas vezes considerado uma arte. Nos primórdios, era a arte de conseguir produzir um software de conteúdo relevante em um hardware de capacidade limitada. Atualmente é a arte de conseguir fazer com o que o software cumpra com o que foi prometido ao cliente. A engenharia de software clássica, em tese, é um modelo de desenvolvimento a ser aplicado para garantir qualidade ao software, mas problemas constantes como prazos, falha de requisitos e confiança do cliente, fez com que o manifesto ágil fosse elaborado; um método de alta interatividade com o cliente, mas que ainda assim não resolve um problema em comum: a maturidade tecnológica.
Autores: Bruno Manguinho, Francisco Matos Pereira e Rodrigo Oliveira Spínola
Software: um problema no horizonte
Começaremos o artigo utilizando uma frase de Roger S. Pressman publicada em seu livro Engenharia de Software no ano de 1992: "Percebe-se que o processo de desenvolvimento de software naquela época já encontrava dificuldades na entrega da qualidade do produto e que este seria um problema que ainda assombraria por muitos anos os desenvolvedores de software, e por que não, os clientes que pagam por ele".
O software é um produto feito para ser executados em máquinas tecnológicas e que, seguindo um determinado conjunto de ações, atende as necessidades do usuário final. Com base nesse conceito, é fácil imaginar que uma equipe de T.I. composta por profissionais competentes, operando computadores com ferramentas de desenvolvimento, tendo em mãos documentos com as especificidades que o software deve seguir, o produto final será entregue seguindo suas conformidades e o cliente sairá satisfeito.
Entretanto, trazer isso para a realidade não é fácil como parece. A engenharia de software é uma área do conhecimento que vem, a cada dia, aprimorando as técnicas de desenvolvimento de software. O desenvolvimento ágil faz parte da engenharia de software, priorizando algumas métricas e minimizando (quase extinguindo) outras. Neste contexto, este artigo apresentará uma breve introdução a essas duas áreas (engenharia clássica e ágil), primeiro explanando um pouco sobre a engenharia clássica, abordando de forma sumária alguns ciclos de vida e o processo de desenvolvimento. Depois discutiremos o desenvolvimento ágil, explicando como surgiu o seu manifesto, as propostas de melhoria em relação ao modelo clássico e algumas práticas aplicadas do modelo. Por fim, iremos comparar os dois modelos de desenvolvimento, apontando suas vantagens, desvantagens e seus pontos em comum, além de uma ponderação final a respeito desta comparação.