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

## Veille

Harness engineering: un modelo mental para generar confianza en los agentes de codificación mediante guías feedforward y sensores de feedback

## Titre Article

Harness engineering for coding agent users

## Date

2026-04-02

## URL

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

## Keywords

harness engineering, agentes de codificación, feedforward, feedback, sensores, guías, cibernética, calidad del software, context engineering, controles computacionales, controles inferenciales, harness de mantenibilidad, harness de arquitectura, harness de comportamiento, harnessability, harness templates, steering loop, shift left, linters, tests estructurales, revisión de código con IA

## Authors

Birgitta Böckeler

## Ton

**Perfil**: Perspectiva analítica y pedagógica, registro técnico accesible, nivel experto pero cercano. Birgitta escribe como una arquitecta de software senior que estructura un dominio emergente.

**Descripción**: El tono es el de una distinguished engineer que propone un marco conceptual riguroso pero pragmático. La redacción es estructurada y progresiva, con definiciones precisas y taxonomías claras (feedforward/feedback, computacional/inferencial). La autora emplea metáforas de la cibernética (governor, regulador, ley de Ashby) para anclar el argumento en la teoría existente, siendo consciente de sus límites ("metaphors only go so far"). El estilo alterna entre la exposición teórica y ejemplos concretos extraídos de la práctica en Thoughtworks, OpenAI y Stripe. El artículo se dirige a desarrolladores y arquitectos senior que ya usan agentes de codificación y buscan un modelo mental para estructurar su enfoque. El tono es honesto respecto a las limitaciones actuales, en particular para el harness de comportamiento, y termina con preguntas abiertas en lugar de certezas.

## Pense-betes

- **Definición clave**: el "harness" de un agente de codificación = todo lo que rodea al modelo. Distinción entre el harness interno (construido por el creador del agente) y el harness externo (construido por el usuario para su contexto)
- **Dos ejes fundamentales**: guías (feedforward, antes de la acción) y sensores (feedback, después de la acción); cada uno puede ser computacional (determinista, rápido, CPU) o inferencial (semántico, no determinista, GPU)
- **Steering loop**: el papel del humano es iterar sobre el harness cuando un problema se repite, no corregir manualmente cada error
- **Shift left**: distribuir los controles lo más temprano posible en el ciclo de vida (pre-commit, pre-integración, pipeline, monitorización continua)
- **Tres categorías de regulación**: mantenibilidad (la más fácil, herramientas existentes), fitness arquitectónico (fitness functions), comportamiento (la más difícil, el "elephant in the room")
- **Harnessability**: no todas las bases de código son igualmente harnessable. Los lenguajes fuertemente tipados, los frameworks abstractos (Spring) y los límites modulares claros aumentan la harnessability. El código legacy muy cargado de deuda técnica es el más difícil de harness pero el que más lo necesita
- **"Ambient affordances"** (Ned Letcher): propiedades estructurales del entorno que lo hacen legible y navegable por los agentes
- **Ley de Ashby**: un regulador debe tener al menos tanta variedad como el sistema que gobierna. Definir topologías de servicio reduce la variedad, haciendo más alcanzable un harness completo
- **Harness templates**: evolución de las plantillas de servicio existentes hacia paquetes de guías+sensores por topología (dashboard, CRUD, procesador de eventos)
- **Limitación importante**: los harnesses no capturan de forma fiable los problemas de alto nivel (diagnóstico erróneo, over-engineering, instrucciones mal entendidas). La experiencia humana sigue siendo un "harness implícito" insustituible
- **Relación con context engineering**: el harness engineering es una forma específica de context engineering aplicada a los agentes de codificación
- **Ejemplos concretos**: OpenAI usa linters personalizados + tests estructurales + "garbage collection"; Stripe usa hooks pre-push + heurísticas + blueprints
- **Prompt injection positiva**: los mensajes de linter personalizados que incluyen instrucciones de corrección son una forma beneficiosa de prompt injection

## RésuméDe400mots

El término "harness" designa todo lo que rodea a un modelo de IA dentro de un agente. Birgitta Böckeler propone un marco conceptual específico para los usuarios de agentes de codificación, distinguiendo el harness interno (construido por el creador del agente) del harness externo (que los usuarios construyen para su propio contexto).

El modelo se organiza en torno a dos mecanismos complementarios. Las **guías** (controles feedforward) anticipan el comportamiento del agente y lo orientan antes de que actúe: convenciones de codificación, especificaciones, skills, servidores MCP. Los **sensores** (controles de feedback) observan después de la acción y permiten que el agente se autocorrija: linters, tests, análisis estático, revisiones de código con IA. Cada mecanismo puede ser **computacional** (determinista, rápido, fiable) o **inferencial** (semántico, más costoso, no determinista). Ambos son necesarios: sin feedback, el agente repite sus errores; sin feedforward, codifica reglas sin saber si funcionan.

El artículo aplica el principio del **shift left**: distribuir los controles lo más temprano posible en el ciclo de desarrollo. Los controles rápidos (linters, tests unitarios) se ejecutan antes del commit, mientras que los más costosos (mutation testing, revisión arquitectónica) se ejecutan en el pipeline de integración. Los sensores continuos supervisan la deriva del código y las métricas de producción.

Se identifican tres **categorías de regulación**. El harness de **mantenibilidad** es el más maduro, apoyándose en herramientas ya existentes (linters, analizadores de complejidad, cobertura de tests). El harness de **fitness arquitectónico** reutiliza el concepto de fitness functions para características no funcionales. El harness de **comportamiento** sigue siendo el reto principal: ¿cómo verificar que la aplicación hace lo que se supone que debe hacer? Los conjuntos de tests generados por IA aún no son suficientemente fiables.

El concepto de **harnessability** subraya que no todas las bases de código se prestan por igual al harnessing. Los lenguajes tipados, los frameworks abstractos y las arquitecturas modulares ofrecen más asidero. La ley de la cibernética de Ashby justifica las **harness templates**: al reducir la variedad de topologías posibles (dashboard, CRUD, procesador de eventos), un harness completo resulta más alcanzable.

La autora concluye que la experiencia humana sigue siendo un "harness implícito" insustituible. El objetivo no es eliminar al humano, sino dirigir su atención hacia lo que más importa. El harness engineering es una práctica de ingeniería continua, no una configuración puntual, y quedan muchas preguntas abiertas en cuanto a la coherencia, evaluación y orquestación del 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/es/fiches/boeckeler-harness-engineering-coding-agents-2026-04-02/
