# boeckeler-harness-engineering-coding-agents-2026-04-02

## Veille

Harness engineering: un modello mentale per costruire fiducia negli agenti di coding tramite guide feedforward e sensori di feedback

## Titre Article

Harness engineering for coding agent users

## Date

2026-04-02

## URL

https://martinfowler.com/articles/harness-engineering.html

## Keywords

harness engineering, coding agents, feedforward, feedback, sensori, guide, cibernetica, qualità del software, context engineering, controlli computazionali, controlli inferenziali, harness di manutenibilità, harness architetturale, harness comportamentale, harnessability, template di harness, steering loop, shift left, linter, test strutturali, AI code review

## Authors

Birgitta Böckeler

## Ton

**Profilo**: Prospettiva analitica e pedagogica, registro tecnico accessibile, livello esperto ma reso comprensibile. Birgitta scrive come un'architetta software senior che struttura un dominio emergente.

**Descrizione**: Il tono è quello di una distinguished engineer che propone un framework concettuale rigoroso ma pragmatico. La scrittura è strutturata e progressiva, con definizioni precise e tassonomie chiare (feedforward/feedback, computazionale/inferenziale). L'autrice utilizza metafore tratte dalla cibernetica (governatore, regolatore, legge di Ashby) per ancorare l'argomentazione a una teoria esistente, pur restando consapevole dei suoi limiti ("le metafore hanno un limite"). Lo stile alterna esposizione teorica ed esempi concreti tratti dalla pratica presso Thoughtworks, OpenAI e Stripe. L'articolo si rivolge a sviluppatori e architetti senior che già utilizzano agenti di coding e cercano un modello mentale per strutturare il proprio approccio. Il tono è onesto riguardo ai limiti attuali, in particolare per l'harness comportamentale, e si conclude con domande aperte piuttosto che con certezze.

## Pense-betes

- **Definizione chiave**: l'"harness" di un agente di coding = tutto ciò che circonda il modello. Distinzione tra harness interno (costruito dal creatore dell'agente) e harness esterno (costruito dall'utente per il proprio contesto)
- **Due assi fondamentali**: guide (feedforward, prima dell'azione) e sensori (feedback, dopo l'azione); ciascuno può essere computazionale (deterministico, veloce, CPU) o inferenziale (semantico, non deterministico, GPU)
- **Steering loop**: il ruolo dell'essere umano è iterare sull'harness quando un problema si ripresenta, non correggere manualmente ogni errore
- **Shift left**: distribuire i controlli il più presto possibile nel ciclo di vita (pre-commit, pre-integrazione, pipeline, monitoraggio continuo)
- **Tre categorie di regolazione**: manutenibilità (la più semplice, strumenti esistenti), fitness architetturale (fitness function), comportamento (la più difficile, l'"elefante nella stanza")
- **Harnessability**: non tutte le codebase sono ugualmente harnessable. Linguaggi fortemente tipizzati, framework astratti (Spring) e confini modulari chiari aumentano l'harnessability. Il codice legacy fortemente indebitato è il più difficile da sottoporre ad harness ma ne ha più bisogno
- **"Ambient affordances"** (Ned Letcher): proprietà strutturali dell'ambiente che lo rendono leggibile e navigabile dagli agenti
- **Legge di Ashby**: un regolatore deve avere almeno tanta varietà quanto il sistema che governa. Definire le topologie dei servizi riduce la varietà, rendendo un harness completo più raggiungibile
- **Template di harness**: evoluzione dei template di servizio esistenti in bundle di guide+sensori per topologia (dashboard, CRUD, processore di eventi)
- **Limitazione importante**: gli harness non colgono in modo affidabile i problemi di alto livello (diagnosi errata, over-engineering, istruzioni fraintese). L'esperienza umana rimane un "harness implicito" insostituibile
- **Relazione con il context engineering**: l'harness engineering è una forma specifica di context engineering applicata agli agenti di coding
- **Esempi concreti**: OpenAI utilizza linter personalizzati + test strutturali + "garbage collection"; Stripe utilizza hook pre-push + euristiche + blueprint
- **Prompt injection positiva**: messaggi di linter personalizzati che includono istruzioni di correzione sono una forma benefica di prompt injection

## RésuméDe400mots

Il termine "harness" designa tutto ciò che circonda un modello IA all'interno di un agente. Birgitta Böckeler propone un framework concettuale specifico per gli utenti di agenti di coding, distinguendo l'harness interno (costruito dal creatore dell'agente) dall'harness esterno (che gli utenti costruiscono per il proprio contesto).

Il modello è organizzato attorno a due meccanismi complementari. Le **guide** (controlli feedforward) anticipano il comportamento dell'agente e lo orientano prima che agisca: convenzioni di codifica, specifiche, skill, server MCP. I **sensori** (controlli feedback) osservano dopo l'azione e permettono all'agente di autocorreggersi: linter, test, analisi statica, revisioni del codice basate su IA. Ogni meccanismo può essere **computazionale** (deterministico, veloce, affidabile) o **inferenziale** (semantico, più costoso, non deterministico). Entrambi sono necessari: senza feedback, l'agente ripete i propri errori; senza feedforward, codifica regole senza sapere se funzionano.

L'articolo applica il principio dello **shift left**: distribuire i controlli il più presto possibile nel ciclo di sviluppo. I controlli rapidi (linter, test unitari) vengono eseguiti prima del commit, mentre quelli più costosi (mutation testing, revisione architetturale) vengono eseguiti nella pipeline di integrazione. I sensori continui monitorano la deriva del codice e le metriche di produzione.

Vengono identificate tre **categorie di regolazione**. L'harness di **manutenibilità** è il più maturo, basandosi sugli strumenti esistenti (linter, analizzatori di complessità, copertura dei test). L'harness di **fitness architetturale** riutilizza il concetto di fitness function per le caratteristiche non funzionali. L'harness di **comportamento** rimane la sfida principale: come verificare che l'applicazione faccia ciò che dovrebbe fare? Le suite di test generate dall'IA non sono ancora sufficientemente affidabili.

Il concetto di **harnessability** sottolinea che non tutte le codebase si prestano allo stesso modo all'harnessing. Linguaggi tipizzati, framework astratti e architetture modulari offrono maggiore presa. La legge cibernetica di Ashby giustifica i **template di harness**: riducendo la varietà delle topologie possibili (dashboard, CRUD, processore di eventi), un harness completo diventa più raggiungibile.

L'autrice conclude che l'esperienza umana rimane un "harness implicito" insostituibile. L'obiettivo non è eliminare l'essere umano ma indirizzarne l'attenzione verso ciò che conta di più. L'harness engineering è una pratica ingegneristica continua, non una configurazione una tantum, e molte domande restano aperte riguardo alla coerenza, alla valutazione e all'orchestrazione degli harness.

## GrapheDeConnaissance

- Birgitta Böckeler —publie→ Harness engineering for coding agent users (DOCUMENT, 0.99)
- Birgitta Böckeler —travaille_chez→ Thoughtworks (ORGANISATION, 0.98)
- Harness engineering —est_variante_de→ Context engineering (METHODOLOGIE, 0.95)
- Harness engineering —utilise→ Guides feedforward (CONCEPT, 0.98)
- Harness engineering —utilise→ Capteurs feedback (CONCEPT, 0.98)
- Guides feedforward —améliore→ Probabilité de bons résultats (CONCEPT, 0.9)
- Capteurs feedback —permet→ Auto-correction de l'agent (CONCEPT, 0.9)
- Harnais de comportement —est_instance_de→ Défi majeur non résolu (CONCEPT, 0.92)
- Loi d'Ashby —soutient→ Templates de harnais (CONCEPT, 0.88)
- Ned Letcher —a_créé→ Ambient affordances (CONCEPT, 0.9)
- OpenAI —utilise→ Linters custom et tests structurels (METHODOLOGIE, 0.92)
- Stripe —utilise→ Pre-push hooks et blueprints (METHODOLOGIE, 0.92)
- Harnachabilité —est_basé_sur→ Typage fort et modularité (CONCEPT, 0.88)
- Expérience humaine —est_instance_de→ Harnais implicite irremplaçable (CONCEPT, 0.85)

---
Canonical: https://www.thekb.eu/it/fiches/boeckeler-harness-engineering-coding-agents-2026-04-02/
