Charla · 2026
Data-first or Contract-first?
Jochen Christ (CTO y Co-Founder, Entropy Data) ·
Cuando construyes un producto de datos, ¿por dónde empiezas? Jochen recorre dos rutas hacia el mismo destino. El camino tradicional data-first se trae los datos de producción, los explora y publica lo que hay. El camino contract-first arranca con una conversación, escribe el contrato antes de que existan los datos y deja que un coding agent construya el producto a partir de él. Por el camino: Data Contracts, el Open Data Contract Standard, la Data Contract CLI y una construcción en vivo del producto shelf warmers que tarda unos diez minutos.
Notas anotadas de las diapositivas de la charla de Jochen Christ. El texto de abajo es un resumen editado.
TL;DR
Los cinco puntos clave y lecciones aprendidas de la charla.
-
El data-first es rápido, pero aún no es un producto. Explorar los datos de producción es creativo, rápido y está anclado en la realidad. Pero deja la propiedad sin definir, sin documentación, sin comprobaciones de calidad y con datasets técnicos enormes.
-
Pon los datos bajo contrato y testéalos. Un contrato ODCS aporta un owner con nombre, documentación y reglas de calidad ejecutables, y la Data Contract CLI las comprueba en cada cambio dentro de tu pipeline. Eso arregla tres de los cuatro problemas.
-
El contract-first empieza con una conversación. Siéntate con tus Data Consumers antes de mirar una sola columna y especifica sus requisitos en lenguaje de negocio. El resultado es un producto de datos del tamaño justo, como la tabla shelf_warmers de cuatro columnas, que arregla el problema de los datasets enormes.
-
La semántica es el trabajo que importa. Dejar por escrito qué significa realmente "última venta", incluidas las bajas de inventario y el valor nulo para artículos nunca vendidos, es la diferencia entre un producto usable y un juego de adivinanzas. No hay atajo: habla con los stakeholders de tus datos.
-
Los coding agents implementan lo que especifiques. Con el contrato y skills que describen tu stack, un agente construyó el producto shelf warmers en unos once minutos. Cuanto mejor sea tu especificación, mejor construye el agente, y los tests del contrato deciden cuándo publicas.
Preguntas del público
Una selección de preguntas del público después de la charla.
P: Si el agente genera los modelos dbt, ¿quién los mantiene después? ¿Edito el código dbt o vuelvo al contrato y lo regenero?
Depende de tu cultura y de la madurez de tu ingeniería, pero personalmente ya casi no me metería en el código dbt. Yo cambiaría los requisitos en el contrato y, si la salida no es correcta, mejoraría las skills. Monta un bucle de feedback en tu repositorio de skills y optimiza desde ahí, en vez de ir parcheando a mano el código generado.
P: ¿Distinguen un marketplace de un catálogo de datos, o los tratan como lo mismo?
Los distinguimos. Un catálogo es un índice técnico de todos los datasets que existen, a menudo millones de activos. Un marketplace solo contiene productos de datos pensados para compartirse y consumirse por otros equipos, normalmente unos pocos cientos. El marketplace es donde vive la información contextual, la del nivel del contrato.
P: El data-first suele sacar a la luz hallazgos que nadie pidió. Ir siempre por contract-first, ¿no significa responder solo a lo que la gente ya sabe preguntar?
Es un buen punto, y sí quieres conservar la capacidad de explorar. La clave está en la frontera: dentro de tu propio dominio, donde ya entiendes qué significan los datos, mantén un acceso explorativo sencillo, al estilo data-first. Los Data Contracts importan cuando cruzas una frontera organizativa, porque ahí empieza un nuevo bounded context y los datos compartidos necesitan una interfaz acordada y documentada.
P: ¿El contrato debería especificar el esquema físico desde el principio, o solo el propósito y el modelo conceptual, y dejar que el agente resuelva el esquema físico?
En el contrato yo definiría el modelo conceptual y lógico y dejaría la implementación física y técnica a la skill o a la plataforma de datos destino. El conocimiento de negocio va en el modelo; el detalle específico de la plataforma va en las skills.
P: Vemos Data Contracts en los extremos del flujo de datos, en las fuentes y justo antes del consumo. ¿Los ves también en el medio, en cada paso del linaje?
Mi visión es que un Data Contract aporta una nueva frontera de confianza. Probablemente no necesitas un contrato que llegue hasta la primerísima fuente en cada salto; necesitas linaje hasta el último Data Contract del que dependes. Entre contratos puedes usar linaje técnico, que es el cableado interno del pipeline de un producto de datos. La confianza está anclada en el contrato de origen.
Artículos relacionados
dbt con Data Contracts: sincronizar en vez de copiar a mano
Cómo usar datacontract dbt sync para convertir los Data Contracts en la fuente de verdad de un proyecto dbt existente: crear un contrato, sincronizarlo en tus modelos, generar tests y bloquear la deriva en CI.
Data Product Builder
Desarrollo guiado por contratos para productos de datos: escribe o amplía un Data Contract ODCS y pide a Claude Code, OpenAI Codex o GitHub Copilot CLI que lo implemente. Sirve para productos de datos nuevos y para cambios en los existentes.
Open Data Contract Standard (ODCS)
Aprende el Open Data Contract Standard (ODCS), una especificación YAML abierta para Data Contracts gobernada por Bitol: estructura, schema, calidad de datos y ejemplos.