Buscar

Comparação entre Metodologias Clássicas e Ágeis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Comparação entre Metodologias Clássicas e Ágeis 
 
 
EVANDRO RODRIGUES DE MORAES1 
 
Resumo: Neste artigo, nós estaremos vendo uma comparação entre metodologias tradicionais 
e ágeis no desenvolvimento de software. Em particular, a metodologia ágil será tratada com um 
pouco mais de detalhes, já que estaremos fazendo uma abordagem um pouco mais detalhista de 
seus objetivos. Em ambas as metodologias, daremos foco aos custos e resultados que podem 
ser obtidos quando utilizado as metodologias ágeis. Por fim, será proposta uma comparação 
entre as metodologias. 
 
Palavras-Chave: Metodologias, desenvolvimento de software, planejamento, organizacional. 
 
Comparison between Classical and Agile Methodologies 
 
 
Abstract: On this article, we will be seeing a comparison between traditional and agile 
methodologies for software development. The agile development in particular will be treated 
with some more details since we will be doing a more detailed approach to it´s objectives. For 
both methodologies we will focus on costs and results that can be reached using agile. Finally, 
a comparison between the methodologies will also be proposed. 
 
Keywords: Methodologies, software development, planning, organizational. 
 
1. Introdução 
O software, assim como todo capital, é um conhecimento incorporado pelo fato de 
inicialmente ele ser disperso, tácito, latente e incompleto. O desenvolvimento dele é um 
processo de aprendizado, um diálogo no qual o conhecimento e aprendizagem social fornecem 
subsídios para a criação de um software; tal é a interação entre usuários e projetistas, 
ferramentas e usuários, que o processo de desenvolvimento em si acaba se tornando um meio 
de comunicação, possibilitando a extração de mais conhecimento útil das pessoas envolvidas e 
favorecendo a evolução desse software. (BAETJER, 2011) 
Esse processo de desenvolvimento, ou melhor dizendo, processo de software de alta 
qualidade, seria ele um sinônimo de engenharia de software? Para Pressman a resposta seria 
sim e não, uma vez que o processo de software define uma abordagem na medida em que o 
software é construído pela engenharia. Já a engenharia engloba tecnologias que compõem o 
processo. 
 
1 Evandro Rodrigues de Moraes - Graduando em Análise e Desenvolvimento de Sistemas - FATEC Mogi Mirim 
Arthur de Azevedo 
E-mail: evandromoraes95@gmail.com 
 
2 
 
2. Desenvolvimento 
2.1 Metodologia Clássica 
Inicialmente foram propostos os modelos de processo prescritivo para auxiliar na área 
de desenvolvimento de software. Esses modelos tradicionais proporcionaram uma contribuição 
para a estrutura utilizada no trabalho de engenharia de software por um longo tempo. Porém, 
com o passar do tempo, a engenharia de software e seu produto continuam “à beira do caos”. 
(PRESSMAN, 2011) 
Essa classificação em que é colocada a engenharia de software, à beira do caos, é uma 
das implicações filosóficas que enriquecem a engenharia. Por exemplo, como os modelos 
clássicos são propostos para maximizar a estrutura e a ordem, não seriam eles inapropriados 
para um ambiente que tende a sofrer mudanças contínuas? Mas e se nós trocarmos esse modelo 
para um novo menos estruturado, seria ainda possível ter uma boa coordenação e coerência na 
desenvoltura do projeto? São situações difíceis e que necessitam de serem avaliadas para serem 
respondidas, mas temos que esclarecer que existem alternativas disponíveis para que os 
engenheiros de software explorem, uma vez que esses modelos de processo de software 
acomodam atividades metodológicas genéricas, mas que cada um deles tem como foco 
atividades diferentes e que definem um fluxo de processos que invocam atividades 
metodológicas. 
Não há respostas para perguntas como, deve-se adotar uma metodologia mais, ou 
menos, estruturada; o que temos são alternativas disponíveis para que os engenheiros tenham 
como opção. Uma delas são os modelos tradicionais porque transmitem um conjunto de 
atividades metodológicas, tarefas, produtos de trabalho, garantia de qualidade e mecanismos de 
controle de mudanças. Vamos examinar agora a abordagem de processos prescritivos, ou 
modelos clássicos, onde cada modelo de processo tem um fluxo de trabalho próprio, definindo 
assim a melhor forma para que os elementos serão inter-relacionados. (PRESSMAN, 2011) 
Entremos agora nas entrelinhas de uma das metodologias procedurais, ou metodologias 
tradicionais como ficaram conhecidas. 
2.1.1 Prototipação 
Geralmente é utilizado quando um cliente define os objetivos a serem atingidos para o 
software, porém ele não especifica detalhadamente os requisitos para determinar as funções e 
os recursos do sistema. Mas, também é comum de se encontrar o uso dessa metodologia quando 
o desenvolvedor não tem certeza sobre a eficiência dos algoritmos em um determinado 
ambiente, ou até mesmo em como deve ocorrer a interação entre homem e máquina. Para 
situações como essas, dentre outras, é comum abordar o problema através do paradigma da 
prototipação. 
O paradigma da prototipação tem início com a comunicação. É feita uma reunião com 
todas as partes envolvidas no projeto para que sejam definidos todos os objetivos principais do 
software, a partir daí são coletadas informações mais detalhadas sobre os requisitos que 
obrigatoriamente necessitam de uma definição mais bem especificada. Assim que uma iteração 
de prototipação é planejada, ocorre a sua modelagem, na forma de um projeto rápido, onde visa 
3 
 
em concentrar em uma representação dos aspectos do software visível aos usuários, como 
interfaces e formas de exibição na tela. 
O projeto rápido é o que gera a construção de um protótipo, ele será avaliado por todos 
os envolvidos para que que possam dar seus “feedbacks” e então, determinar quais os próximos 
aprimoramentos, isso ocorre conforme o protótipo se ajusta às necessidades dos interessados. 
Porém, os protótipos também atuam como mecanismo para coletar requisitos. Para protótipos 
operacionais por exemplo, pode-se utilizar partes de programas já existentes para agilizar o 
processo de geração dos protótipos e obter retorno das partes interessadas mais rapidamente. 
Brooks (1995), recomenda que o primeiro protótipo seja descartado, porque dificilmente ele é 
utilizável, devido a suas instabilidades, pode estar muito lento, grande, com usabilidade de 
difícil uso, ou até mesmo os três juntos, então para esses casos é comum recomeçar o projeto, 
porém ciente das dificuldades e necessidades de alteração na nova versão, o que facilita a 
evolução até a transformação do sistema real. 
Apesar de suas facilidades de interação entre cliente e desenvolvedor, já que os clientes 
conseguem ter uma visão prévia do sistema, podendo interagir e solicitar mudanças aos 
desenvolvedores, dos benefícios que o paradigma da prototipação trás, ela pode ser um pouco 
problemática em alguns fatores. É comum que durante a reconstrução desse sistema, a ideia 
seja manter o nível de qualidade e até mesmo melhora-lo, no entanto, as partes interessadas 
despertam o interesse de solicitar poucas alterações, com o intuito de tornar o protótipo no 
produto operacional, no entanto não é uma boa prática e deve ser evitada, pois acabam 
prejudicando a qualidade global do software e deixando de facilitar sua manutenção e 
modificações futuras. Podemos colocar a linguagem de programação como um exemplo disso, 
muitas vezes escolher a linguagem por estarem mais acostumados e não pelo ambiente em que 
ela será implementada em si ou porque oferece recursos ou facilidade de implementar 
algoritmos não por sua performance e sim para demonstrar capacidade. 
Apesar dos problemasque pode apresentar, o sucesso da prototipação vem juntamente 
de como é feito seu uso, o que pode o tornar um paradigma efetivo para a engenharia de 
software. Para que a metodologia seja utilizada efetivamente, é necessário que as regras sejam 
definidas logo no início de sua implementação, todos os envolvidos devem entender que o 
protótipo é construído apenas para servir como um mecanismo para auxiliar na definição de 
requisitos e, portanto, o mesmo será descartado e outro software final é arquitetado focando a 
qualidade. 
2.2 Metodologias Ágeis 
Em 2001, foi assinado o “Manifesto para o Desenvolvimento Ágil de Software” foi 
assinado por Kent Beck e outros dezesseis renomados desenvolvedores, consultores e autores 
da área de software. Eles desvendaram formas melhores de desenvolvimento e com isso deram 
início a um novo padrão de desenvolvimento, que tinha como intuito ajudar as pessoas a 
desenvolverem software. 
Essa metodologia diferentemente das demais existentes anteriormente, conseguia 
valorizar “Indivíduos e interações acima de processos e ferramentas. Software operacional 
acima de documentação completa. Colaboração dos clientes acima de negociação contratual. 
Respostas a mudanças acima de seguir um plano”. (PRESSMAN, 2011). Não apenas valorizar, 
4 
 
mas também conseguia sanar fraquezas reais que a engenharia de software convencional 
apresentava. Entretanto, não é indicado a ser aplicado como uma filosofia geral para todos os 
trabalhos de software, projetos e pessoas. 
Devido a economia nos dias atuais, é quase impossível se prever como um sistema irá 
evoluir ao passar do tempo, as condições de mercado estão em constante mudanças, ameaças 
competitivas surgem e as necessidades dos usuários sofrem alterações. Devido a essas 
condições não é possível determinar completamente os requisitos antes de dar início ao projeto, 
para isso é necessário que as mudanças sejam fluídas ao negócio do cliente. Fluidez implica 
diretamente em mudanças, o que geram elevados custos, principalmente sob uma má gestão. 
Contudo, as metodologias ágeis têm uma abordagem muito bem elaborada para reduzir os 
custos de mudanças ao longo do processo de desenvolvimento. 
Apesar das metodologias ágeis terem sido apresentadas para suprir deficiências das 
metodologias clássicas e resultar em melhorias em um contexto geral, ela realmente é melhor 
do que o modelo prescritivo? Segundo Alistair Cockburn (PRESSMAN, 2011, p.82), o ponto 
chave para essa resposta está na metodologia clássica, ela se esquece das fragilidades das 
pessoas que estão desenvolvendo aquele sistema. As pessoas apresentam estilos de trabalho 
diferenciados, níveis de habilidade, organização, criatividade, espontaneidade e consistências 
diferentes umas das outras. Cockburn (PRESSMAN, 2011, p.82) afirma que modelos de 
processos são capazes de “lidar com as fraquezas comuns das pessoas com disciplina e/ou 
tolerância” e que os processos prescritivos optam por disciplina, “como a consistência nas ações 
é uma fraqueza humana, as metodologias com disciplina elevada são frágeis”. 
Para que as metodologias funcionem então, elas devem apresentar mecanismos realistas, 
que estimulem a disciplina necessária ou então, que tenham uma certa “tolerância” com as 
pessoas que estão desenvolvendo os trabalhos de engenharia de software. Porém Cockburn 
ressalta, práticas de tolerância são mais adotadas e sustentadas pelas pessoas envolvidas nos 
projetos, porém podem acabar sendo menos produtivas. Logo, devemos considerar prós e 
contras para qualquer processo a ser adotado. (PRESSMAN, 2011) 
2.2.1 Fatores Humanos 
Antes de detalharmos algumas metodologias ágeis, devemos enfatizar a importância dos 
fatores humanos presentes dentro de “agile”. Cockburn e Highsmith (PRESSMAN, 2011, p.86) 
afirmam que, “O desenvolvimento ágil foca talentos e habilidades de indivíduos, moldando o 
processo de acordo com as pessoas e as equipes específicas”. Isso quer dizer que o processo se 
adapta às necessidades das pessoas e equipes e não o oposto como ocorre nas metodologias 
tradicionais. E, como os membros da equipe que orientam as características do processo, 
existem alguns traços entre as pessoas de uma equipe. 
Seguem alguns dos principais traços a serem avaliados durante a construção de uma 
equipe: 
Competência – abrange um contexto geral do desenvolvimento ágil, desde o talento 
inato, como habilidades específicas, técnicas, ou até mesmo o conhecimento generalizado do 
processo que a equipe irá aplicar para determinado sistema. Entretanto, é interessante que todas 
as partes compartilhem conhecimento com as demais pessoas da equipe. 
5 
 
Foco comum – embora os membros da equipe desempenhem tarefas que trazem 
diferentes habilidades para o projeto, todos devem estar focados em um objetivo em comum. 
Isso inclui manter o foco em adaptações contínuas, que farão com que o processo seja ajustado 
às necessidades da equipe. 
Colaboração – os membros da equipe devem colaborar entre si e com todos os 
envolvidos para que sejam criadas informações de valor para compreender o trabalho da equipe 
e consecutivamente, resultar em dados que tragam valor ao negócio do cliente. 
Tomada de decisões – as equipes devem ser autônomas para controlar o destino o qual 
o projeto deve tomar, tanto em decisões técnicas como de projeto. 
Habilidade em solução de problemas – as equipes lidam continuamente com 
ambiguidade e são continuamente atingidos por mudanças. Os integrantes devem estar cientes 
de que o problema sendo enfrentado hoje não necessariamente será o mesmo a ser solucionado 
no dia seguinte. Entretanto, as experiências adquiridas durante a execução das tarefas podem 
futuramente beneficiar essa equipe em outros projetos. 
Confiança e respeito – a equipe deve ser consistente, demonstrar confiança e respeito 
para que a torne “tão fortemente unida que o todo fica maior do que a soma das partes” 
(DeMarco e Lister, 1998, p.86) 
Auto-organização – ela implica em três contextos do desenvolvimento ágil. Primeiro, 
a equipe se organiza para trabalhar nesse projeto. Segundo, a equipe adequa o processo para 
seu ambiente local. Por fim, a equipe cria um cronograma de trabalho para cumprir a entrega 
dos incrementos. “A equipe seleciona quanto trabalho acredita ser capaz de realizar dentro da 
iteração e se compromete com o trabalho. Nada desmotiva tanto uma equipe como um terceiro 
assumir compromissos por ela. Nada motiva tanto uma equipe quanto aceitar a responsabilidade 
de cumprir completamente o prometido feito por ela própria”. (SCHWABER, 2002) 
2.2.2 Desenvolvimento de Software Adaptivo (ASD) 
O ASD foi uma proposta de Jim Highsmith para as metodologias ágeis com o intuito de 
facilitar o desenvolvimento de sistemas complexos. Esse modelo foca principalmente na 
colaboração humana auto organizadora de equipes. Podemos ressaltar que o desenvolvimento 
ágil e adaptativo baseia-se na colaboração e constitui um recurso para organizar as complexas 
interações, assim como disciplina e engenharia. Essa metodologia define um ciclo de vida de 
três fases, especulação, colaboração e aprendizagem. 
Durante a fase de especulação, são feitos planejamentos de ciclos adaptáveis. Esses 
ciclos utilizam informações do início do projeto, onde é definida a missão do cliente, as 
restrições do projeto e os requisitos básicos. Logo, são definidos os conjuntos de ciclo de 
versões, que serão requisitados para o projeto. 
Independente de quão completo esteja o plano de ciclos, inevitavelmente o plano sofrerá 
mudanças, mesmo que desde o início as mudanças visadas. Isso ocorre porque baseando-se nas 
informações coletadas a medida em que se completa os ciclos, o plano é revisto e modelado demodo que o trabalho planejado se adeque da melhor forma possível a realidade à qual a equipe 
ASD está trabalhando. 
6 
 
As pessoas do projeto utilizam a colaboração como uma forma de multiplicar seus 
talentos e produções criativas e claro, seus números absolutos. 
2.3 Comparativo entre as metodologias 
Grande parte das metodologias ágeis não chegam a ser inovadoras (COCKBURN, 
2001). O que as tornam um diferencial das metodologias tradicionais são seu foco em seus 
valores, já que seu princípio é o foco nas pessoas, já as metodologias tradicionais têm como 
foco em processos ou algoritmos. Além do que, a metodologia ágil pode ser adaptada para que 
tenha mais foco na implementação e não tanto na documentação, como ocorre na Extreme 
Programming, por exemplo, já que ela tem foco totalmente voltado à implementação e não em 
documentação. 
As metodologias ágeis são adaptivas ao invés de serem preditivas. Isso quer dizer que 
elas se adaptam durante o decorrer do projeto. Já as metodologias tradicionais impõem que os 
projetos sejam analisados previamente de tudo o que pode acontecer durante seu 
desenvolvimento. Essa análise prévia é um dos fatores negativos, uma vez que é muito cara de 
ser realizada e de difícil realização. Além de correr o risco de forçar a equipe a trabalhar sob 
pressão para seguir estritamente o planejado e, mesmo que falte tempo, acabam sendo forçados 
a fazerem várias horas extras para atenderem aquele requisito dentro do prazo. No entanto, 
muitas vezes, aquele requisito que está segurando a desenvoltura do projeto é algo que foi mal 
planejado e agora não aceitam modificações nos requisitos, já que a metodologia não prevê uma 
iteratividade entre as etapas de desenvolvimento. 
Com isso, podemos colocar que para ser classificada como uma metodologia ágil, é 
necessário que o desenvolvimento esteja pronto para aceitar mudanças, e não tentar prever o 
que está por vir. Mas, as mudanças não são o é o problema em si, mesmo porque ela irá ocorrer 
de qualquer forma, já que novas versões serão lançadas. O real problema é como as 
necessidades de mudanças serão recebidas, avaliadas e respondidas às mudanças. 
Devemos aplicar as metodologias tradicionais então, apenas quando tivermos um 
sistema claramente definido e com possíveis mudanças previsíveis, mesmo que por solicitações 
do stakeholder¹. Do contrário, as mudanças dentro do modelo clássico podem ter seu custo 
aumentado me “1x” quando feita na fase de requisitos e de “60x a 100x” quando feita durante 
a implementação (PRESSMAN, 2001) 
Ao contrário das tradicionais, as metodologias ágeis têm vários aspectos positivos, um 
deles são as entregas constantes. Essas entregas podem ser definidas como partes operacionais 
do software final, assim o cliente tem a possibilidade de ir testando e não há a necessidade de 
ficar esperando pela versão final. A integração e os testes contínuos possibilitam uma melhora 
na qualidade do software, já que não é necessário haver uma fase de integração, e sim, são 
integrados, testados e aprovados constantemente. 
Apesar das metodologias ágeis ainda estarem “crescendo”, ganhando espaço no 
mercado e entre as equipes, já vem sendo comprovado por especialistas que ela vem ganhando 
espaço e apresentando ótimos resultados quando o assunto é cumprimento de prazos, custos e 
padrões de qualidade. 
7 
 
3. Conclusão 
O objetivo das metodologias ágeis agora é eliminar seus pontos fracos cada vez mais, 
como por exemplo as longas horas trabalhadas pelos funcionários para atingirem as datas 
planejadas para o projeto, a falta de análise de riscos de forma que não se torne uma metodologia 
pesada já que em algumas metodologias nem ao menos existe uma fase de análise de riscos 
“formal”. Outro ponto importante é descobrir uma forma de implementar essas metodologias 
em grandes equipes, como fazer uma divisão de trabalho sem sobrecarregar a equipe, e 
principalmente, explorar a melhor habilidade de cada um dos integrantes, principalmente agora 
que as grandes empresas estão adotando ao modelo. 
Não apenas explorar a qualidade individual de cada um dos integrantes da equipe, mas 
também é importante resolver problemas de comunicação internamente entre todos os 
integrantes, principalmente agora que as equipes passaram estão crescendo, e porque hoje em 
dia é comum os funcionários estarem separados geograficamente. 
Uma vez que a equipe toda esteja conectada e nivelada tecnicamente, - não que todos 
devem saber sobre tudo, mas sim que todos tenham a mesma produtividade em suas respectivas 
especialidades -, não há o que justifique o uso das metodologias prescritivas, uma vez que isso 
pode acabar “engessando” a estrutura do projeto, limitando a capacidade da equipe, limitando 
prazos, deixando passar oportunidades de aprendizagem para o time em um contexto geral, e o 
pior de todos, limitam o desejo dos clientes, já que ele fica limitado a custos e modelos. 
No entanto, apesar do crescente interesse das empresas e equipes em quererem utilizar 
metodologias ágeis, faltam casos de sucesso para engatilhar o uso das metodologias. Quanto 
mais organizações fizerem uso, melhores serão os resultados empíricos, então será possível 
obter e estudar as vantagens, desvantagens, riscos e procedimentos para que as empresas 
possam se adaptar ou melhorar antes de fazer adoção ao uso de determinadas metodologias e 
possam usufruir de seus benefícios. 
4. Referências 
BAETJER, H. J. (2011). Engenharia de Software Uma Abordagem Profissional: R. S. 
PRESSMAN, Engenharia de Software Uma Abordagem Profissional (p. 52). AMGH 
Editora Ltda. 
COCKBURN, A. e HIGHSMITH, J. (2001). Agile Software Development: The Business of 
Innovation, IEEE Computer (120-122) 
COX, B. J. (2011). Engenharia de Software Uma Abordagem Profissional: R. S. 
PRESSMAN, Engenharia de Software Uma Abordagem Profissional (p. 31). AMGH 
Editora Ltda. 
DEMARCO, T e LISTER, T (1998). Peopleware, 2d ed. Dorset House 
MONIER, L. (2011). Engenharia de Software Uma Abordagem Profissional: R. S. 
PRESSMAN, Engenharia de Software Uma Abordagem Profissional (p. 37). AMGH 
Editora Ltda. 
PRESSMAN, R. S. (2011). Engenharia de Software Uma Abordagem Profissional. AMGH 
Editora Ltda. 
SCHWABER, K. (2002). Agile Processes and Self-Organization. Agile Alliance. 
8

Outros materiais

Perguntas Recentes