Ágil versus cascata

Homem em um home office ensolarado escreve em um quadro branco com um marcador

Qual metodologia de gerenciamento de projetos você deve usar para gerenciar seu próximo projeto?

O que é cascata?

A metodologia de cascata, também conhecida como modelo de ciclo de vida sequencial linear, é definida por sua abordagem linear e estruturada para o gerenciamento de projetos. Ela é composta por uma série de etapas que são concluídas em ordem sequencial dentro do ciclo de vida de desenvolvimento de software (SDLC). Essas etapas são normalmente rastreadas por meio de visualizações de gráfico de Gantt. O Dr. Winston W. Royce é creditado pelo desenvolvimento dessa abordagem, que ele documentou em seu artigo de 1970, "Managing the Development of Large Software Systems".

Desde sua publicação, surgiram variações da cascata, mas há um consenso geral em torno das seguintes etapas do processo:

  1. Coleta de requisitos: essa etapa exige documentação antecipada entre a equipe de desenvolvimento e o cliente ou usuário final. Durante essa fase, as funcionalidades do produto dentro do plano do projeto são documentadas em grandes detalhes, permitindo que a equipe determine um custo e um cronograma claros. Depois que ambas as partes alinharem os requisitos, não há correspondência entre a equipe de desenvolvimento e o cliente até que o projeto seja concluído.
  2. Projeto: a fase de projeto é composta por duas etapas: projeto lógico e projeto físico. No projeto lógico, a equipe faz um brainstorming de possíveis maneiras de resolver o problema do cliente. Quando a equipe de desenvolvimento concorda com uma solução, essas ideias são traduzidas em tarefas técnicas específicas, que são então distribuídas para toda a equipe para construir o projeto físico.
  3. Implementação: na próxima fase, os desenvolvedores começam a programação com base nas especificações desenvolvidas nas etapas anteriores.
  4. Verificação: os testes dessa garantem que o código funcione conforme o pretendido e que os requisitos do documentos de escopo tenham sido atendidos. A equipe de desenvolvimento verifica se há bugs no código, e uma validação final é realizada pelo cliente para garantir que a funcionalidade atenda às expectativas.
  5. Manutenção: à medida que os usuários integram e usam o produto final, haverá necessidade de suporte contínuo conforme novos problemas surgirem.
 

Principais benefícios do método de cascata

  • A documentação e os requisitos detalhados do produto permitem que novos programadores façam a integração de forma rápida e fácil.
  • A documentação fornece um escopo claro para o projeto, permitindo que os gerentes de projeto comuniquem orçamentos, cronogramas e marcos importantes às partes interessadas.
AI Academy

A ascensão da IA generativa para negócios

Saiba mais sobre a ascensão histórica da IA generativa e o que isso significa para os negócios.

Principais desafios do método de cascata

  • Os clientes podem achar difícil delinear todos os seus requisitos no início do projeto, levando a lacunas na documentação.
  • A colaboração mínima do cliente durante o processo de desenvolvimento pode levar a mudanças dispendiosas se o produto não atender às expectativas.
  • Os testadores relatam problemas e bugs mais tarde no processo, o que poderia ter informado uma arquitetura alternativa de programa.

O que é ágil?

Em contraste com o desenvolvimento em cascata, o ágil é definido por sua abordagem iterativa ao gerenciamento de projetos. Em vez de elaborar requisitos longos do projeto no início, uma equipe ágil divide o produto em funcionalidades específicas e lida com cada um sob uma restrição de tempo específica, conhecida como sprint.

O gerenciamento ágil de projetos requer uma equipe multifuncional e auto-organizada, que normalmente consiste de cinco a nove membros. Juntos, eles desenvolvem um software viável durante cada sprint, que combina com outro código funcional de iterações anteriores. No final do tempo do sprint, a equipe demonstra seu trabalho aos stakeholders para feedback, permitindo que elas sejam flexíveis em sua abordagem ao desenvolvimento de software. Como a equipe tem acesso a feedback frequente, pode adaptar o roteiro do produto durante o ciclo de vida de desenvolvimento para garantir que a funcionalidade realmente atenda às expectativas do usuário. Na abordagem em cascata, o envolvimento do cliente normalmente coincide com a entrega do produto final, o que pode ser custoso quando os requisitos são mal interpretados ou documentados de forma incorreta.

Houve 17 indivíduos que acharam o sistema de gerenciamento de projetos em cascata altamente ineficaz e, em 2001, suas ideias sobre o processo de desenvolvimento de software culminaram em um trabalho conhecido como o “Manifesto Ágil”. Este documento destaca valores e princípios específicos a serem priorizados nos fluxos de trabalho de desenvolvimento de software e resultou em vários frameworks ágeis populares, como Scrum, Kanban, Desenvolvimento Dirigido por Funcionalidade (FDD) e Programação Extrema. Desde então, a popularidade do desenvolvimento de software ágil aumentou, especialmente quando comparado ao modelo de cascata.

Framework scrum ágil

Inspirado no jogo de rúgbi, o scrum ágil enfatiza o trabalho em equipe para cumprir as entregas, semelhante à maneira como os atacantes precisam trabalhar juntos em um scrum para obter a posse de uma bola de rúgbi. O conjunto de habilidades da equipe scrum ágil scrum varia, mas geralmente inclui as seguintes funções:

  • Proprietário do produto:  esse membro da equipe representa as necessidades do cliente e da empresa. Ao criar histórias de usuários, a equipe pode entender como uma solicitação de funcionalidade pode ajudar a resolver um problema específico, e essas histórias formulam a lista de pendências de tarefas para a equipe resolver. Essa pessoa também prioriza as histórias de acordo com seu valor para o cliente, o que deve, em teoria, se traduzir em valor para o negócio. Embora o product owner lidere a equipe dessa forma, ele não define prazos ou instrui a equipe sobre como o trabalho deve ser entregue.
  • Scrum master : este membro da equipe facilita o processo geral de desenvolvimento ágil. Semelhante a um gerente de projeto, essa pessoa mantém a equipe na tarefa, garantindo que a equipe permaneça focada durante o projeto. Eles também podem atuar como uma parte neutra para mediar desacordos entre os membros da equipe. Por exemplo, os membros da equipe podem discordar sobre quanto assumir em um determinado sprint. Os proprietários de produtos, em particular, podem pressionar as equipes a se comprometerem com mais do que podem entregar dentro de um determinado período de tempo. Nesses casos, os scrum masters podem lembrar os membros da equipe do escopo de sua função na equipe.

Os outros membros da equipe de uma equipe ágil podem variar, mas normalmente incluem usuários de uma variedade de disciplinas, como projeto, análise de dados, QA e desenvolvimento. Esses indivíduos colaboram para decidir quanto trabalho assumir e como vão completá-lo.

As metodologias ágeis também são definidas pelas formas pelas quais a equipe se reúne. Há reuniões específicas que ajudam a facilitar o fluxo de trabalho em toda a equipe. Algumas delas incluem o seguinte:

  • Planejamento do sprint: durante essa reunião, a equipe se reúne para determinar quais histórias farão parte do sprint atual. O proprietário do produto priorizará as histórias de usuário, mas o resto da equipe precisará concordar sobre quantas e quais histórias de usuários eles podem concluir durante esse período de tempo definido.
  • Standups diárias: essas breves reuniões também são conhecidas como reuniões diárias. Durante esses check-ins, cada membro da equipe comunica seu progresso individual, como tarefas concluídas, as próximas e quaisquer empecilhos ou dependências que possam resultar em atrasos.
  • Demonstração: essa reunião apresenta o software funcional que a equipe concluiu ao longo do sprint, que pode variar entre incrementos de duas a quatro semanas. O proprietário do produto determinará se a história de um usuário atendeu à definição de "pronto". Caso contrário, o backlog do produto pode ser preparado para dar conta de qualquer coisa que esteja faltando. Essa também é uma oportunidade para a equipe apresentar aos stakeholders para feedback.
  • Retrospectiva: esse tempo é reservado para a introspecção da equipe, onde a equipe identifica como poderia melhorar seu fluxo de trabalho para alcançar melhores resultados no futuro

Principais benefícios do método ágil

  • O design da equipe facilita mais colaboração.
  • O desenvolvimento de produtos adota uma abordagem de projeto adaptativo.
  • Como o código é testado a cada iteração na fase de desenvolvimento, os defeitos do código podem informar o projeto futuro do software.
  • Tende a gerar maior satisfação do cliente, já que o feedback frequente leva a uma maior priorização das necessidades do cliente.
  • Permite integração contínua, pois cada funcionalidade é seu próprio software viável.
  • Esse tipo enxuto de desenvolvimento de software pode levar a custos mais baixos, pois há menos risco de desalinhamento entre clientes e produtos.

Principais desafios do método ágil

  • Uma abordagem ágil pode não ter documentação abrangente. Isso dificulta a integração de novos desenvolvedores, cronogramas de projetos para stakeholders e fornecimento de estimativas de custos precisas.
  • Pode ser difícil de escalar.

Gerencie seu projeto com o método ágil

Embora as equipes de desenvolvimento tenham sido bem-sucedidas em qualquer uma das abordagens de gerenciamento de projetos, certamente há mais ímpeto em torno dos processos ágeis. Não é difícil entender o porquê quando observamos os benefícios que isso pode oferecer às empresas hoje. Embora haja uma série de ferramentas de gerenciamento de projetos que podem ajudar as equipes a acompanhar o progresso, a IBM também pode fornecer sistemas para permitir que os desenvolvedores codifiquem de forma mais ágil.

Autora

Eda Kavlakoglu

Business Development + Partnerships

IBM Research

Soluções relacionadas
Soluções para operações de negócios

Aumente a resiliência da sua empresa com soluções impulsionadas por IA para cadeia de suprimentos e gerenciamento inteligente de ativos.

Explore as soluções de operações
Serviços de consultoria em operações empresariais

Transforme suas operações empresariais com a IBM utilizando dados ricos e tecnologias de IA poderosas para integrar processos de otimização.

Explore os serviços de operações empresariais
IBM Cloud Pak for Business Automation

O IBM Cloud Pak for Business Automation é um conjunto modular de componentes de software integrados para gerenciamento e automação de operações.

Explore a automação de negócios
Dê o próximo passo

Transforme suas operações de negócios com as soluções líderes do setor da IBM. Aumente a produtividade, a agilidade e a inovação por meio de fluxos de trabalho inteligentes e tecnologias de automação.

 

  1. Explore as soluções de operações
  2. Explore os serviços de inteligência artificial