sexta-feira, 17 de julho de 2020

Diferenças entre as Abordagens Preditiva (Waterfall) e Adaptativa (Ágil)

Um projeto pode demandar trabalhos que sejam bem definidos e até certo ponto conhecidos e, em outra medida, trabalhos em que exista um alto fator de incerteza.


Nos projetos de construção civil e projetos de desenvolvimento de automóveis, por exemplo, é possível utilizar com sucesso as lições aprendidas em projetos similares planejados e executados no passado. Estes são projetos, geralmente com baixo grau de incerteza e risco de execução em que a abordagem preditiva tem se mostrado bem-sucedida.

Por outro lado, quando tratamos de projetos com indefinições de escopo e alto grau de incerteza para o qual é necessário desenvolver um trabalho mais exploratório, que envolva a colaboração de especialistas para criar uma solução, a abordagem adaptativa tem se mostrado bem-sucedida.

Waterfall e o planejamento preditivo

A abordagem Waterfall, que é a tradicional do gerenciamento de projetos (também conhecida como orientada a planos, em cascata ou queda dágua) é linear e considera que todas as fases de um projeto ocorrem na forma de um processo em sequência. A abordagem depende de ferramentas previsíveis e experiência prévia. Com o Waterfall, um projeto de software (ou de outro tipo qualquer) segue o mesmo ciclo de vida, que inclui etapas como concepção, início, análise, design, construção, teste e entrega.

As melhores práticas do guia PMBOK do PMI (que mostra o que fazer, mas não como fazer)) e a metodologia PRINCE2 (que mostra o que fazer e também como fazer), são exemplos da abordagens Waterfall bastante conhecidas no campo do gerenciamento de projetos.

Com o Waterfall todo o projeto é planejado antecipadamente e isso requer atenção e cuidado, uma vez que o espaço para mudanças é pequeno. Podemos notar que tanto no guia PMBOK quanto na metodologia PRINCE2 as mudanças são rigidamente controladas. Isso significa que o escopo do projeto que foi planejado deve ser protegido. Dentro da abordagem Waterfall, as mudanças descontroladas do escopo, bastante conhecidas pelo termo “scope creep”, são um fenômeno indesejado, com impactos diretos no custo e na duração do projeto, podendo ser uma das causas de fracasso do mesmo. A abordagem Waterfall assume que existem estágios distintos para o planejamento, execução e encerramento do projeto e considera que todos os requisitos e informações necessários estejam disponíveis com antecedência. Embora haja algum espaço para replanejar durante a execução, replanejar o tempo todo implica em falha no plano inicial e risco para o projeto.

Além de tudo, o Waterfall é uma estratégia de planejamento mais preditiva que utiliza etapas e marcos específicos para controlar o processo do projeto. Uma estratégia de planejamento preditivo pode falhar quando confrontada com alterações significativas nas especificações do projeto ou modificações do cliente, mas também terá mais probabilidade de gerar o resultado esperado se houver um levantamento correto de requisitos e poucas mudanças de escopo, criando um produto final consistente e bem documentado.

Portando, o Waterfall é um processo sequencial dividido em vários estágios, no qual a equipe de desenvolvimento precisa concluir um estágio antes de prosseguir para o próximo estágio de desenvolvimento.  

2 das principais críticas ao método Waterfall

Podemos mencionar duas das principais críticas ao método Waterfall que levaram a busca de outros caminhos, especialmente nos projetos de desenvolvimento de produtos de software. Essas críticas são as seguintes:

(1)     O Waterfall não funciona bem porque os clientes podem não saber exatamente quais são seus requisitos antes de ver o software em funcionamento. Depois do software pronto e funcionando é fácil verificar o que está bom e o que deve ser melhorado. Assim, os clientes podem propor alterações e melhorias. Essas mudanças significam etapas adicionais com redesenho, retrabalho para implementar as mudanças solicitadas pelo cliente e testes adicionais. Isso também leva a custos extras. No desenvolvimento de software esse custo extra de ouvir o cliente é positivo, por ser uma forma inteligente de desenvolver um produto com maior probabilidade de criar valor para o cliente. Mas, ainda assim é um custo extra.

 

(2)     Os desenvolvedores podem não estar cientes das dificuldades futuras ao projetar um novo produto ou recurso de software. Isso leva a fazer estimativas incorretas ou, o que dá no mesmo, imprecisas. Portanto, a equipe de projeto pode elaborar um plano que deveria ser completo, mas não é por não conter todos os elementos/informações/requisitos necessários. E aí vem as seguintes questões: - Como proteger o escopo definido em um plano cujos requisitos não são claramente estabelecidos? Será que esse escopo deve ser mesmo protegido?

Então, por que não trabalhar com um plano menos detalhado (em comparação com o plano completo do Waterfall) no início para compensar o retrabalho para atender as solicitações de mudança do cliente, assumindo que mudar o escopo para atender as demandas do cliente é algo positivo para o projeto de desenvolvimento de software? Vejamos os fundamentos da aborgagem Ágil na sequência desse texto.

O Manifesto Ágil

O Manifesto Ágil (do inglês Agile) divulgado em 2001, trazia 4 valores fundamentais e 12 princípios, que segundo seus criadores, seriam os elementos vitais e orientadores de um projeto. Os fundamentos citados são os seguintes:

·         Pessoas e interação entre elas mais que processos e ferramentas;

·         Software em funcionamento mais que documentação abrangente;

·         Colaboração com o cliente mais que negociação de contratos;

·         Responder a mudanças mais que seguir um plano

Mais detalhes sobre o Manifesto Ágil acesse Agile Alliance.org

O termo “mais que” não significa que os processos e ferramentas, a documentação, a negociação de contratos e o plano do projeto desaparecem. Significa que são menos importantes do que o que é tratado na interação entre as pessoas. Significa que o software funcionando é mais relevante que elaborar uma documentação completa e abrangente, embora continue sendo importante documentar o projeto, mesmo que com menos detalhe. Significa que o mais importante é colaborar com o cliente, ao invés de se apegar a negociação do contrato, embora continue existindo um contrato formal com as regras de relacionamento técnico/comercial entre cliente e fornecedor. Que responder a mudanças é mais importante que seguir um plano, embora ainda seja necessário planejar o trabalho e medir seu progresso.

O Manifesto Ágil foi o resultado de uma reunião de profissionais de desenvolvimento de software dos EUA que estavam debatendo diferentes questões relacionadas ao desenvolvimento de software. Portanto, tudo nasceu relacionado ao caso particular do desenvolvimento de software. Assim sendo, o Ágil é um modelo de desenvolvimento de software que incentiva a iteração contínua de desenvolvimento e teste em todo o ciclo de vida do projeto de desenvolvimento de software.

Enquanto o sistema tradicional Waterfall se concentra no planejamento, onde fatores como escopo, custo e tempo tem grande importância, a abordagem Ágil focaliza o trabalho em equipe, a colaboração com o cliente e a flexibilidade. A equipe Ágil deve estar pronta e ser capaz de responder as mudanças solicitadas pelos clientes. Agora vem a parte mais desafiadora da abordagem Ágil: as empresas esperam que um projeto gerenciado com a abordagem Ágil seja feito com a qualidade esperada pelo cliente (satisfazendo o cliente e agregando valor para o mesmo), em menor tempo (trabalho mais rápido e com eficiência) e com menor custo. Portanto, está presente o foco no cliente, sem abrir mão do aumento da eficiência e da redução de custos, que, mesmo que não se diga claramente, continuam tendo grande importância do ponto de vista do resultado prático do projeto para a organização.

Ágil para o planejamento adaptativo

De forma geral, os projetos de alta incerteza têm altas taxas de mudança, complexidade e risco. Essas características podem apresentar problemas para abordagens preditivas tradicionais que visam determinar a maior parte dos requisitos antecipadamente e controlar as alterações por meio de um processo de solicitação de mudança.

A abordagem Ágil encontrou um modo de lidar com as mudanças através de um processo que divide o trabalho do projeto em  ciclos curtos. Explorando e avaliando esses ciclos curtos foi possível adaptar o projeto mais rapidamente as mudanças.

São exemplos de métodos ágeis de gerenciamento de projetos os seguintes: Scrum, XP (Extreme Programming), DSDM (Dynamic Systems Development Method), FDD (Feature Driven Development), Crystal e RUP (Rational Unified Process).

O gerenciamento de projetos na abordagem Ágil é iterativo e visa incorporar constantemente o feedback do usuário e, a cada rodada de um ciclo curto, são feitos lançamentos de produto (software) ou de partes do produto (software) que está sendo desenvolvido. Em outras palavras, cada saída de um ciclo curto é o resultado do trabalho da equipe que cria um produto para o cliente.

As diferenças entre o Waterfall e Ágil

A tabela a seguir resume algumas das diferenças entre o Scrum (método Ágil mais utilizado) e os modelos tradicionais de gerenciamento de projetos.

Lembrando que a tabela comparativa acima se aplica aos projetos de desenvolvimento de software. Em projetos de construção civil ou mesmo em projetos de desenvolvimento de um automóvel, não se utiliza a tecnologia orientada à objeto. Além disso, os desenvolvedores não são ilhas isoladas dentro de equipes, eles (e elas) precisam coorperar. Finalmente, uma construção (seja ela qual for) e um automóvel (seja ele de que tipo for) não são constituídos de partes de código escrito em alguma linguagem. Afinal, nem todo o problema é prego e, portanto, nem toda solução é martelo, embora existam aqueles que insistem em bater nessa tecla. Como dito por Abraham Maslow, “para quem só sabe usar martelo, todo problema é um prego”.

Este é um dos senões dos textos que enaltecem o Ágil, iniciando com uma descrição das abordagens de gestão mais tradicionais (para qualquer tipo de projeto), e na sua parte final apresentando uma tabela comparativa mais aderente a projetos de desenvolvimento de software, embora deixe a falsa impressão de estar fazendo uma comparação geral e válida para qualquer tipo de projeto.

É relevante lembrar que – como profissionais de gestão - não devemos nos comportar como seguidores cegos de uma seita ou de torcedores fanáticos de um clube de futebol, sendo necessário sempre manter o espírito crítico. O profissional de gerenciamento de projetos deve conhecer o máximo possível de técnicas e métodos de gestão para poder aplicar o que for melhor para a organização em que estiver trabalhando, e assim aumentar a probabilidade de sucesso do projeto. Bem, é isso aí, até a próxima.


3 comentários:

  1. Prince2 não usa Waterfall, usa ondas sucessivas e o PMBOK não remete a nenhuma abordagem, muito pelo contrário, apresenta todas e seus processos podem ser usados em qualquer uma delas.

    ResponderExcluir
    Respostas
    1. Ola Robes, obrigado por seu comentario. O waterfall é uma abordagem/filosofia de gestão de projetos (não é uma metodologia). Dentro dessa abordagem o Prince2 se encaixa como uma metodologia que segue essa abordagem.
      Basta ver o que um projeto que adota o waterfall usa para planejar e executar que você verá que os processos do Prince 2 confirmam isso. O Prince 2 é uma metodologia com todos os detalhes que mostram o que fazer e como fazer. Por sua vez, o guia PMBOK também segue a filosofia waterfall, com seus processos de iniciação, planejamento, execução, controle & monitoramente e encerramento. O ambiente de projeto demanda um plano que deve ser seguido e controlado. Portanto, sim, o guia PMBOK é muito waterfall. Entretanto o guia PMBOK não traz um método de gestão de projetos, uma vez que só diz o que fazer, mas não como fazer. Recomento que você consulte outras fontes caso não concorde comigo. Atenciosamente,
      Prof. Haroldo Simões

      Excluir
    2. Olá Robes,
      Eu fiz uma rápida pesquisa na Internet e vi que muita gente está preocupada em encontrar formas de DEFENDER o guia PMBOK e o Prince2, como se isso fosse necessário. O waterfall é uma metodologia, como você disse, mas que traz uma ideia sobre como fazer um projeto. O waterfall é uma abordagem de gestão baseada em planos e controle. Se você esquecer os detalhes e diferenças de nomes, verá que as melhores práticas do guia PMBOK também usam a ideia do plano do projeto e do controle. O mesmo vale para o Prince2. O guia PMBOK e o Prince2 não tratam de executar em ciclos curtos usando equipes autogerenciadas. Mas, como estamos na moda do Ágil, todos se apressam em dizer que o guia PMBOK tem “apenas um padrão de boas práticas de gerenciamento de projetos e, independentemente de os indivíduos escolherem seguir uma abordagem em cascata ou ágil, o guia PMBOK dará suporte a ambos”. Não é assim na prática. Tanto que o PMI editou um Agile Practice Guide separado do guia PMBOK. Mais uma vez agradeço por seus comentários.

      Atenciosamente,
      Prof. Haroldo Simões

      Excluir

Inclua seu comentário: