La excepción no es la regla (en el diseño de sistemas)

Desde hace algún tiempo he venido combatiendo (aunque perdiendo la batalla) las malas costumbres acerca del desarrollo de sistemas en Venezuela; en un artículo hace tiempo atrás explicaba como existe esa mala costumbre de “computarizar” los procesos en vez de automatizarlos; ahora viene una discusión que aunque distinta; tambien es importante; es esa mala costumbre de desarrollar con “la excepción” por delante como si esta fuera la regla.

El ejemplo que traigo a colación lo escuché de una discusión sobre un sistema de “caja o PdV (Punto de Venta)”; dicho sistema debería permitir ser “desconectado”; es decir, que el sistema tuviera la posibilidad de “guardar” en una base de datos local la TOTALIDAD del inventario de la empresa para poder operar en situaciones “excepcionales” como la ausencia de comunicación hacia las cajas.

Ya va; un momento, ¿Como es la cosa?; es decir, mi aplicación debe “preocuparse” de ser super-inteligente y detectar las posibles “fluctuaciones” de la red local y sincronizarse a tiempo con el servidor de inventario para luego llevar de manera “standalone” los procesos de venta y actualización de inventario?; y por qué rayos no mejor nos preocupamos por tener una red 24/7 con tiempos de uptime de 99% o más?; ¿por qué si el de redes es un inepto que monta cables mal ponchados o empata las antenas con bolsas de basura y palos de escoba o pone enlaces inalambricos que dan 800ms en un rango de solo 10 kilómetros los que deben pagar las consecuencias de su mala gestión de la red de comunicaciones son los programadores que deben lidiar con continuas desconexiones, “falta de tráfico”, medio embasurado o altas tasas de latencia o con una red que simplemente no sirve?.

¿Por qué no invertimos la cosa?; es decir, por qué el de redes no se esmera en que su medio nunca esté sucio; hacer revisiones regulares del espectro para detectar posibles fluctuaciones en la transferencia; mejorar las latencias hasta menos de 10ms; reducir los tiempos de offtime hasta menos de un 1%?; Por qué siempre deben ser los de programación los que den su brazo a torcer para hacer un sistema acorde a las necesidades de las “excepciones” y fallos de otros sistemas y no (como debería ser la regla), adecuar las condiciones del medio para que el sistema funcione adecuadamente?.

Si acaso las grandes operadores de mercado de productos como Makro; están pagando una millonada por enlaces y un sistema interconectado SAP/R3; ¿por qué van a pedir que las cajas estén desconectadas?, con una sola llamada pueden hacer que el de redes rebote como resorte y resuelva el problema de una desconexión repentina para que los de sistemas se dediquen a lo que saben; a lidiar con las necesidades del negocio y no a lidiar con problemas de redes; medios, transporte o espacio en disco.

Claro, existen situaciones en las cuales un medio podrá no estar disponible; en ese caso (como por ejemplo, una aplicación de gestión de documentos), se puede mantener del lado del cliente la última versión del último documento para que este siga trabajando; pero no vas a pedir que la aplicación se traiga TODOS los datos a este lado para que el usuario trabaje como si nada hubiera pasado; es decir, con mi último documento en cache puedo seguir trabajando hasta que termine; dandole al de redes tiempo para resolver la desconexión; no darle horas de tranquilidad para que “algún día que se le ocurra”; revise la red a sabiendas que el sistema que poseen los usuarios es desconectado y por ende nadie se va a quejar de su red ineficiente.

Mucha gente me ha preguntado por qué mientras otros frameworks piden lo más “poquito” (php4, de broma y pdo, etc) en mi caso me desarrollo una herramienta que pide lo ultimo de lo último (php 5.2 o +; dom, json, jquery, un browser decente y que funcione, tidy, pdo, mysql 5 o superior, etc); por qué la idea en todo esto es que siempre debemos tener la esperanza de trabajar en las “mejores condiciones posibles”; no pensar de plano en “las peores”, porque si tomamos un wolswagen escarabajo y nos dan la red de autopistas alemana Autobahn; vamos a sentir una frustración inmensa.

En fin, para cuando te encuentres con la via a el junquito, te podes quedar con tu wolswagen, pero si sabes que podrás tener una autopista como la Authobahn; te aseguro que querrás algo mas “acorde a la autopista” y no una excepción a la misma.

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 9 octubre 2007 en Cultura Libre, La soda y la pastilla, Programacion. Añade a favoritos el enlace permanente. 5 comentarios.

  1. Hola pheno, he ambiado mi nick en internet, ahora soy DA, me encontré de casualidad con tu post en to2blog, y buenp que alegría saber de ti, aunque sea por una rabia que te inspiró a escribir.

    En mi opinión, lo que a esa empresa le falta, es un buen analisis para que sepan cual es la causa real de su problema, en lugar de querer aplicar una mejora que quizá haga mas lentos los procesos, y sobre todo, menos seguros.

    Besos y abrasos.

    DA

    PD: el de arriba es mi nuevo blog.

  2. Grax DaHe simplificada (DA); al final no fue una rabia; mas bien una “reflexión” …

    igualmente muchos besos y abrazos, cuidese! …

    y felicidades por tu nuevo blog …!

  3. La respuesta es muy sencilla, no todas las empresas tienen el dinero para tener a un tipo de sistemas y una infraestructura de redes con un uptime tan alto, si acaso tienen a alguien a quien llaman cuando tienen un problema. y mientras no llega? se quedan sin sistema y no venden?

    Cuando se patea la calle se entiende el porque de este tipo de requerimientos 100% validos, las realidades son diversas.

    Saludos

    P.D.: Sap tambien tiene herramienta para trabajar offline, es SAP Mobile y tiene su uso y justificación.

  4. ¡FELIZ CUMPLEA�OS PROFE! =D

    lalala la Cumpleaño feliz, te deseamos a ti, cumpleaño feeeeeliiiiz lalalala

    P.D.: No le mando e-mail porque cada vez que envio uno me lo devuelve =( será que lo tengo mal escrito…

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: