Metodologias de desenvolvimento de software: principais diferenças
Metodologias de desenvolvimento de software: conheça as principais diferenças
Ana Carolina Adescenco Fernandes
A primeira decisão ao iniciar um projeto é definir qual metodologia será adotada para gerenciar as entregas previstas. Veremos a seguir as duas principais metodologias de desenvolvimento de software: o modelo de cascata e o modelo ágil. Vamos conhecer suas características, analisar suas vantagens e desvantagens e o entender qual o real valor para o cliente.
O modelo de cascata, em inglês waterfall model, é um modelo tradicional de desenvolvimento de software. Conhecida por possuir uma abordagem linear desde o início de um projeto até a conclusão, em que as etapas são seguidas de forma rigorosa e sequencial. Basicamente as etapas para a entrega do produto se baseia na seguinte ordem: levantamento de requisitos, definição do escopo do projeto, desenho, desenvolvimento, testes e entrega do produto final
Essa metodologia não permite flexibilizações no percurso, pois cada etapa se inicia somente quando a anterior é finalizada. Por exemplo, caso na etapa de desenvolvimento os envolvidos no projeto entendam que seria necessário um novo módulo para o sistema que está sendo desenvolvido, isso não seria possível, pois a etapa de levantamento de requisitos já foi finalizada e não pode ser retomada.
Benefícios do uso do modelo cascata
Como benefícios do modelo cascata, há a regra de que o cliente e o time de desenvolvimento (analistas de negócios, engenheiros de software, designer, entre outros profissionais envolvidos) entrem em um consenso por meio dos requisitos pré-estabelecidos, aprovando o desenho do produto final antes do início do desenvolvimento. Ou seja, esse modelo evita brechas para retrabalho, uma vez que o cliente não tem a possibilidade de solicitar a inclusão de novos requisitos, telas, funcionalidades, enquanto que os desenvolvedores se comprometem a entregar o que foi acordado previamente.
No entanto, esse modelo costuma ser bastante demorado para se ter um resultado tangível para o cliente, uma vez que cada etapa é explorada profundamente, para que todos os cenários sejam levantados, desenhados e aprovados – e isso faz com que as próximas etapas fiquem estacionadas. Ou seja, suponhamos que cada etapa leve dois meses para ser concluída, então o cliente só verá o desenho de telas a partir do 5º mês e assim por diante.
Há diversos relatos de fracasso de entregas nesse modelo, uma vez que foram necessários meses de trabalho para que o cliente recebesse o produto final. E, quando finalmente recebeu, o escopo do negócio havia mudado e consequentemente o software entregue não atendia mais suas necessidades e expectativas ao final.
Enquanto que o modelo cascata é um modelo que leva muito tempo para ser desenvolvido, o modelo ágil é eficiente e rápido, como o próprio nome sugere. Este modelo traz uma abordagem iterativa, onde um componente funcional é desenvolvido, testado e entregue em questão de semanas, permitindo que o cliente tenha pequenas funcionalidades entregues separadamente, e que irão compor um único produto ao final.
Metodologia ágil e Manifesto Ágil
Em conjunto com a metodologia ágil, existe o Manifesto Ágil, que é um documento criado em 2001 por um grupo de 17 desenvolvedores que se reuniram nos EUA, a fim de discutir as melhores maneiras de desenvolvimento de software.
No documento que resultou as discussões, foi estabelecido 4 fundamentos básicos:
E também 12 princípios que são desdobramento dos fundamentos citados acima:
Benefícios do Modelo Ágil
Pensando nos itens do Manifesto, diferente do modelo cascata que possui etapas, o modelo ágil possui sprints (abordagem do Framework Scrum), que são fases com tempo pré-definido, que varia entre uma e quatro semanas, onde é planejada uma lista de tarefas para ser executada para compor a entrega de um componente. Caso as tarefas não sejam finalizadas na sprint determinada, elas são repassadas para a próxima sprint e assim por diante, até que a entrega seja finalizada.
Os times, denominados squads, são formados por pessoas de diferentes áreas de conhecimento, como designers, desenvolvedores, analistas de negócios e analistas de projetos, além de uma pessoa que trabalha em função de acompanhar o andamento do projeto e retirar impedimentos que possam atrasar as entregas do time.
Esse modelo permite uma flexibilidade enorme para o projeto, já que possibilita que o cliente esteja próximo do desenvolvimento, sugerindo melhorias e adequando as demandas conforme a necessidade do negócio, uma vez que é possível priorizar demandas que só seriam desenvolvidas no futuro e também ajustar demandas que estão em desenvolvimento.
Desvantagens do Modelo Ágil
Mesmo com todos os benefícios apresentados, o modelo ágil também possui desvantagens em certos aspectos, como:
Dificuldade de prever o custo final do projeto, pois diferente do modelo tradicional, o escopo do projeto pode ser alterado a qualquer momento.
Entregas de pequenos módulos que irão compor o sistema final, o que pode ser um problema para clientes que necessitam do sistema completo para o seu negócio.
Portanto, não podemos dizer que existe um modelo bom e um ruim, mas sim um modelo que se adequa melhor para o projeto do cliente, seja ele o modelo cascata, o modelo ágil ou outro existente. Mas para saber qual se adequa melhor, a empresa e as pessoas devem se permitir testar e aprender com cada modelo, sempre observando qual é mais produtivo e efetivo para o seu time e para o seu modelo de negócio.
Moro em SP, tenho 23 anos e sou formada em Sistemas de Informação. Trabalhei com TI em diversos segmentos, desde indústria, área hospitalar e financeira, e atualmente sou Engenheira de Software no Itaú. Amo tecnologia, animais e música, além de gostar de passar meus conhecimentos e orientar pessoas que querem vir para a área de tecnologia.