Uma comparação entre os modelos ágil e cascata de desenvolvimento de software

Segundo o dicionário Aurélio modelo é: aquilo que serve de objeto de imitação. Um modelo de engenharia de software é uma estratégia que é “imitada” pelos profissionais de desenvolvimento por ser uma prática amplamente divulgada e aceita no mercado. A importância de se ter um modelo é lidar com um framework já reconhecido e utilizado por outras organizações.

Entre os modelos de engenharia de software o modelo cascata – também chamado de modelo sequencial linear e ciclo de vida clásssico – continua sendo um modelo bastante utilizado para a engenharia de software, apesar de ser relativamente antigo. Basicamente um modelo de desenvolvimento em cascata resume-se em um modelo sequencial de desenvolvimento, com fases bem definidas, sendo comum as fases de: análise, projeto, codificação, teste e manutenção.

Extraído de Wikipedia

Em contraposição ao modelo cascata surgiu nos últimos anos o modelo ágil de desenvolvimento que consiste em uma série de ciclos ou iterações curtas  – geralmente semanas – de desenvolvimento com um grau de colaboração entre os envolvidos bastante alta. Cada um destes ciclos representam mini-projetos dentro do projeto original com todas as fases características de um projeto, resultando ao final de cada ciclo a implantação de uma parte da funcionalidade requisitada. Ao final de todos os ciclos temos a funcionalidade disponibilizada ao usuário por completo.

Existem outros diversos tipos de modelos de engenharia de software. A escolha do modelo deve levar em conta fatores como: cultura da empresa, nível de maturidade dos processos, natureza da aplicação e do projeto,  entre outros fatores. Imaginado cenários adequados para cada um dos modelos expostos nesse artigo: o modelo cascata e o modelo ágil, podemos fazer a seguinte correlação entre estes, focando nas principais vantagens e desvantagens de cada um:

Modelo Cascata – Vantagens

  1. Fases bem definidas.
  2. Maior foco no planejamento.
  3. A fase seguinte só se inicia – geralmente – caso o cliente aceite os artefatos produzidos na fase anterior.

Desvantagens

  1. O modelo cascata exige que o cliente estabeleça todos os requisitos no início do projeto.
  2. O cliente irá visualizar alguma coisa apenas perto do fim do projeto.
  3. Um esforço considerável na fase de teste do projeto e  ocorrências de alguns “estados de bloqueio”, nos quais alguns membros de equipe do projeto precisam esperar que outros membros terminem as tarefas dependentes para que o projeto prossiga.

Modelo Ágil – Vantagens

  1. Diminuição da expectativa dos clientes por entregas.
  2. Rápida adaptação a mudanças.
  3. Maior satisfação dos clientes.

Desvantagens

  1. Em modelos ágeis o foco pode não ser o gerenciamento de riscos. Desta forma, um projeto, até a sua entrega final,  pode ter um prazo maior do que o esperado. Importante ressaltar que uma característica do modelo ágil é ter, geralmente,  a determinação da data fim do projeto apenas ao longo deste.
  2. Uma outra desvantagem é que o custo do projeto também é conhecido apenas ao longo do projeto. Esse fato exige que o gestor do projeto dedique mais tempo no controle dos custos envolvidos. Um orçamento limite seria interessante neste tipo de abordagem.

Qual é a sua opinião sobre estes modelos? O que a sua empresa utiliza como modelo de desenvolvimento? Opiniões e comentários são bem vindos!

Fontes:

Deixe sua opinião!