Software
Análisis
Código
Desarrollo

¿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 'low code' tiende, de hecho, a reducir la complejidad de las aplicaciones. A continuación se explica porqué

low code

El low code sigue recibiendo mucha prensa -y debate-. Muchos desarrolladores de software aún se preguntan si el uso de low code 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.



TE PUEDE INTERESAR...

Nuevo número de nuestra revista de canal 
 
DealerWorld Digital

 

Cobertura de nuestros encuentros

 

Documentos ComputerWorld



Forma parte de nuestra comunidad

 

¿Te interesan nuestras conferencias?