Un cliente necesitaba pasar archivos de una nube a una base de datos.

Si estás en el tema, sabrás que hay miles de maneras distintas de hacer este trabajo, y que mayormente dependerá del origen de los datos, qué tan limpios estén, y su destino. Consideremos que son archivos CSV comprimidos y no más que eso.

Algunas filas tenían errores (menos del 0,0000001%) y los archivos descomprimidos podían pesar más de un GB, pero no más que ello: eran archivos simplemente identificables y que podían registrarse para su posterior corrección.

Se llegó a charlar en dos maneras de hacer el trabajo: usar una simple carga de archivos de 3 minutos, que la base de datos permitía, o armar un flujo de datos complejo, con código que limpie cada fila del archivo, con un costo elevado tanto en desarrollar, como en procesar en cada iteración que el archivo se actualice, sumado a que el archivo tardaría 6 horas en terminarse, aunque “aseguraría” que todas las líneas del archivo sean ingresadas.

Bueno, para vos y para mí, como lo cuento, la solución es la obvia, “cargar el archivo”.

Pero no, alguien no estuvo convencido: un ingeniero del cliente. “No brinda trazabilidad de las fallas y perdemos control“.

Lo de la trazabilidad era falso y una premisa incorrecta: se podía saber específicamente qué fallaba si algo lo hacía. Y sobre el control, es verdad, uno podría meter información errónea en la base de datos, pero insisto: el orígen era tan limpio que el porcentaje de filas fallidas era menor a que yo sea un influencer famoso. Además, un pipeline sin cálculo o limpieza es lo mismo que no hacer nada útil, como muchas empresas del rubro sugieren.

Tuve que defender el sentido común: trabajo simple, resultados más que aceptables, costo barato. Y si, ganó el sentido común.

En sistemas pasa mucho esto, de querernos sobrecomplicar con capas de abstracción en pos de “una mejor arquitectura”. Y hay ocasiones, sobre todo en equipos grandes de enormes sistemas, que hay que respetar un proceso complejo para que nada salte por los aires. Sin embargo, para la gran mayoría de los equipos de pequeñas y medianas empresas, sobrecomplicarse es contraproducente, cuando pelean el mango.

En la vida también, pensamos que para alcanzar una meta o la atención de alguien, hay que esforzarse de maneras muy descabelladas para ello, cuando a veces un “hola, ¿cómo estás?” es suficiente.

Si lo simple funciona, hagámoslo. Dejemos lo complicado para otros desafíos.

Todo cuesta dinero y tiempo.

¡Suscribite al newsletter!

Avatar photo

Martín Longo

Director de Ánimadata y Business Intelligence Engineer. Quemadísimo, escribo acá mis opiniones.