BookinglyTech News
Software

Nueve sistemas decidían cuándo se trabaja: el lunes de Pascua que lo destapó

Una empresa generó 260 pedidos de compra y reservó recogidas para un día festivo porque cada automatización decidía por su cuenta cuándo está abierta la empresa.

2 min de lecturaDev.to0 vistas

El lunes de Pascua, el job de reposición hizo lo de cualquier lunes: calculó stock, generó unos 260 pedidos de compra y reservó recogidas con transportistas para el martes por la mañana. También publicó los huecos de entrega de la semana, incluidos los del propio festivo, que el portal de cliente aceptó sin protestar. Los proveedores estaban cerrados. Los transportistas mantuvieron las recogidas y cobraron dos fallidas. Atención al cliente se pasó el martes pidiendo perdón a 84 clientes por entregas que no podían producirse el día que habían reservado.

Cuando fueron a mirar, la definición de «día laborable» vivía en al menos nueve sitios distintos. El job de reposición daba por no laborables el sábado y el domingo, y por laborable todo lo demás. El proceso de facturación llevaba una lista de festivos bancarios escrita a mano en el código en 2021 y que se agotaba en 2023. El planificador de pagos tiraba del calendario del banco. El portal de cliente tenía su propia tabla, que una compañera de atención al cliente actualizaba cada diciembre de memoria. Los dos almacenes de Escocia celebran festivos distintos del resto, y solo tres de los nueve sitios lo sabían.

Cada una de esas decisiones era razonable cuando se tomó. Toda automatización necesita saber cuándo está abierta la empresa, y cada autor respondió esa pregunta por su cuenta porque no había otro sitio donde preguntarla.

Un calendario y un servicio

Ahora hay un único calendario de negocio. Guarda festivos públicos por nación, cierres de sede y los días en que determinados proveedores y transportistas no operan. Lo mantiene planificación de operaciones, que ya sabía todo esto y lo tenía en una hoja de cálculo. Cada job programado y cada sistema que ofrece una fecha consulta el calendario a través de un servicio único. Siete de los nueve ya han migrado; los dos que quedan están en el plan del año que viene.

Antes de cada festivo, el servicio genera una lista de todos los jobs que se ejecutarán o se saltarán ese día, y alguien de operaciones la revisa. Construir el calendario llevó alrededor de un mes. El lunes de Pascua que lo motivó costó más que eso.

El caso no describe un bug exótico. Describe algo bastante común: la automatización da por supuestas un montón de cosas del negocio, y los días en que la empresa está abierta resultaron ser una de las que se iban adivinando por separado. Si hay un sistema que decide cuándo se trabaja, merece la pena contar cuántos otros lo están decidiendo por su cuenta.