La programmazione reticolare è l'insieme delle tecniche di project management e di ricerca operativa, dette anche tecniche reticolari, che rappresentano un progetto come una rete di attività legate da vincoli di precedenza, allo scopo di pianificarne, programmarne e controllarne i tempi, i costi e le risorse. Basate sulla teoria dei grafi, comprendono il metodo del percorso critico (CPM), il PERT, il metodo dei diagrammi a precedenze (PDM) e le tecniche sviluppate successivamente per la gestione dei costi e delle risorse.
Prima della diffusione delle tecniche reticolari lo strumento più usato per programmare i progetti era il diagramma di Gantt, che rappresenta in modo chiaro la durata delle attività nel tempo ma non mostra tutte le loro interdipendenze ed è difficile da aggiornare nei progetti complessi. Le prime tecniche reticolari furono sviluppate in modo indipendente alla fine degli anni cinquanta: il metodo del percorso critico, messo a punto tra il 1956 e il 1959 dalla DuPont e dalla Remington Rand per la costruzione e la manutenzione degli impianti chimici, e il PERT, sviluppato tra il 1957 e il 1958 dalla Marina degli Stati Uniti per il programma missilistico Polaris. Entrambi usavano reti con le attività rappresentate sugli archi ed erano stati concepiti per l'elaborazione su calcolatori mainframe.
Nel 1961 John W. Fondahl, della Università di Stanford, propose il metodo dei diagrammi a precedenze come alternativa al CPM utilizzabile senza calcolatore, con una notazione derivata dai diagrammi di flusso dei processi di Frank e Lillian Gilbreth; dal 1962 l'impresa H. B. Zachry di San Antonio ne curò l'implementazione su calcolatore e nel 1964 IBM presentò il proprio Project Control System, che adottava il nome di precedence diagramming. Nel 1962 il PERT fu esteso alla gestione dei costi con il PERT/Cost, da cui deriva il metodo dell'earned value management.

Il primo passo consiste nell'individuare le attività necessarie a completare il progetto, in genere mediante una work breakdown structure (WBS), e i vincoli di precedenza tra di esse. Il progetto è quindi rappresentato da un grafo orientato aciclico, che può assumere due forme.
Nella rappresentazione con le attività sugli archi (activity on arrow, AOA, detta anche arrow diagramming method, ADM) le attività sono gli archi del grafo e i nodi rappresentano gli eventi di inizio e di fine delle attività; la rete ha un solo nodo iniziale e un solo nodo finale, due nodi non possono essere collegati da più di un arco e la lunghezza e la forma degli archi non hanno significato. Per rappresentare alcune precedenze, o per distinguere attività che hanno gli stessi nodi di inizio e di fine, è necessario introdurre attività fittizie di durata nulla, che vanno limitate al numero minimo indispensabile. La rappresentazione AOA, che ha effettivamente l'aspetto di un reticolo, fu la più diffusa nei primi anni, anche perché si prestava alla formulazione del problema come modello di programmazione lineare; è però meno intuitiva e uno stesso progetto può avere più rappresentazioni AOA diverse, tutte corrette.
Nella rappresentazione con le attività sui nodi (activity on node, AON) le attività sono i nodi del grafo e gli archi rappresentano i vincoli di precedenza, senza bisogno di attività fittizie, salvo eventualmente quelle che servono a garantire un nodo iniziale e uno finale unici. È la rappresentazione usata dal metodo dei diagrammi a precedenze (precedence diagramming method, PDM), oggi la più diffusa e supportata da tutti i software di project management.
Gli elementi principali di un modello reticolare sono le attività, i vincoli, le date imposte e il calendario. Le attività rappresentano i lavori da svolgere; il loro attributo principale, oltre alla descrizione, è la durata prevista. Le attività di durata nulla che rappresentano traguardi intermedi importanti sono dette milestone.
I vincoli rappresentano le relazioni logiche tra le attività. Nel metodo a precedenze ne esistono quattro tipi: fine-inizio (l'attività successiva non può iniziare prima che la precedente sia terminata), fine-fine, inizio-inizio e inizio-fine; il più usato è il vincolo fine-inizio, mentre quello inizio-fine è usato molto raramente. A un vincolo può essere associato un ritardo (lag), cioè un tempo che deve trascorrere tra le due attività senza che lo si voglia rappresentare come un'attività, oppure un anticipo (lead), che consente all'attività successiva di iniziare prima.
Agli eventi di inizio e di fine delle attività possono essere assegnate date imposte (data fissa, non prima di, non dopo di), quando sono note a priori restrizioni di questo tipo; il calendario specifica infine i giorni lavorativi, le festività e i periodi di inattività, per riportare i risultati del calcolo su date effettive.
Il calcolo si svolge in due passate. Nella passata in avanti, a partire dall'inizio del progetto, si determinano le date di inizio e di fine al più presto (early start ed early finish) delle attività e la data di fine del progetto, se non è stata imposta; nella passata all'indietro, a partire dalla fine del progetto, si determinano le date di inizio e di fine al più tardi (late start e late finish).
Dalla differenza tra le date al più tardi e quelle al più presto si ricava lo scorrimento (float o slack), che può essere di due tipi: lo scorrimento libero è il tempo di cui un'attività può essere ritardata senza ritardare l'inizio delle attività successive, mentre lo scorrimento totale è il tempo di cui può essere ritardata senza ritardare la fine del progetto. Le attività con scorrimento totale nullo, se la data di fine del progetto non è stata imposta, formano il percorso critico, cioè la sequenza di attività di durata complessiva massima che collega l'inizio e la fine del progetto: un ritardo di una di queste attività ritarda l'intero progetto. Le attività critiche sono generalmente una piccola parte del totale, nell'ordine del 10-20%, e permettono di concentrare su di esse l'attenzione della direzione del progetto.
Le durate possono essere stimate con un solo valore, come nel CPM, oppure con la stima a tre valori del PERT, che permette di valutare la probabilità di rispettare le scadenze.
A ogni attività possono essere associati il tipo, la quantità e il profilo di impiego delle risorse necessarie per eseguirla. Sommando le risorse richieste in base alle date al più presto o al più tardi si ottengono istogrammi di carico che rappresentano una programmazione a capacità infinita, senza limiti alle risorse disponibili; se invece si fornisce un profilo delle risorse disponibili nel tempo, si effettua una programmazione a capacità finita, in cui il processo di allocazione cerca di eliminare i sovraccarichi spostando le attività entro il loro scorrimento. Mentre i problemi di programmazione con risorse illimitate sono facilmente risolubili, quelli con risorse limitate sono in generale NP-difficili in senso forte.
L'applicazione delle tecniche reticolari alla gestione di un progetto si articola tipicamente in alcune fasi successive.
L'aggiornamento si effettua indicando le date di inizio e di fine effettive delle attività e la percentuale di avanzamento, o la durata residua, di quelle in corso; spesso occorre rivedere anche i vincoli, per adeguare il modello all'effettivo svolgimento dei lavori. Questa fase può risultare laboriosa nei progetti in cui la sequenza delle attività e i vincoli sono nella realtà meno rigidi di quanto rappresentato nella rete. I risultati del calcolo possono essere presentati in forma di tabelle, di diagrammi di Gantt, di reticoli tempificati e di istogrammi.
Nella letteratura di ricerca operativa sono stati proposti numerosi modelli che estendono le tecniche reticolari introducendo ulteriori ipotesi sulle attività o sul progetto e cercando una schedulazione ottimale rispetto a obiettivi diversi dalla durata, come la massimizzazione del valore attuale netto del progetto, la riduzione dei costi o la minimizzazione delle penali per il mancato rispetto delle scadenze.