Método da Corrente Crítica e CPM

CCM – Critical Chain Method: Método da Corrente Crítica
CPM – Critical Path Method: Método do Caminho Crítico

 

      Na ilustração abaixo temos uma mesma rede de atividades vista sob a perspectiva da aplicação do CCM e do CPM (CCM também é conhecida por CCPM, ou Critical Chain Project Management).

Diagram de Rede de um Projeto

Diagram de Rede de um Projeto

 

     Após a identificação do Caminho Crítico, determinado pela sequência lógica entre as atividades, para o Método da Corrente Crítica, ainda é necessário:

     1) Verificar qual é o caminho crítico em função de restrições de recursos (o que seria a corrente crítica própriamente dita);

     2) Reduzir os tempos individuais de cada atividade sob o preceito de que todas as atividades sempre carregam com si proteções individuais que devem ser levadas ao projeto;

     3) Transferir parte das reservas “colhidas das atividades individuais” para as reservas do projeto, transferindo assim o que se protegia individualmente para o “controle do projeto”, através da administração de um “buffer de projeto”.

      A ilustração abaixo é o mesmo conjunto de atividades do diagrama de rede anterior, agora com o registro das durações individuais (originais) em sua representação como um Diagrama de Gantt.

Diagrama de Gantt (CPM)

Diagrama de Gantt (CPM)

     É possível identificar neste Diagrama de Gantt que a “Atividade 2″ é a única que não está no caminho crítico do projeto e ela tem uma folga livre (deslocamento potencial sem prejuízo do início da próxima atividade) e uma folga total (deslocamento potencial sem alterar a data de término do projeto) de 104 horas.

     O Caminho Crítico Total tem 224 horas, representados pelas atividades 3 (80 horas), 4 (80 horas) e 5 (64 horas).

     Apenas em caráter ilustrativo, vamos imaginar que exatamente as mesmas atividades estariam determinando a Corrente Crítica do Projeto (o que significa dizer que mesmo após nivelado o cronograma CPM pelos recursos, somente a atividade 2 permaneceria fora da corrente crítica).

     Vamos somar agora 4 elementos ao Diagrama de Redes original:

A) Um “feeding buffer”, que é uma reserva que se cria para a sequência de atividades em que se retirou reservas individuais e que não pertence a Corrente Crítica;

B) Um “project buffer”, que é uma reserva que se cria na Corrente Crítica “devolvendo” para o projeto uma parte das reservas individuais que se retirou de cada atividade;

C) Um “término sem buffer”, que é um marco que registra o término do projeto entre a atividade de início e a última tarefa da Corrente Crítica, sem considerar o “Project Buffer”

D) Um “término com buffer”, que é o marco final do projeto identificando o último momento possível de realização do projeto conforme o seu planejamento CCM original (que equivale a corrente crítica + project buffer)

Diagrama de Rede (CCM)

Diagrama de Rede (CCM)

      Nota: O Diagrama de Redes acima seria diferente com a aplicação do MS-Project e outras ferramentas que não possuem atividades do tipo “hammock”.  Neste caso, no MSP teríamos uma ligação TI do “Término” para o “Project Buffer” e outra ligação TI do “Project Buffer” para o “Término com Buffer”.

     A vantagem de utilizarmos uma hammock na representação acima é que a atividade “hammock” se reduz “automaticamente” na medida em que outras atividades na corrente critica tem uma duração maior que a planejada, de tal forma com que esta “hammock” serve para calcularmos o “consumo das reservas”, sem precisarmos ajustar manualmente (ou usando um plug-in) a duração remanescente do pulmão (buffer) a cada vez que alguma tarefa consome a reserva.

     (no exemplo acima, o “feeding buffer” também deveria ser modelado com o uso de uma hammock para uma aplicação efetiva do controle sobre pulmões, mas o princípio é o mesmo do “project buffer” já ilustrado).

 

Criando os Buffers (Pulmões)

     A forma com que se criam os pulmões e se decide pela retirada das reservas individuais de cada tarefa é o calcanhar de aquiles do método, pois não há exatamente um consenso sobre a forma com que se localiza “proteções individuais de cada atividade” para que sejam retiradas e levadas para o controle do projeto.

     Diversos usuários poderão determinar o tamanho “não-conservador” (sem proteções) de uma atividade utilizando um mecanismo com 3 estimativas (pessimista, otimista, mais provável), ou usando médias históricas da empresa ou discutindo com a equipe.

     Usuários mais “puros” do Método irão aplicar a regra 50 x 50, onde independente da atividade, iremos retirar 50% da duração de todas as atividades para que elas se tornem desafiadoras para a equipe e devolveremos ao pulmão do projeto 50% destas reservas.

     Utilizando uma abordagem “purista”, então temos:

Atividade 2 = de 40 horas para 20 horas;
Atividade 3 = de 80 horas para 40 horas;
Atividade 4 = de 80 horas para 40 horas;
Atividade 5 = de 64 horas para 32 horas;

      Feeding Buffer: O “pulmão” das redes secundárias é colocado no ponto uma atividade fora da corrente crítica se “encontra” com a corrente principal. O “Feeding Buffer” protege então aquela parte da rede sem “danos” a corrente principal até que o “Feeding buffer” se esgote.

     O Feeding Buffer neste projeto foi colocado entre a atividade 2 e 3 e devolve à equipe 50% da reserva retirada. Das 20 horas retiradas da atividade 2, temos o “retorno” ao projeto de 10 horas neste “Feeding Buffer” ou Pulmão de Convergência.

     Project Buffer: O “pulmão do projeto” recebe 50% dos temos retirados da Corrente Crítica, ou seja:50% de 40 horas da atividade 3 + 50% de 40 horas da atividade 4 + 50% de 32 horas da atividade 5. O Pulmão do Projeto tem assim uma duração de 56 horas.

     A seguir temos o Diagrama Gantt do mesmo cronograma original, agora com os tempos, reservas e complementos do Método da Corrente Crítica.

Diagrama de Gantt (CCM)

Diagrama de Gantt (CCM)

 Curiosidade:
- No CCM,  as atividades são colocadas em ALAP (As Late as Possible) para que sejam realizadas no momento mais tardio possível em um projeto. Por esta razão, a atividade 2 (que antes tinha uma folga de 104 horas) agora está agendada para acontecer 30 horas antes da atividade 3 (20 horas previstas para a própria atividade + 10 horas de reserva).

- Embora a aplicação de algumas atividades em ALAP possa ser interessante (pois se posterga a necessidade de atenção do gerente às atividades secundárias e também se deixa para mais tarde o investimento/custo da mesma), deve-se ter muito cuidado com esta abordagem pois estamos agregando um risco desnecessário a esta tarefa para que ela interfira no desempenho geral do projeto! Se a duração original dela era 40 horas e ela era secundária, por que arriscar realizá-la em 30 horas no último instante possível e eventualmente ter que consumir o pulmão do projeto, deslocando a atividade 3 que está na corrente crítica?

 

** O Arquivo deste exemplo está disponível em:

     http://www.thespiderteam.com/download/sprj/exemplo_ccm.001.sprj

** Para abrir o arquivo, instale gratuitamente o Spider CPM:

     http://www.thespiderteam.com/blog/licenciamento

 

 Observações finais

- Percebe-se que o cronograma final em CCM é 25% menor que o cronograma CPM e por isso é visto como um cronograma desafiador; outros métodos com a aplicação de Corrente Crítica e mesmo com o uso de pulmões também estão disponíveis.

- O SDPM (Success Driven Project Management) é um método que utiliza o nivelamento de recursos (Resource Critical Path) para estabelecer o caminho crítico do projeto (o que eles chamavam de “true critical path”). O RCP é – pela própria definição do PMBOK 4a edição (página 155) o equivalente a Corrente Crítica (Caminho Crítico do Projeto Alterado pelas Restrições de Recursos). Não se deve confundir o “conceito de corrente crítica” com o “Método da Corrente Crítica” (O método exige a identificação da corrente crítica e depois o levantamento das reservas e criação dos pulmões, entre outras coisas).

- O SDPM, que também é “um método” de Corrente Crítica, desenvolve os seus lastros virtuais (similares aos pulmões) a partir do uso de estimativas em três cenários e simulações de risco de projeto; o lastro em SDPM não fica preso a corrente crítica e é controlado a partir dos indicadores de probabilidade de sucesso em substituição ao controle sobre os pulmões de CCM.

Resultado comparado (CPM x CCM)

Gantt do mesmo projeto em uma visão CPM e CCM

Gantt do mesmo projeto em uma visão CPM e CCM

Tarefa Hammock (Debate) – Parte II

Antes de continuar, algumas considerações:

1- Este material surgiu em função de um debate na lista da E-Plan.
2- Você pode visualizar a parte I do Debate (Clicando aqui)
3- Você pode saber mais sobre o tema abortado – Hammocks & Exemplos aplicados – (Clicando aqui)

___________________________________
Carta de Farhad Abdollahyan sobre Hammocks:

 

     Caro Peter,

     Para começar, no exemplo não sei de onde vem a Corrente Critica (30 dias)!!! E depois o 25 dias, dado que as atividades supostamente tinham 10 (C) e 20 dias (A, B e D) de duração!

     Dependendo da maneira que nivelarmos o projeto, passamos de 40 dias sem nivelamento para 50 ou 60 dias, dado que o caminho crítico sem nivelamento é Início-A-B-Fim. (0+20+20+0). Se colocarmos uma prioridade maior no C, o MS Project nivelará a atividade A e teremos:

“corrente crítica” = (C)Farhad 10 + (A) Farhad 20 + (B) Peter 20 = 50

Senão teremos

“corrente crítica” = (A) Farhad 20 + (B) Peter 20 + (D)Peter 20 = 60

     Em segundo lugar, creio que está cometendo um erro crasso de conceito e outro de entendimento do problema!

     Quando escreve que “Se eu prender uma atividade HAMMOCK em INICIO e FIM e colocar FARHAD e Peter como recurso utilizado nela” não faz menor sentido. Uma atividade “Hammock” ou “Summary Activity” é “um grupo de atividades do cronograma agregadas, relacionadas em algum nível de resumo e exibidas/relatadas como uma única atividade no nível de resumo”, em outras palavras, uma Hammock não é uma atividade de verdade, é apenas uma sumarizadora, portanto, não devemo alocar recurso nela diretamente.

     Para criar uma HAMMOCK, criamos um marco de início e um de fim e relacionamos logicamente as atividades desta sub-rede (ou sub-projeto) e temos uma hammock. No MS Project conseguimos este efeito criando uma indentação, e o SW demonstra uma barra preta variável (como você disse) cujo início tem uma relação início a início com a primeira atividade da rede e o seu ponto final tem uma relação término a término com a última (no seu exemplo “início” e “Fim” respectivamente).

     De certa forma, representa o pacote de trabalho.

     O outro erro seu é que recomenda uma atividade sumarizadora para o colega que tem dois grupos de atividades distintas:

     (1) Atividades que irão produzir as entregas propriamente ditas, e (2) Atividades de fiscalização e apoio que não geram entregas tangíveis.

     Se indentar as atividades principais e criar a super guarda-chuva (HAMMOCK) não irá resolver o problema do colega, pois o que ele quer realmente é poder inserir atividades de fiscalização e apoio.

     E não se trata de questão de SW, pois para dizer a verdade, o MS Project até permite associar recurso a esta atividade sumarizadora (e calcularia os custos como o colega quer), mas este macete tem dois problemas: (a) MSP soma os custos das atividades de sub-rede com os custos dos recursos alocados diretamente na Hammock e mostra tudo no Hammock, isto pode confundir! (b) Da mesma forma que não é correto colocar predecessor ao nível da Hammock, não devemos também alocar recurso no Hammock.

Abraço,

Farhad

 

———————————————————————————————————
Peter Mello, em resposta a carta:

 

      Farhad,
      Meu erro foram as unidades. Eu comecei com a unidade DIA e depois coloquei o custo HORA. Onde eram 20 e 10 dias, eu fiz o exercício com 10 e 5 dias (portanto basta dividir os seus achados por 2 para acertar com meu erro de unidades).
O raciocínio está correto e os resultados (ajustados) também:
- seus 60 dias seriam os meus 30
- seus 50 dias seriam os meus 25.
- o valor hora é de fato R$ 1,25 (para dar os R$ 10,00 por dia que usei nas minhas contas)
No entanto:

      A) O MSProject precisa que você faça ajustes manuais durante o nivelamento para achar o melhor resultado. Se você tiver 4 ou 40 atividades, vai conseguir fazer a priorização correta e ter um bom retorno. Se tiver 400 ou 4000 atividades, não pode depender de priorizações manuais para encontrar o melhor nivelamento
      B) O MSProject não mostra a corrente crítica. Apenas coloca em vermelho os elementos pertencentes ao caminho crítico CPM e portanto todas as folgas não tem qualquer utilidade.
      Quanto aos usos da HAMMOCK:
      - A descrição da Hammock no Practice Standard of Scheduling nasceu DEPOIS das hammocks serem inventadas e aplicadas em diversos softwares. Não é por que o Practice Standar diz que a hammock só pode ser utilizada para A, B ou C que ela também não possa ser usada para D, E ou F. No entanto, a regra MÍNIMA estabelecida para uma hammock é que ela seja capaz de agregar durações provenientes das atividades que ela sumariza. No Standard, tarefa sumário e hammock são sinônimos, o que não é exato. A hammock se presta a sumarizar atividades que não estão em subitens da mesma decomposição da EAP, enquanto a tarefa sumário está sempre presa a estrutura hierárquica da decomposição.
      - Por estas “funções extras” da hammock que não estão no Practice Standard e nem no MSProject, mas estão no Primavera e no Spider é que a hammock se presta exatamente ao que o colega quer, durante sua análise de fiscalização.
     - Você sabia que durante o preparo do Practice Standard houve uma votação para ver se “cronograma nivelado por recurso” deveria entrar ou não no Standard? Como a base dos desenvolvedores é americana e eles usam CPM e prestam pouca atenção a CCPM ou qualquer método que faça nivelamento adequado de recursos, cronogramas baseados por recursos quase não foram contemplados no Practice Standard.
     - Se isso tivesse acontecido, isso iria fazer com que as pessoas que utilizam corrente crítica ou resource critical path deixassem de usar ? O standard não é prescritivo e sim descritivo.
Vou preparar um PDF com tudo, para você ver como funciona.

 

Abraços,
Peter.