En el caso de un sistema de gestión comercial que necesita estar disponible para diferentes usuarios en todo momento y lugar, las consecuencias de una falla crítica pueden variar.
Una de las peores pesadillas que un equipo de tecnología puede enfrentar es una falla crítica de un sistema o servicio que perjudique el desempeño del negocio.
Ya sea que se trate de errores de software o caída de la aplicación en la nube, es necesario que el personal de TI y los terceros que trabajen junto a ellos, prevean problemas y tracen planes de recuperación que permitan garantizar niveles satisfactorios de servicio (o SLA, del inglés Service Level Agreement).
Según un estudio global realizado por Vanson Bourne, el 60% de las compañías no evalúan los costos para el negocio de una posible interrupción del servicio en la nube, lo que significa que no están preparados para posibles impactos. Irónicamente, casi un tercio (31%) de los 1.200 tomadores de decisión encuestados, ya sufrieron un tiempo de inactividad de más de media hora por mes.
Adicionalmente, debido a la naturaleza cambiante de los sistemas y la constante necesidad de evoluciones, por nuevas determinaciones fiscales del gobierno o demandas internas del propio negocio, existe un elemento intrínseco a la operación del sistema que puede ocasionar fallas.
SEPA MÁS: Desarrollo interno vs proveedores de TI: ventajas y desventaja
“Con respecto a las customizaciones de software, hay estadísticas que muestran que por cada 1.000 líneas de código generalmente hay entre 15 a 50 errores”, dice Guilherme Utrabo, del departamento de desarrollo de Gera, citando el libro Code Complete de Steve McConnell. “Intentar eliminar estas fallas es una noción desfasada en el desarrollo de software. Desde el punto de vista de DevOps, el camino a seguir es dejar que estas fallas ocurran, pero que sean detectadas lo antes posible en el proceso de desarrollo. La pregunta correcta es: ¿qué tan preparado está mi sistema para manejar los problemas que eventualmente sucederán?
Reduciendo las fallas en el código del sistema de gestión comercial
En el caso de un sistema de gestión, comercial que necesita estar disponible para diferentes usuarios en todo momento y lugar, las consecuencias de una falla crítica pueden variar.
Un escenario bastante problemático para un sistema no disponible es cuando ocurre justo en el momento de pico de ventas, como el cierre de campañas.
Eso genera serias consecuencias, como desistir de realizar los pedidos, afectando directamente a la generación de ingresos de la empresa.
Pero imagine un error en el cálculo de la comisión de una red de ventas multinivel en el sistema de gestión comercial.
Hay cientos, quizás miles, de revendedores interconectados, y una falla puede afectar gran parte de la red y muchos revendedores lo notarán.
En este escenario, será necesario volver a calcular la comisión para toda la red de abajo hacia arriba, afectando la remuneración de toda la línea jerárquica.
Esto puede implicar atrasos en la remuneración y, en casos extremos, cuestionamientos legales.
“Incluso si hay un solo defecto, varios revendedores lo notarán y, en consecuencia, abrirán tickets a soporte interno de la compañía.
Para satisfacer la demanda, la empresa puede incluso tener que inflar la estructura de soporte interno, generando un costo directo”, dice Utrabo. “En caso de un problema con la remuneración, todos los valores serán cuestionados de ahí en adelante, es decir, hay una pérdida de credibilidad de la marca. Se crea un estado de desconfianza”.
SEPA MÁS: Cómo la computación en la nube puede ayudar a expandir el negocio
Para el especialista en sistema de gestión comercial, y considerando el punto de vista de DevOps – enfoque que unifica los equipos de desarrollo y operación de software – los errores de programación y código son inevitables. Por lo tanto, debe trabajar en la resilienciadel sistema y en cómo responder a estos errores.
Las estrategias para combatir el problema van desde realizar pruebas automatizadas y otros controles de calidad, hasta inclusive el uso de robots que simulan usuarios reales para detectar fallas rápidamente.
Se requiere un monitoreo activo del ambiente y del sistema, configurando alertas para situaciones críticas. Los equipos siempre deben estar disponibles (24×7) para resolver los problemas lo más rápido posible y evitar consecuencias más graves.
Manteniendo una infraestructura resistente
El segundo importante aspecto que debe ser tratado para evitar problemas en un sistema es precisamente la disponibilidad. Para el especialista de Gera, es importante adoptar una estrategia asincrónica en grandes aplicaciones, como los sistemas de gestión empresarial. Esto implica tener servidores separados para aplicaciones y procesos. Los primeros registran las solicitudes de los usuarios, mientras que los segundos procesan las acciones derivadas de estas solicitudes.
Pero, ¿qué significa esto en la práctica? “Cuando una revendedora hace un pedido, puede ser necesario, por ejemplo, volver a calcular el crédito. Pero el procesamiento del pedido y el recalculo no necesitan ocurrir al mismo tiempo. Es posible registrar la solicitud para que se procese por separado, de modo que el servicio principal permanezca online con la mejor performance posible”, explica Utrabo.