Diagramas de rede de projeto explicados
Por trás de cada diagrama de Gantt há uma imagem mais silenciosa que decide onde as barras caem: a rede do projeto. Ela mapeia cada atividade e as ligações entre elas, e depois executa duas varreduras simples para encontrar o mais cedo e o mais tarde que cada tarefa pode acontecer. Desses números saem a folga, o caminho crítico e as barras que você de fato vê. Este guia percorre o método do diagrama de precedência, os quatro tipos de dependência e uma passagem para frente e para trás resolvida sobre uma pequena rede real.
- O que é realmente um diagrama de rede
- Duas notações, uma sobrevivente
- Nós como atividades, setas como dependências
- Os quatro tipos de dependência
- Construir a rede passo a passo
- A passagem para frente: as datas mais cedo
- A passagem para trás: as datas mais tarde
- A folga e o caminho crítico
- Como a rede sustenta o diagrama de Gantt
- Como a rede sustenta o caminho crítico
- Erros comuns que quebram uma rede
- Do diagrama a um plano vivo
O que é realmente um diagrama de rede
Um diagrama de rede de projeto é um mapa da lógica do seu plano. Ele retira o calendário e as barras e mostra apenas duas coisas: as atividades que compõem o trabalho e as dependências que dizem qual atividade tem de esperar por qual. Todo o resto no cronograma, inclusive as datas de um diagrama de Gantt, é calculado a partir desse mapa.
O valor de desenhá-lo está em que os erros de lógica se tornam óbvios. Uma ligação que falta, uma tarefa que não depende de nada, um laço em que duas tarefas esperam uma pela outra: tudo isso se esconde com facilidade numa lista de datas, mas salta à vista de imediato numa rede. Acerte a rede e o cronograma quase se constrói sozinho. Erre e nenhum cuidado na digitação das datas salvará o plano.
Duas notações, uma sobrevivente
Historicamente havia duas maneiras de desenhar uma rede. O método mais antigo, de atividade na seta, colocava as atividades sobre as setas e usava os nós como pontos de conexão. Era trabalhoso, muitas vezes precisando de setas fictícias invisíveis só para expressar certas ligações, e desapareceu em grande parte da prática moderna.
O método que venceu é o de atividade no nó, mais conhecido como método do diagrama de precedência, ou PDM. No PDM cada atividade é uma caixa, ou nó, e cada seta é uma dependência entre duas atividades. Quase toda ferramenta de cronograma que você provavelmente vai tocar hoje funciona com PDM por baixo, então é a notação que vale a pena aprender. O resto deste guia trata inteiramente dela.
Nós como atividades, setas como dependências
No PDM o nó carrega o trabalho. Um nó guarda o nome da atividade e sua duração, e uma vez executadas as passagens, guarda também quatro datas calculadas mais a folga. A seta carrega a regra. Uma seta traçada da atividade A para a atividade B diz que B depende de A, de modo que B não pode acontecer livremente até A ter feito a sua parte.
Leia essa direção com cuidado, porque ela é toda a gramática do diagrama. A cauda da seta é a predecessora. A ponta é a sucessora. Um nó sem setas de entrada pode começar de imediato. Um nó sem setas de saída é um ponto final do projeto. A forma da rede é simplesmente o conjunto de todas essas relações de predecessora e sucessora desenhadas de uma só vez.
Os quatro tipos de dependência
Nem toda dependência é a simples ligação "termine isto e então comece aquilo". O PDM admite quatro tipos, definidos por qual extremidade da predecessora se conecta a qual extremidade da sucessora. Término para início é de longe o mais comum, mas os outros três existem porque o trabalho real se sobrepõe.
| Tipo | Regra | Exemplo do dia a dia |
|---|---|---|
| Término para início (FS) | A sucessora começa depois que a predecessora termina | Despeje a fundação e depois levante as paredes |
| Início para início (SS) | A sucessora começa depois que a predecessora começa | Comece a pavimentar assim que a terraplenagem começou |
| Término para término (FF) | A sucessora termina depois que a predecessora termina | Os testes só encerram quando a codificação encerra |
| Início para término (SF) | A sucessora termina depois que a predecessora começa | O turno antigo acaba assim que o turno novo começa |
Para um passeio mais aprofundado de quando cada um merece o seu lugar, veja o guia sobre dependências de tarefas. Para a passagem resolvida abaixo usamos apenas ligações de término para início, o que mantém a aritmética limpa e ao mesmo tempo mostra todo o método.
Construir a rede passo a passo
Você não precisa de software especial para esboçar uma rede. Um quadro branco e notas adesivas servem, e a disciplina de fazê-lo à mão muitas vezes revela lógica que falta. A sequência é sempre a mesma.
- Liste cada atividade que tem de acontecer, uma por nó, com uma duração honesta em cada.
- Para cada atividade, pergunte o que precisa estar feito antes que ela possa começar, e trace uma seta de cada um desses predecessores até ela.
- Verifique que ao menos um nó não tenha predecessor, para que a rede tenha um início, e que ao menos um não tenha sucessor, para que tenha um fim.
- Procure por laços, em que seguir as setas o traz de volta ao ponto de partida, e desfaça os que encontrar, porque uma rede não pode conter um ciclo.
- Execute a passagem para frente para obter as datas mais cedo, e depois a passagem para trás para obter as datas mais tarde.
- Subtraia para obter a folga e marque a cadeia de folga zero como o seu caminho crítico.
Os passos cinco e seis são o coração mecânico do método, por isso as duas seções seguintes os percorrem sobre um exemplo concreto.
A passagem para frente: as datas mais cedo
A passagem para frente varre da esquerda para a direita e responde à pergunta: quão cedo cada atividade pode acontecer? Ela produz dois números por nó: o início mais cedo (ES) e o término mais cedo (EF), em que EF é simplesmente ES mais a duração. A regra para ES é que uma atividade não pode começar até que todo predecessor tenha terminado, de modo que o seu ES é o maior EF entre as atividades que a alimentam.
A rede. Seis atividades: A Requisitos (3 dias), B Projeto (4, após A), C Backend (6, após B), D Frontend (5, após B), E Integrar (3, após C e D), F Lançar (2, após E). Contando a partir do dia 0, cada término mais cedo é o seu início mais cedo mais a sua duração.
Varrendo para frente. A começa em 0 e termina em 3. B começa em 3 e termina em 7. B então alimenta tanto C quanto D, então cada uma começa em 7: C termina em 13 e D termina em 12. E espera pela mais tardia entre C e D, então o seu início é 13, e não 12, e ela termina em 16. F começa em 16 e termina em 18.
O resultado. O projeto inteiro precisa de 18 dias. Esse único número, o maior término mais cedo da rede, é o menor tempo em que o trabalho pode possivelmente ser feito.
A passagem para trás: as datas mais tarde
A passagem para trás varre da direita para a esquerda e responde à pergunta espelhada: quão tarde cada atividade pode acontecer sem empurrar o fim? Ela produz o término mais tarde (LF) e o início mais tarde (LS), em que LS é LF menos a duração. Você a semeia definindo o LF da atividade final igual ao seu EF da passagem para frente, e depois trabalha de volta. A regra para LF é que uma atividade deve terminar antes que a sua sucessora mais cedo precise começar, de modo que o seu LF é o menor LS entre as atividades que dependem dela.
Semeando o fim. F é o fim, então o seu LF é igual ao seu EF de 18, e o seu LS é 16. E deve terminar antes de F começar, então E tem LF 16 e LS 13.
Trabalhando de volta pelo ramo. Tanto C quanto D alimentam E, então cada uma assume LF 13. C, de 6 dias, tem LS 7. D, de 5 dias, tem LS 8. B alimenta tanto C quanto D, então o seu LF é o menor dos inícios mais tarde delas, ou seja 7, dando a B um LS de 3. A alimenta B, então A tem LF 3 e LS 0.
O que a diferença revela. D pode começar tão tarde quanto o dia 8, mas tão cedo quanto o dia 7, então tem espaço para escorregar. Toda outra atividade tem o seu início mais tarde igual ao seu início mais cedo, o que significa que não tem nenhum.
A folga e o caminho crítico
A folga, às vezes chamada de slack, é a recompensa por fazer as duas passagens. Para qualquer atividade, é o início mais tarde menos o início mais cedo, o que equivale ao término mais tarde menos o término mais cedo. É a quantidade de tempo que a atividade pode escorregar antes de atrasar algo mais adiante. Qualquer atividade com folga zero fica no caminho crítico, a cadeia mais longa através da rede e a sequência que define a duração do projeto.
| Atividade | Duração | ES | EF | LS | LF | Folga | Crítica |
|---|---|---|---|---|---|---|---|
| A Requisitos | 3 | 0 | 3 | 0 | 3 | 0 | Sim |
| B Projeto | 4 | 3 | 7 | 3 | 7 | 0 | Sim |
| C Backend | 6 | 7 | 13 | 7 | 13 | 0 | Sim |
| D Frontend | 5 | 7 | 12 | 8 | 13 | 1 | Não |
| E Integrar | 3 | 13 | 16 | 13 | 16 | 0 | Sim |
| F Lançar | 2 | 16 | 18 | 16 | 18 | 0 | Sim |
O caminho crítico é A, B, C, E, F, cujas durações somam 18. D é a única atividade com slack, um dia dele, porque o backend ao lado do qual ela corre leva um dia a mais. A teoria mais ampla por trás desses números vive no guia sobre o método do caminho crítico, e o significado do próprio slack no guia sobre a folga.
Como a rede sustenta o diagrama de Gantt
Um diagrama de Gantt é uma imagem da passagem para frente. Cada barra é desenhada do início mais cedo de uma atividade até o seu término mais cedo, e a pilha vertical de barras é apenas os nós listados página abaixo. As setas de dependência que você arrasta entre as barras numa ferramenta de Gantt são as mesmas setas da rede, só que dobradas para seguir a linha do tempo. Quando você move uma barra e as que vêm depois se deslocam, você está vendo uma passagem para frente recalcular em tempo real.
É por isso que um diagrama de Gantt que ignora as dependências é tão frágil. Sem a rede por baixo, as barras são apenas datas enfeitadas que nunca reagem à mudança. Com a rede, elas se comportam como um modelo. Você pode construir essa versão viva, com ligações e tudo, no criador de Gantt gratuito e ver um atraso se propagar no momento em que você o insere.
Como a rede sustenta o caminho crítico
O caminho crítico não é algo que você desenha. É algo que a rede calcula e você então lê. Uma vez feitas as duas passagens, o caminho crítico é simplesmente todo nó cuja folga é zero, unido da cauda à ponta. No nosso exemplo esses nós formam uma única cadeia ininterrupta, mas redes maiores podem ter vários caminhos críticos de uma vez, ou um caminho quase crítico com um único dia de folga que se torna crítico no instante em que uma estimativa cresce.
Como o caminho sai da folga, ele se move quando a lógica ou as durações se movem. Encurte o backend e o frontend pode se tornar crítico no lugar. Essa é a recompensa de pensar em redes em vez de barras: o diagrama não mostra apenas o caminho crítico de hoje, ele diz qual cadeia assumiria em seguida se a realidade mudasse.
Erros comuns que quebram uma rede
A maioria das redes quebradas falha por um punhado de razões repetíveis, e todas são fáceis de pegar quando você conhece o padrão. Uma revisão rápida frente a esta lista antes de confiar nas datas o livrará de um plano que calcula uma resposta confiante, porém errada.
| Erro | Sintoma | Correção |
|---|---|---|
| Atividade solta | Um nó sem predecessor ou sem sucessor no meio do plano | Adicione a ligação que falta para que ele se junte ao fluxo |
| Laço oculto | A ferramenta se recusa a programar ou trava | Encontre o ciclo e remova uma seta errada |
| Data em vez de lógica | Barras que não se movem quando um predecessor escorrega | Substitua a data fixa por uma dependência real |
| Excesso de ligações | Um emaranhado de setas que ninguém consegue ler | Mantenha apenas as ligações que são de fato necessárias |
O pior deles é o terceiro, uma data fixa no lugar de uma dependência, porque produz um plano que parece pronto, mas em silêncio deixa de reagir à mudança. Um diagrama de Gantt construído uma vez e nunca mais tocado não é um plano, é um desejo.
Do diagrama a um plano vivo
A rede não é um documento que você desenha uma vez e arquiva. É o motor que mantém o cronograma honesto, e ela só ganha o seu sustento se você deixar as duas passagens rodarem de novo cada vez que uma estimativa ou uma ligação muda. Numa boa ferramenta isso acontece automaticamente no momento em que você edita uma duração ou arrasta uma dependência, que é exatamente por que construir o seu plano sobre lógica real supera digitar datas à mão.
Parta da lógica, não do calendário. Liste as atividades, desenhe as setas, execute as passagens e leia o caminho crítico. Faça isso e as datas se cuidam sozinhas, a folga lhe diz onde você tem espaço e o caminho crítico lhe diz onde não tem. Esse é todo o poder silencioso da rede de precedência que se assenta sob cada diagrama de Gantt que você um dia construirá.
Perguntas frequentes
Qual é a diferença entre um diagrama de rede e um diagrama de Gantt?
Um diagrama de rede mostra lógica pura: atividades como nós e dependências como setas, sem linha do tempo. Um diagrama de Gantt coloca essas mesmas atividades num calendário como barras. A rede calcula as datas por suas duas passagens, e o diagrama de Gantt exibe o resultado, então são duas vistas de um mesmo plano.
O que significa o método do diagrama de precedência?
O método do diagrama de precedência, ou PDM, é a maneira de atividade no nó de desenhar uma rede de projeto. Cada atividade é uma caixa e cada dependência é uma seta entre caixas. Ele substituiu o antigo estilo de atividade na seta e é a notação que toda ferramenta de cronograma moderna usa hoje por baixo da sua vista de Gantt.
Como a passagem para frente e a passagem para trás trabalham juntas?
A passagem para frente varre da esquerda para a direita para achar o mais cedo que cada atividade pode começar e terminar. A passagem para trás varre da direita para a esquerda para achar o mais tarde que cada uma pode acontecer sem atrasar o projeto. A diferença entre as duas, em cada atividade, é a sua folga, e folga zero marca o caminho crítico.
Quais são os quatro tipos de dependência?
Término para início, em que uma tarefa espera outra terminar, é o comum. Início para início liga dois começos. Término para término liga dois finais. Início para término, o raro, amarra o término de uma sucessora ao início de uma predecessora. Cada um conecta uma extremidade diferente da predecessora à sucessora.
Uma rede pode ter mais de um caminho crítico?
Sim. Qualquer cadeia de atividades com folga zero é crítica, e uma rede pode conter várias dessas cadeias de uma vez. Também pode haver um caminho quase crítico carregando apenas um dia ou dois de folga que se torna crítico no momento em que uma estimativa sobre ele cresce, razão pela qual compensa vigiar também as cadeias de pouca folga.
Leia também
- O método do caminho crítico explicado
- Dependências de tarefas explicadas
- O que é folga (slack)?
- Voltar aos guias
Este artigo também está disponível em inglês.