En tiempos de la transformación digital, el CEO y CIO deben tomar una nueva conciencia de lo intangible del software.

Por Patricia Luna Arredondo*

 

La implementación exitosa de los nuevos modelos de negocio digitales será consecuencia de si la organización abordó desde la arista estratégica del software a la transformación digital.

En otras palabras, la transformación nunca será realidad a menos que el software, lo realmente digital, sea el centro y el eje de este viaje llamado transformación digital.

El software es algo intangible, está compuesto por uno o varios objetos de código (programas), escritos en uno o varios lenguajes de programación que incluso integra otros componentes, incluyendo entre otros al software libre y a los distintos licenciamientos, porque en cualquier sistema aplicativo se puede encontrar interactuando tanto software propio como software propiedad de terceros.

La existencia del software es lo que permite desde hace más de cinco décadas, realizar una serie de procesos de negocio que logran colocar a la organización en la arena del mercado, su competencia y competitividad con sus clientes, consumidores, proveedores y usuarios finales.

El software es el elemento lógico y digital del negocio, curiosamente y debido a su intangibilidad, el cuidado que se pone cuando se crea por primera vez una aplicación, se descuida cuando se le mejora o adiciona funcionalidad.

Y ocurre porque la primera vez, lleva un tiempo de dedicación de uno o varios programadores en su desarrollo, se cuida la lógica funcional de los algoritmos que le dan razón de existir, se procura calidad en la escritura del código, quizá y dependiendo de los conocimientos y experiencia de los programadores, también se haga un apego a las mejores prácticas de ingeniería de software, también, se realiza con el nivel de complejidad que permita su comprensión posterior por cualquier otro programador, y se deja plasmada de manera diligente, la documentación interna en el código.

Eso es lo que se espera se haga, sin embargo, prácticamente nadie ni nada, revisa lo tangible que es el código fuente escrito para verificar si se hizo de manera diligente y en cumplimiento con ingeniería de software.

Solo se revisa el funcionamiento o ejecución, que es lo intangible en la etapa de pruebas, se revisa que el flujo de proceso y de datos sea el correcto, que no tenga fallas y que opere continuamente sin problemas técnicos, arrojando los resultados esperados.

Una vez concluidas satisfactoriamente las pruebas unitarias e integrales, se tiene listo para liberar a productivo la aplicación iniciando entonces, su mantenimiento evolutivo que complementará funcionalidad o corregirá aquellas fallas no detectadas en las pruebas, mejorar los algoritmos o mejorar la seguridad.

Y es ahí, en el mantenimiento de software donde la premura de tiempo para su liberación a productivo, obliga a desatender el apego a las mejores prácticas de codificación, se omite ajustar o complementar la documentación interna o se incorporan rutinas de software libre que pueden tener vulnerabilidades o problemas de seguridad.

Se ha demostrado que el uso del software libre es el mejor punto de acceso para los hackers, debido a sus vulnerabilidades de ciberseguridad. Y obviamente, los responsables de desarrollo omiten revisar las restricciones y notificaciones de vulnerabilidades ya identificadas.

A estas vulnerabilidades se les llama CVEs (Common Vulnerabilities and Exposures, por sus siglas en ingles), se trata de una clasificación con la descripción técnica de las vulnerabilidades de seguridad públicamente conocidas y que son de gran ayuda, si se toman en cuenta para mantener el estado óptimo de las aplicaciones de negocio. Esta identificación la coordinan organismos internacionales profesionales como lo son MITRE, OMG y CISQ, principalmente.

Tanto el CIO como el CEO, al contar con la funcionalidad esperada, confían sin siquiera pensar si el gerente de sistemas y los programadores o desarrolladores de software internos o externos a la organización están debidamente capacitados, si tienen altos estándares éticos y que de manera responsable codifiquen líneas de código cuidando no solo el lenguaje, la sintaxis y la semántica, sino también asegurándose de no dejar vulnerabilidades o posibles riesgos de seguridad que puedan detener en algún momento la continuidad de operaciones, que posibilite un ciberataque, o que permita el robo de información por un tercero. Indudablemente, si los riesgos se concretan, pueden poner en serio riesgo a la empresa, generar pérdidas económicas, dañar su reputación e incluso dejarla fuera del mercado.

En tiempos de la transformación digital, es necesario tomar una nueva conciencia de lo intangible del software, principalmente por parte del CIO pero también del CEO, ya que los modelos de negocio pronto serán totalmente digitales.

Ambos, CIO y CEO, deberán conocer y tomar decisiones estratégicas respecto del estado de salud y calidad del código de cada una de las aplicaciones de negocio. Esto no debe ser únicamente responsabilidad del gerente de sistemas, ya que sería juez y parte y tendrá la tentación de comunicar únicamente lo conveniente al no revelar las entrañas no tan saludables del portafolio aplicativo.

Utilizando tecnología de inteligencia de software, es posible recopilar datos e información sobre el portafolio aplicativo desde una perspectiva técnicamente objetiva y directamente del código fuente a una velocidad impresionante.

En contraste, requerirá mucho dinero, tiempo y programadores recopilar la información y aún así, un programador por más experiencia que tenga, no puede conocer en detalle todos y cada uno de los CVE´s, por lo que se obtendrá una revisión sesgada, incompleta e incluso incorrecta que llevará a tomar ciertas decisiones, quizá no las más acertadas.

La inteligencia de software permite de manera automática buscar la aparición de determinados patrones, identificar la presencia de CVE’s, identificar los lenguajes utilizados, revisar salud y calidad, así como su estado de preparación para entornos en la nube, entre otro tipo de información. Esto indudablemente identifica las fortalezas y debilidades del portafolio, obtiene métricas objetivas y da visibilidad del riesgo, complejidad, calidad y salud, tanto a nivel total del portafolio aplicativo, como a nivel de cada una de las aplicaciones en lo particular.

Además, la visibilidad y capacidad de análisis permite al CIO revisar desde distintas perspectivas la información que desconocía o que conocía parcialmente.

No cabe duda, al postergar la adopción de tecnología de inteligencia de software y si no se usan métricas objetivas basadas en las entrañas del software, la realidad de las aplicaciones de negocio se nos seguirá escapando.

* Socia Directora de Calimeria Business Intelligence, S.A. de C.V. Empresa especializada en soluciones para la alta dirección y gerencia, dedicada a desarrollar la capacidad de ejecución estratégica y competitividad de las empresas en temas de estrategia, innovación, inteligencia de software y capital humano. e-mail: patricia@calimeria.com