Contenido Exclusivo

VIDEO: Escalabilidad, seguridad y latencia: los 3 desafíos de la IA en redes de datos

Emilio Madero, Vicepresidente Ejecutivo de Marketing en Cirion Technologies,...

¿Cómo comunicar los riesgos de ciberseguridad al Consejo de Administración?

Los Consejos de Administración de las organizaciones deben comprender...

VIDEO: ¿Qué funciones desempeña un Chief Business Officer (CBO)?

¿Por qué es importante crear el puesto de CBO...

¿El ‘low code’ hace que las aplicaciones sean demasiado complejas?

Al hacer uso de técnicas de codificación estandarizadas y de la reutilización de código, el código bajo tiende, de hecho, a reducir la complejidad de las aplicaciones.

El low code sigue recibiendo mucha prensa -y debate-. Muchos desarrolladores de software aún se preguntan si el uso de código bajo mejora el proceso de desarrollo de aplicaciones, o si interfiere con el proceso de desarrollo y da lugar a aplicaciones inferiores. Otros se preocupan por las implicaciones de seguridad que puede traer consigo. Si el resultado inevitable del uso del low code resulta en una mayor complejidad de la aplicación, entonces este podría conducir a una mayor dificultad con los problemas de seguridad. Pero, ¿es así realmente? Últimamente he escrito mucho sobre el tema; la correlación entre la complejidad de la aplicación y el uso de código bajo es una perspectiva interesante. Vamos a sumergirnos en ella.

La complejidad es independiente del enfoque

Para ser claros, el resultado inevitable del low code no es necesariamente la complejidad. Al igual que en el desarrollo de aplicaciones tradicionales, la complejidad puede abrirse paso en el ciclo de vida de la base de código del producto. Aunque no es habitual, es inevitable. Hay muchas medidas que se pueden tomar para reducir la complejidad en las aplicaciones, independientemente de cómo se construyan, lo que mejora el rendimiento, la escalabilidad, la disponibilidad y la velocidad de innovación. Sí, una aplicación de bajo código, como todas las aplicaciones, puede volverse compleja, y requiere el uso de técnicas de simplificación para reducir la complejidad. Pero estas cuestiones no están ligadas al uso del mismo. Son igual de importantes en los procesos habituales de desarrollo de productos.

Lo desconocido no es complejo

Lo que aumenta el low code es la cantidad de código en su aplicación que no fue escrito directamente por su equipo de desarrollo. Hay más código que fue autogenerado por la plataforma de bajo código, o incluido en bibliotecas necesarias para que su aplicación funcione, pero que no fue producto de sus desarrolladores. Por lo tanto, a menudo hay más código “desconocido” en su aplicación cuando utiliza técnicas de este calado. Pero desconocido no es lo mismo que complejo. El código desconocido -provisto por otra persona y añadido a su aplicación- no aumenta, en sí mismo, la complejidad de la aplicación. De hecho, puede ocurrir lo contrario.

El código bajo reduce la complejidad

El uso de técnicas de desarrollo de low code puede reducir la probabilidad de que el exceso de complejidad se filtre en su aplicación. Al simplificar la carga cognitiva y las presiones de tiempo sobre los desarrolladores de aplicaciones, las plataformas de bajo código permiten a los desarrolladores centrarse en el panorama general, la lógica de negocio de la aplicación, y centrarse menos en los detalles. No obstante, ¿qué ocurre con los detalles más importantes? El low code se encarga de ellos. Además, utilizará técnicas estandarizadas y probadas para completar estas tareas de bajo nivel. El código autogenerado y el código de la biblioteca se desarrollan, se prueban y se mejoran mucho antes de que su equipo de aplicación los utilice. 

Cuanto más utilice el código bajo para construir su aplicación, mayor será la cantidad de este código estandarizado y probado previamente que se utilizará en su aplicación. El uso de una herramienta de bajo código para construir su aplicación resulta en un mayor uso general de técnicas de codificación estandarizadas, mejores prácticas de la industria y, en última instancia, más reutilización del software.

¿Pero qué pasa con la complejidad? Aumentar el uso de la codificación estandarizada y aprovechar la reutilización del software son estrategias comunes utilizadas para reducir la complejidad de una aplicación. La codificación estandarizada reduce la carga cognitiva que supone entender cómo funciona una aplicación, y la reutilización del código tiende a reducir el número de piezas móviles que pueden fallar en una aplicación compleja. Como resultado, la aplicación creada con herramientas de bajo código será menos compleja que la aplicación funcionalmente equivalente desarrollada con técnicas de programación tradicionales.

¿Cómo afectan la estandarización y la reutilización a la complejidad?

Cuando pensamos en la complejidad de una aplicación, solemos pensar en dos aspectos diferentes de la misma: el tamaño y el número de componentes que la conforman, y el ritmo de cambio del software de la aplicación. Aumentar el uso de código reutilizable disminuye el tamaño y el número de componentes de una aplicación, mientras que aumentar el uso de técnicas de codificación estandarizadas tiende a disminuir la tasa de cambio, al menos para los módulos o componentes en los que se aplicó la codificación estandarizada. La realidad de cualquier aplicación será más complicada, pero la filosofía básica sigue siendo válida. Aumentar el uso de técnicas de codificación estandarizadas y aumentar el uso de componentes de software reutilizables tiende a disminuir la complejidad de la aplicación resultante.

No es nuevo

Este análisis no es nuevo ni único en el espacio del low code. Llevamos décadas utilizando la abstracción del software para “ocultar” la complejidad del código a los desarrolladores. Siempre que utilizamos un lenguaje de alto nivel -como C, Java, Ruby o Go- nos abstraemos del código real que se crea y ejecuta para realizar las acciones deseadas. Centramos nuestro desarrollo en “construcciones de alto nivel”, permitiendo que el compilador o el intérprete se encarguen de los detalles de la creación y ejecución del código máquina. Y esto no se limita a los compiladores.

Cuando utilizamos paquetes de software, entornos y marcos de trabajo de alto nivel, también nos abstraemos de la complejidad para poder centrarnos en las capacidades de alto nivel. Así, al utilizar Ruby on Rails, Spring, Hibernate, Gin, jQuery, Bootstrap o incluso HTML/CSS, estamos abstrayendo la complejidad para poder trabajar a un nivel superior. El resultado son aplicaciones más potentes y de mayor fiabilidad, con menos esfuerzo de desarrollo y menores costes de soporte. Esto no es diferente de los argumentos que se discuten hoy en día en la comunidad de código bajo.

El mundo del desarrollo de software es complejo y cada día surgen nuevos retos. Los desarrolladores de software utilizan regularmente herramientas, recursos, entornos y técnicas para facilitar y simplificar el proceso. Recientemente, las técnicas de low code han mejorado y las plataformas se han convertido en una herramienta útil para mejorar el proceso de desarrollo de software, sin añadir una complejidad excesiva a la aplicación.

-Lee Atchison, IDG.es

Lo Más Reciente

¿Qué es la componibilidad empresarial y por qué es el futuro de la banca?

Tanto en los negocios como a nivel personal, la...

VIDEO: Escalabilidad, seguridad y latencia: los 3 desafíos de la IA en redes de datos

Emilio Madero, Vicepresidente Ejecutivo de Marketing en Cirion Technologies,...

CDMX ya es el mercado de talento tecnológico más grande de América Latina

La Ciudad de México superó a Sao Paulo este año...

Preponderante estrangula inversiones telco en México

El agente económico preponderante en telecomunicaciones (AEP-T) en México,...

Newsletter

Recibe lo último en noticias e información exclusiva.

Mireya Cortés
Mireya Cortés
Editora CIO Ediworld Online. La puedes contactar en mcortes@ediworld.com.mx

¿Qué es la componibilidad empresarial y por qué es el futuro de la banca?

Tanto en los negocios como a nivel personal, la única constante es el cambio. En ambos casos, nuestra capacidad de adaptación determina el éxito....

VIDEO: Escalabilidad, seguridad y latencia: los 3 desafíos de la IA en redes de datos

Emilio Madero, Vicepresidente Ejecutivo de Marketing en Cirion Technologies, expuso de qué manera su compañía está apoyando a las organizaciones con la infraestructura digital...

CDMX ya es el mercado de talento tecnológico más grande de América Latina

La Ciudad de México superó a Sao Paulo este año como el mercado de talento tecnológico más grande de América Latina, según el informe anual...