20 años, 20 errores que vi repetir · 14

Integrar dos sistemas sin decidir cuál manda

Toda integración tiene una cláusula que casi nunca se escribe: cuál de los dos gana cuando los valores no coinciden.

Roberto Jasinski 5 min de lectura

Todo proyecto de integración empieza con la misma conversación y evita la misma pregunta. Se discute qué objetos se sincronizan, con qué frecuencia, en qué dirección, quién sostiene la conexión cuando se cae. Y termina sin que nadie haya formulado lo único que después importa: cuando los dos sistemas tengan un valor distinto para el mismo dato, cuál gana. Lo vi omitirse tantas veces que dejé de sorprenderme. Lo que sigue llamándome la atención es lo caro que sale.

Una integración es un contrato entre dos sistemas, y como todo contrato tiene cláusulas: qué se intercambia, cuándo y hacia dónde. Esas se escriben siempre, porque sin ellas la conexión no se puede construir. La que casi nunca se escribe es la de precedencia, porque es la única que se puede omitir sin que nada se rompa. El proyecto cierra, la demostración sale bien, los dos sistemas se hablan. La cláusula que falta no impide nada; se cobra después.

Porque la regla existe igual, aunque nadie la haya redactado. Si no se decidió cuál manda, manda el último que escribió. Eso convierte el dato correcto en una función del orden en que se ejecutan los procesos, y no de la verdad. El valor que sobrevive es el del sistema que sincronizó más tarde, y esa hora se fijó por conveniencia técnica, en una decisión que nadie llevó a una reunión de negocio porque a nadie le pareció que fuera una.

El síntoma no aparece el día del lanzamiento. Llega meses después, siempre con la misma forma: alguien corrige un dato de forma manual, porque sabe que está mal, y al día siguiente lo encuentra como estaba. Lo corrige otra vez. Vuelve a aparecer. A la tercera deja de corregirlo y empieza a llevar su propia planilla, que es el momento exacto en que la empresa pierde el sistema que acababa de pagar. Y nadie lo reporta como una falla de la integración, sino como que el sistema «no es confiable».

Cuando nadie decide cuál manda, la decisión se toma igual: gana el que escribió último.

Que tarde tanto en verse tiene explicación. El día que la integración arranca, las dos bases coinciden, porque se las alineó para arrancar. La divergencia se acumula despacio: cada sistema sigue recibiendo ediciones de su propio lado, hechas por personas que tienen razones para hacerlas y ninguna forma de saber que del otro lado pasa lo mismo. Para cuando el desacuerdo es visible, ya nadie lo asocia con la integración: se lo atribuye a la calidad de los datos, que es la manera elegante de no atribuírselo a nadie.

Acá está el nudo, y no es técnico. Decir qué sistema tiene la última palabra sobre un dato es decir qué área es dueña de esa información. El responsable de una cuenta: ¿lo fija quien la vendió o quien la atiende todos los días? La dirección de facturación: ¿la que cargó el vendedor o la que corrigió administración? Cada respuesta le quita a alguien la capacidad de arreglar lo suyo, y por eso ninguna se resuelve en una reunión de proyecto.

La conversación se evita por un motivo comprensible. El trabajo técnico tiene alcance, presupuesto y fecha; la discusión sobre quién es dueño de qué no tiene ninguna de las tres. Abrirla implica frenar el proyecto hasta que varias áreas se pongan de acuerdo, sin saber cuándo. Así que no se abre, y el equipo técnico termina tomándola sin enterarse, en forma de un mapeo de campos. Una definición sobre quién manda en la empresa, escrita por quien nunca tuvo autoridad para tomarla.

Lo que lo evita es aburrido y ocupa menos de lo que el proyecto teme. Para cada dato que vive de los dos lados, un sistema de referencia escrito, y qué pasa con el otro: que lo muestre sin poder editarlo, o que cuando difieran quede marcado para que una persona resuelva. La lista de datos que de verdad importan es corta, bastante más corta que la de campos que se sincronizan, y es la única parte de la conversación que no se puede delegar.

Por eso, cuando me muestran un diagrama de integración, la pregunta que hago no es por los conectores. Es quién gana. Si me responden que depende del dato, vamos bien: eso es un criterio y se puede escribir. Si me responden que esa situación no debería producirse, ya sé lo que va a pasar, y tengo una idea razonable de cuándo.


Dos sistemas conectados no producen una versión única de nada. Producen dos versiones que se pisan, a una velocidad que ahora es automática y con una prolijidad que las vuelve difíciles de discutir.

La pregunta no es si los sistemas se hablan. Es a quién le creés cuando se contradicen.

RJ Roberto Jasinski Inteligencia Artificial · Data Science · CRM · Revenue Operations

¿Dos sistemas conectados y dos versiones del mismo dato?

Definir cuál manda sobre cada dato suele ordenar más que revisar la conexión.