Leonardo Castro

Método do caminho crítico: como calcular o que realmente define o prazo

Como montar a rede de atividades, calcular a ida e a volta, encontrar folgas e reduzir o prazo com custo conhecido, e por que recursos e incerteza mudam a resposta do CPM.

Por Leonardo CastroPublicado em 12 min de leitura
  • CPM
  • Gestão de Projetos
  • Cronograma
  • Planejamento
  • Prompts

Faltam duas semanas para o lançamento, e o projeto está atrasado. A equipe de documentação trabalha no fim de semana e termina dois dias antes. Na segunda-feira, a data final continua igual. O atraso estava em outra atividade.

Num projeto com dependências, nem toda tarefa pesa igual no prazo. Algumas podem atrasar sem efeito, e outras movem a data no primeiro dia de atraso. O método do caminho crítico serve para saber qual é qual, com uma conta simples.

O que é o método do caminho crítico

O Critical Path Method, ou CPM, identifica a sequência de atividades dependentes que determina a duração mínima calculada de um projeto, para um conjunto dado de tarefas, durações e dependências.

Rede de atividades de A a F. O caminho A, B, D e F, em vermelho, é o crítico. O caminho A, C, E e F, em azul, não é crítico. A legenda indica duração de 11 dias.
O caminho vermelho soma 11 dias e define o prazo. O azul soma 10 dias e tem folga.

O método foi desenvolvido no fim dos anos 1950 por Morgan Walker, da DuPont, e James Kelley, da Remington Rand (Kelley & Walker, 1959). Na mesma época, a Marinha americana criava o PERT para o programa de mísseis Polaris (Malcolm et al., 1959). A história tradicional trata os dois como invenções independentes, mas ela é contestada: Smith, Sharma & Baecher (2020) argumentam que o CPM provavelmente derivou do PERT, e que os dois são essencialmente a mesma ferramenta.

Desde o início, o modelo incluía custos, além de sequência e duração (Kelley, 1961). É isso que permite perguntar quanto custa antecipar a data, como veremos.

Quando usar e quando evitar

Quando usar

  • Lançamentos com datas e dependências entre equipes
  • Migrações de plataforma e projetos de integração
  • Obras e programas com muitas etapas
  • Quando é preciso decidir onde investir para encurtar o prazo

Quando evitar

  • Trabalho exploratório, em que as tarefas ainda não são conhecidas
  • Ambientes que mudam mais rápido do que a rede pode ser revista
  • Listas de tarefas sem dependências relevantes
  • Como promessa de data quando as estimativas são frágeis

Como aplicar

  1. Liste as atividades. Use um nível de detalhe em que cada uma tenha um responsável e uma duração estimável.
  2. Estime as durações. Peça a quem vai executar e registre as premissas.
  3. Defina as dependências. Para cada atividade, pergunte o que precisa terminar antes de ela começar.
  4. Faça a ida. Calcule o início e o término mais cedo de cada atividade.
  5. Faça a volta. Calcule o início e o término mais tarde.
  6. Encontre folgas e caminhos críticos. Pode haver mais de um.
  7. Reveja a rede. O caminho crítico muda ao longo do projeto, conforme as atividades atrasam ou adiantam.

Exemplo resolvido: o lançamento de um produto

Uma empresa prepara o lançamento de um produto, com seis atividades. A última coluna mostra o que precisa terminar antes:

Ativ.DescriçãoDiasApós
AAprovar requisitos3Início
BConcluir integração4A
CPreparar materiais2A
DValidar segurança2B
ETraduzir e treinar suporte3C
FHomologar e publicar2D, E

Há dois caminhos do início ao fim:

  • A, B, D, F: 3 + 4 + 2 + 2 = 11 dias.
  • A, C, E, F: 3 + 2 + 3 + 2 = 10 dias.

O mais longo manda. O projeto leva 11 dias, e o caminho crítico é A, B, D, F. Em uma rede pequena, somar os caminhos resolve. Em uma rede real, com dezenas de atividades, usa-se o cálculo de ida e volta.

Ida e volta

Vamos contar a partir do dia 0, de modo que uma atividade com início 3 começa quando o terceiro dia termina. Usaremos quatro datas:

  • IC e TC: início e término mais cedo.
  • IT e TT: início e término mais tarde.

Na ida, da esquerda para a direita, cada atividade começa quando a última antecessora termina. F depende de D e E, que terminam nos dias 9 e 8, então F só começa no dia 9.

Na volta, da direita para a esquerda, cada atividade precisa terminar antes que a sucessora mais apertada comece. O prazo é 11, então F precisa começar até o dia 9. Logo, E precisa terminar até o dia 9, e pode começar até o dia 6.

A diferença entre as duas datas é a folga total:

F=IT−IC=TT−TCF = IT - IC = TT - TC
FF
Folga total da atividade
ITIT
Início mais tarde
ICIC
Início mais cedo
TTTT
Término mais tarde
TCTC
Término mais cedo
Folga total de uma atividade.
Ativ.ICTCITTTF
A03030
B37370
C35461
D79790
E58691
F9119110

As atividades com folga zero formam o caminho crítico. C e E têm 1 dia de folga.

Folga total e folga livre

Há uma pegadinha nessa tabela. C e E têm 1 dia de folga, mas não 1 dia cada um: a folga é compartilhada pelo caminho. Se C atrasar 1 dia, E começa no dia 6 e perde a sua.

Por isso existe outro conceito. A folga total mede quanto dá para atrasar sem mexer no prazo final. A folga livre mede quanto dá para atrasar sem afetar o início da próxima atividade. Aqui, C tem folga total de 1 e folga livre de 0. Já E tem 1 de cada. Na prática, isso significa que um atraso em C passa o problema para a equipe de E, mesmo sem mudar a data final.

A rede muda durante o projeto

O caminho crítico não é fixo. Se B atrasar 1 dia, o prazo vai a 12 dias. Se C atrasar 1 dia, nada muda na data final, mas A, C, E, F também fica com 11 dias, e o projeto passa a ter dois caminhos críticos. Se C atrasar 2 dias, o prazo vai a 12, e o caminho crítico agora é esse, não o original.

Por isso, a rede precisa ser recalculada com as durações reais à medida que o projeto anda. Um caminho crítico definido no início e nunca revisto pode apontar a atenção da equipe para o lugar errado.

Como reduzir o prazo

Encurtar uma atividade costuma custar dinheiro, com horas extras ou gente a mais. Isso se chama compressão. Suponha que seja possível:

Ativ.Reduz atéCusto por dia
B2 dias2.000
C1 dia1.000
D1 dia3.000
E1 dia1.500
F1 dia2.500

C é a atividade mais barata de comprimir, mas está fora do caminho crítico. Gastar ali não antecipa nada. O corte começa pela atividade crítica mais barata: B. Reduzindo B em 1 dia, o caminho crítico cai para 10, e o outro caminho também tem 10.

Agora há dois caminhos críticos. Qualquer redução adicional precisa atingir os dois. A saída mais barata é F, que pertence a ambos. Calculando todas as combinações, o menor custo para cada meta é:

PrazoCortesCusto total
10 diasB2.000
9 diasB e F4.500
8 diasB duas vezes, C e F7.500
7 diasB duas vezes, C, D, E e F12.000

Cada dia custa mais do que o anterior: 2.000, 2.500, 3.000 e 4.500. Abaixo de 7 dias, não há mais o que comprimir. A decisão passa a ser de negócio: se cada dia antecipado vale 3.500, faz sentido parar em 8 dias, porque o último corte custaria 4.500.

Outra saída é fazer atividades em paralelo, como começar a validação de segurança antes do fim da integração. Isso não custa mais por dia, mas aumenta o risco de retrabalho.

Esses cortes têm um efeito colateral: menos folga. Com dois caminhos críticos, um atraso em qualquer ponto da rede afeta a data.

O que recursos mudam

O CPM clássico considera apenas dependências lógicas. Ele não sabe quem faz o quê. Suponha que B e E dependam da mesma especialista, que só consegue fazer uma coisa por vez. Pelo cálculo, B vai do dia 3 ao 7, e E vai do dia 5 ao 8. As duas se sobrepõem.

Se E esperar B terminar, E vai do dia 7 ao 10, e F termina no dia 12. O prazo aumentou um dia, sem nenhum atraso em tarefa. Uma sequência nova, A, B, E, F, passa a mandar. É o que se chama de caminho crítico por recursos, e técnicas como o nivelamento de recursos e a corrente crítica existem para tratar disso (Wikipedia).

O que a incerteza muda

Os 11 dias são exatos só porque as durações são fixas. Estimativas não são. Para ver o efeito, simulamos a mesma rede 200 mil vezes, para este artigo. Cada duração variou entre 20% abaixo e 50% acima do estimado, com o valor estimado como o mais provável. Essa assimetria é uma suposição, mas é comum que tarefas atrasem mais do que adiantem.

MedidaResultado
Duração média12,1 dias
Chance de terminar em até 11 dias7,8%
Prazo com 80% de chance12,8 dias
Vezes em que C e E definem o prazo9,7%

Duas lições. A data calculada é um valor otimista, não uma previsão, e prometer 11 dias seria aceitar mais de 90% de chance de atraso nessa simulação. Além disso, o caminho com folga às vezes vira o crítico. Um caminho quase crítico merece vigilância, e a folga de 1 dia não é garantia de segurança.

Esse problema é antigo. Desde os primeiros trabalhos com redes, já se apontava que basear a duração no caminho de maior soma gera resultados otimistas (PMI). Quando vários caminhos se encontram no fim, basta um deles atrasar para o projeto atrasar.

Erros comuns

  • Tratar folga como tempo livre. Folga é proteção, e é compartilhada pelo caminho.
  • Esconder margem nas durações. Se cada pessoa embute segurança na própria estimativa, a rede deixa de mostrar onde está o risco.
  • Criar dependências que são só preferência. “Sempre fazemos nessa ordem” pode esconder atividades que dariam para rodar em paralelo.
  • Acelerar o que está à vista. A atividade mais barulhenta nem sempre é a crítica.

O cálculo em Python

Este script reproduz a tabela. As atividades precisam estar em uma ordem que respeite as dependências:

cpm.py
atividades = {
"A": (3, []),
"B": (4, ["A"]),
"C": (2, ["A"]),
"D": (2, ["B"]),
"E": (3, ["C"]),
"F": (2, ["D", "E"]),
}
# Ida: cada atividade termina depois da última antecessora
termino_cedo = {}
for nome, (duracao, antes) in atividades.items():
inicio = max((termino_cedo[a] for a in antes), default=0)
termino_cedo[nome] = inicio + duracao
prazo = max(termino_cedo.values())
# Volta: cada antecessora termina antes da sucessora mais apertada
termino_tarde = {nome: prazo for nome in atividades}
for nome in reversed(list(atividades)):
duracao, antes = atividades[nome]
for a in antes:
termino_tarde[a] = min(termino_tarde[a], termino_tarde[nome] - duracao)
for nome in atividades:
folga = termino_tarde[nome] - termino_cedo[nome]
print(nome, "folga:", folga, "crítica" if folga == 0 else "")
print("Prazo:", prazo)

Como usar uma LLM

Uma LLM é útil para sugerir atividades esquecidas, questionar dependências e explicar o resultado. Para a conta, use uma planilha, um script ou uma ferramenta de projetos: modelos podem errar uma soma em silêncio. Se faltarem durações, ela não deve inventar um cronograma.

prompt-caminho-critico.txt
Monte a rede de dependências de um projeto para aplicar CPM.
Objetivo e marco final: [descrever].
Atividades, durações e dependências: [tabela ou lista].
Calendário útil, feriados e restrições de recursos: [informar].
Valide dependências impossíveis ou ciclos. Calcule início e fim mais
cedo/tarde, folga total e caminho(s) crítico(s), mostrando premissas
e contas. Proponha medidas de redução de prazo e seus trade-offs.
Caso faltem durações, não fabrique um cronograma preciso: entregue
a estrutura e solicite as estimativas necessárias.

Saída esperada: rede do projeto, caminho crítico e cronograma baseado em dependências.

Antes de confiar na resposta:

  • Refaça a conta. Rode os números em um script ou em uma ferramenta de projetos.
  • Revise as dependências com quem executa. O modelo infere ligações que podem não existir, e esquece outras.
  • Procure recursos compartilhados. Pergunte quais atividades dependem da mesma pessoa ou do mesmo ambiente.
  • Sanitize o contexto. Datas de lançamento, fornecedores e nomes de pessoas podem ser confidenciais.

Combine com outros frameworks

Referências

  1. Kelley, J. E. (1961). Critical-Path Planning and Scheduling: Mathematical Basis. Operations Research, 9(3), 296–320. DOI
  2. Kelley, J. E. & Walker, M. R. (1959). Critical-path planning and scheduling. Eastern Joint Computer Conference, 160–173. DOI
  3. Malcolm, D. G., Roseboom, J. H., Clark, C. E. & Fazar, W. (1959). Application of a Technique for Research and Development Program Evaluation. Operations Research, 7(5), 646–669. DOI
  4. Project Management Institute. Project network models: past, present and future. Link
  5. Smith, C. C., Sharma, V. & Baecher, G. B. (2020). PERT, CPM and the Tangled History of Network Scheduling. The Professional Constructor, 45(2). Link
  6. Wikipedia. Critical path method. Link