3 · Infraestructura·8 min de lectura
El dueño no podía entrar a su propio sistema. La explicación obvia culpaba a un empleado, y era falsa.
El mensaje llegó por WhatsApp, a las 12:44 de la tarde, del dueño de la empresa:
«Ingresé para dar de alta el cliente solicitado. Pero al momento de abrir el sistema entro como si alguien lo estuviera ocupando. ¿Es normal?»
No, no es normal. Y lo interesante es que desde afuera todo estaba bien: el túnel respondía, la base de datos contestaba en 130 milisegundos, el servicio llevaba 986 horas sin reiniciarse. Ningún tablero tenía un solo foco en rojo mientras el dueño de la empresa se quedaba fuera de su propio ERP.
Lo primero que uno cree#
El instinto dice: alguien dejó sesiones abiertas. Y había con qué sostenerlo. En ese servidor viven cuentas de escritorio remoto desconectadas, que no es lo mismo que cerradas — una sesión desconectada conserva todos sus programas corriendo:
USUARIO ID ESTADO INACTIVO DESDE
administrador 1 Desc 12:37 31/07/2026
soporte 57 Activo ninguno 07/08/2026
contabilidad2 328 Desc 1:24 04/09/2026
query user, el comando de Windows que lista quién está dentro del servidor. Desc = desconectado. Una lleva 41 días así.Cuarenta y un días. Ahí estaba la historia: sesiones fantasma acaparando licencias. Es limpia, es culpable de alguien, y es falsa — ninguna de esas dos sesiones tenía una licencia tomada en ese momento. Buena historia, cero evidencia.
Lo segundo que uno cree#
Entonces fuimos al gestor de licencias, que vive dentro del servidor y publica su estado en una dirección local. Y ahí apareció el que parecía el culpable de verdad:
Ventas usuario=planta4 sesion=375 12:48:15
Ventas usuario=planta4 sesion=375 12:48:17
Es casi perfecto. Una persona, dos clics, el 100% de la licencia de Ventas consumida por una sola estación, y el dueño chocando contra la pared un minuto antes. Escribimos la explicación, la mandamos, y empezamos a diseñar la alarma: «una sesión tiene dos asientos del mismo módulo».
Y antes de programarla, fuimos a leer cómo cuenta ese gestor.
fid=6 Ventas cnt=Station 0/2
fid=8 Compras cnt=Station 1/1
fid=4 Inventarios cnt=Station 2/2
cnt dice el modo de conteo. Station = se cuenta por estación, no por programa abierto.Por estación. Es decir: abrir el mismo módulo dos veces desde el mismo lugar no gasta un segundo asiento. El desperdicio que habíamos encontrado, y casi publicado, no existía. Esa persona no hizo nada malo.
La alarma que estuvimos a punto de dejar corriendo habría señalado a alguien —por nombre, con hora exacta— todos los días, por un comportamiento que no cuesta nada.
Lo que realmente pasaba#
Ventas 2 / 2 lleno
Inventarios 2 / 2 lleno
Cuentas por pagar 2 / 2 lleno
Compras 1 / 1 lleno
Bancos 1 / 2
Contabilidad 0 / 2
Cuentas por cobrar 0 / 2
Nómina 0 / 1
El límite de ese ERP no es «una licencia por persona». Es un tope por módulo, y los topes son de uno o dos. Con seis personas trabajando, dos no pueden estar en Ventas a la vez. Punto. Los dos asientos los tenían dos estaciones distintas, haciendo su trabajo, y el dueño era el tercero.
No había nada que limpiar. No había culpable. Había cuatro de ocho módulos sin un lugar libre y una empresa que creció más rápido que su licencia.
Y de rebote, dos renglones más abajo en la misma página que nadie había abierto nunca: la licencia completa vencía en catorce días. Los ocho módulos, el mismo viernes.
Por qué esto se repite#
La explicación que culpa a una persona siempre gana, y no porque seamos malos: es que es la única que trae una acción clara al final. «Faltan licencias» cuesta dinero y hay que sostenerlo frente a alguien. «Sujeto X abrió el programa dos veces» se arregla con un mensaje.
Es la misma trampa que ya nos había mordido con una cifra inflada: el dato que más conviene es el que menos se revisa.
Lo que hicimos#
Ninguna alarma sobre duplicados. En su lugar, medición: cada quince minutos queda registrado, desde dentro del servidor, cuántos asientos tiene ocupados cada módulo y quién los tiene.
Y el detector no dispara cuando un módulo se llena —eso es uso normal, y avisarlo cada vez enseña a ignorar el aviso—, sino cuando un módulo pasa más del 30% de la jornada sin un lugar libre, medido sólo en horas de trabajo, sobre siete días.
Hoy ese detector devuelve cero hallazgos, y eso está bien: cero no es «todo bien», es «todavía no hay semana». En siete días habrá una curva, y esa curva es la diferencia entre llegar a pedir presupuesto con un dato o con una corazonada.
Caso real, anonimizado. Las cuentas y los nombres de máquina fueron sustituidos; los topes, los horarios y el comportamiento de las herramientas son los que medimos.