La legge di Gall

2–3 minutes

Un sistema complesso che funziona si è invariabilmente evoluto da un sistema semplice che funzionava. Un sistema complesso progettato da zero non funziona, e non può essere rattoppato per farlo funzionare. Nel 2026, il pattern di fallimento più comune nell’implementazione AI è esattamente questo: costruire l’architettura complessa prima di avere il mattone semplice che regge.

Il modello

John Gall lo formulò nel 1975 in “Systemantics”. L’osservazione è empirica, non teorica: i sistemi complessi che funzionano davvero — ecosistemi biologici, linguaggi naturali, economie di mercato — non sono stati progettati da nessuno. Si sono evoluti pezzo dopo pezzo, con ogni aggiunta che si innestava su qualcosa di già funzionante. Il corollario è più utile della legge stessa: se vuoi un sistema complesso che funziona, non progettarlo complesso. Parti da uno semplice che funziona, e lascialo crescere.

L’applicazione nel 2026 è immediata e dolorosa. Il pattern di fallimento più ricorrente nell’AI enterprise è l’architettura agentic progettata da zero: catene di agenti che si delegano compiti tra loro, workflow multi-step con decine di integrazioni, orchestrazioni sofisticate che sulla lavagna sembrano eleganti e in produzione collassano. Le implementazioni che funzionano raccontano tutte la stessa storia: sono partite da un singolo task automatizzato, delimitato e misurabile. Un riassunto automatico delle email del mattino. Una classificazione dei ticket di supporto. Un draft di risposta per le FAQ. Qualcosa di semplice che ha dimostrato valore. Poi si sono espanse un pezzo alla volta, aggiungendo complessità solo dove l’iterazione precedente era stabile e il valore era stato verificato.

Gall’s Law non è un argomento contro la complessità: è un argomento contro la complessità prematura. Il sistema complesso è il punto di arrivo, non il punto di partenza. Ogni tentativo di saltare la fase semplice — per impressionare uno stakeholder, per giustificare un budget, per seguire il pitch di un vendor — produce un sistema fragile che nessuno riesce a debuggare, perché nessuno sa quale pezzo ha smesso di funzionare quando nessun pezzo ha mai funzionato da solo.

Quando NON applicarlo

In contesti dove il sistema semplice non può esistere come unità autonoma — dove la complessità è il requisito minimo di funzionamento (un sistema operativo, un protocollo di rete). In questi casi, Gall’s Law si applica comunque ai sottosistemi: ogni componente dovrebbe funzionare prima di essere integrato. La legge non dice “evita la complessità”: dice “non pretendere che funzioni prima che le sue parti funzionino singolarmente”.

Non serve una toppa che è più grossa del buco.