Los sabores del “Low-Code”

0
79

A menudo, cuando leemos sobre plataformas «low-code», también escuchamos sobre cómo los » ciudadanos desarrolladores » pueden crear gráficamente aplicaciones empresariales sin necesidad de codificar.

Este artículo ofrece una visión diferente, ya que examina los diferentes tipos de plataformas de low-code que existen en la actualidad y su importancia para servir mejor a los desarrolladores profesionales.

El árbol genealógico del Low-Code
Parte de la confusión en torno al “low-code” proviene de un concepto erróneo sobre qué son las plataformas de desarrollo de low-code. Las plataformas de low-code no aparecieron ayer; Son una evolución lógica de dos tecnologías existentes diferentes y bien establecidas:

– Plataformas de flujo de trabajo y gestión de procesos de negocio (BPM)
Estas plataformas son las pioneras del low-code. En su forma más básica, BPM encapsula la lógica empresarial en un modelo de proceso empresarial, en lugar de codificar esa lógica. Con una plataforma BPM, la lógica empresarial se puede diseñar gráficamente utilizando un editor estándar (como BPMN2, que se usa ampliamente en las plataformas BPM), y el modelo se ejecuta mediante un motor de proceso transaccional. Esto se llama desarrollo impulsado por modelos. La mayoría de las plataformas BPM de hoy en día tienen herramientas y marcos agregados que se pueden usar para crear aplicaciones empresariales completas. Algunos ejemplos de plataformas BPM son Appian, Pega, K2, Bizagi y Bonita.

– Plataformas de generación de código
Estas son plataformas que proporcionan un entorno de desarrollo visual de aplicaciones para facilitar la creación de aplicaciones. Una vez finalizada la aplicación, la plataforma genera código ejecutable. Hoy en día, muchas de estas plataformas también han agregado algún tipo de capacidad de flujo de trabajo para completar sus enfoques de flujo web original para diseñar la lógica de la aplicación empresarial. Algunos ejemplos familiares de estas plataformas son Outsystems, Kony y Progress Kinvey.

Pero a medida que el mercado y el software han madurado, los usuarios de low-code ahora tienen muchas más opciones que considerar: ya no solo vainilla y chocolate, sino al menos los «31 sabores» de las plataformas de low-code. ¿Cómo escoger? La selección de una solución de low-code tal vez no sea tan fácil como elegir el estilo Baskin-Robbins del mes. Elegir la plataforma adecuada significa tener en cuenta los siguientes criterios y cómo influyen en sus necesidades:

Alcance: automatización de procesos, automatización inteligente, orquestación de microservicios, gestión de casos, desarrollo de aplicaciones empresariales

«Persona» / Público objetivo:
desarrollador ciudadano, desarrollador profesional, una mezcla de ambos

Enfoque de ejecución:
(como se explicó anteriormente) desarrollo basado en modelos, generación de código, una combinación de ambos

Enfoque arquitectónico: basado en componentes o servicios, capacidades integrables, extensibilidad de la plataforma, API disponibles

Complejidad del proyecto:
proyectos pequeños / medios / grandes, escalabilidad, tolerancia a fallas y rendimiento, ejecución síncrona vs asíncrona

Opciones de implementación:
local, pública / privada / nube híbrida, SaaS, aPaaS

Opciones de integración:
integración en la nube, integración heredada, herramientas DevOps
Materiales de aprendizaje y desarrollo: freemium, código abierto, tutoriales, ejemplos de repositorio GitHub

El papel irremplazable de los desarrolladores profesionales
Examinemos cuidadosamente la idea de que los ciudadanos desarrolladores van a crear aplicaciones críticas sin la participación de desarrolladores profesionales.

Algunos partidarios de las plataformas de low-code para ciudadanos desarrolladores dicen que usar una plataforma low-code ofrece una solución a la falta de desarrolladores disponibles para apoyar todos los proyectos deseados. ¿Es posible que los ciudadanos desarrolladores llenen el vacío cuando no hay suficientes desarrolladores profesionales para aplicaciones empresariales? ¿O podrían incluso reemplazar a los desarrolladores profesionales? Definitivamente no lo creo. Pero incluso si esto fuera posible, usar solo ciudadanos desarrolladores solo soluciona un problema creando un problema mayor: cómo los equipos de TI responsables de las aplicaciones empresariales pueden obtener el mejor rendimiento de las aplicaciones creadas por personal no técnico.

Francamente, no tener desarrolladores profesionales involucrados en el desarrollo puede ser peligroso. ¡Es particularmente aterrador pensar que los desarrolladores no profesionales podrían administrar la implementación de una aplicación central en un banco, por ejemplo, como parte de una iniciativa de transformación digital habilitada por una plataforma low-code!

El verdadero poder de las plataformas de low-code es permitir que tanto los ciudadanos desarrolladores como los profesionales brinden tecnología, marcos y metodologías que fomenten la reutilización y reduzcan la necesidad de codificar, no eliminarla.

Existe la necesidad de plataformas low-code para desarrolladores profesionales que les permiten contar con el conjunto adecuado de tecnologías para aumentar la productividad y, al mismo tiempo, permitir la colaboración con ciudadanos desarrolladores.

Lo que los desarrolladores profesionales esperan de una plataforma low-code
Hay al menos cinco aspectos esenciales que los desarrolladores profesionales esperan de una plataforma low-code para desarrollar aplicaciones empresariales: extensibilidad, herramientas gráficas + opciones de codificación, DevOps y entrega continua, opciones de implementación y escalabilidad.

Agregaré un sexto a esa lista: las ventajas que ofrecen las opciones de código abierto, incluida la capacidad de intentar usar una plataforma antes de tomar una decisión, reducir la curva de aprendizaje y ser parte de una comunidad para compartir.

La flexibilidad a través de la extensibilidad ofrece libertad
A los desarrolladores les gusta la libertad tanto como a todos los demás. Al enfrentarse a una plataforma completa sobre la cual construir una aplicación, la capacidad de un desarrollador para seleccionar solo los componentes que necesitan (por ejemplo, solo el motor de procesos, o tal vez el motor de procesos y el diseñador de interfaces de usuario) ofrece flexibilidad. Con la extensibilidad viene la libertad de ampliar una biblioteca, marco o plataforma y mejorarla (por ejemplo, agregando un nuevo conector a un sistema de terceros o agregando una API REST faltante). Libertad para reemplazar un servicio o componente con otro (por ejemplo, reemplazar la autenticación predeterminada o el servicio SSO). Libertad para combinarlo con otras soluciones preferidas (por ejemplo, usar un administrador de transacciones, una base de datos, un servidor de aplicaciones o una herramienta de integración continua específica). Las plataformas de low-code para desarrolladores aún deben permitir la libertad de código.

Una buena combinación de herramientas gráficas y codificación para equipos heterogéneos
A los desarrolladores les encanta codificar, pero generalmente no les gusta reinventar la rueda. Si hay una forma gráfica, potente y fácil de usar para diseñar una página web o configurar gráficamente los parámetros de un proceso, siempre habrá alguien que estará encantado de usarlo. Por supuesto, siempre habrá alguien que no quiera o necesite herramientas «fáciles de usar». Los desarrolladores que realmente prefieren codificar estarán bien con el enfoque low-code si también tienen la opción de crear esa página web utilizando su biblioteca de javascript favorita, o usar un archivo XML para configurar los parámetros del proceso. Las plataformas low-code para desarrolladores brindan soporte a equipos técnicos con diferentes preferencias y niveles de habilidad.

Herramientas para colaboración y entrega continua
La transformación digital consiste en desarrollar nuevas capacidades rápidamente, ver qué funciona y qué no funciona, y realizar cambios basados en la retroalimentación y aprovechar la agilidad. ¿Cómo funciona eso sin involucrar a los desarrolladores profesionales y al equipo de DevOps? Desarrollar software hoy significa utilizar la integración nativa con tecnologías como Github para la gestión de la colaboración y el repositorio, Docker para automatizar la entrega, Jenkins para la integración continua y Ansible para el aprovisionamiento y despliegue de aplicaciones y plataformas. Las plataformas low-code para desarrolladores deberían permitirles usar sus métodos y marcos preferidos.

Soporte a equipos de desarrollo multidisciplinar
En las implementaciones empresariales, las instalaciones de gestión de cambios que funcionan en los equipos de desarrollo distribuidos son cruciales. Con frecuencia, los equipos de desarrollo están compuestos por diferentes perfiles (front-end y back-end) que probablemente utilizan un enfoque de desarrollo mixto, como se señaló anteriormente. Algunos desarrolladores pueden preferir las herramientas gráficas para el desarrollo de la interfaz de usuario, mientras que otros prefieren la codificación manual con HTML5 y otros con Javascript. Las plataformas low-code que permiten la colaboración entre un equipo tan heterogéneo como eso podrían ayudar a resolver el problema de «la falta de desarrolladores disponibles para respaldar todos los proyectos que deben hacerse».

Opciones flexibles para arquitectura y escalabilidad
Ya sea que una aplicación se despliegue en las instalaciones, a través de SaaS, o en una nube pública, privada o híbrida, los desarrolladores profesionales desean tener una visión clara de la arquitectura de las aplicaciones que se construirán con la plataforma. Esto les permite modelar y diseñar esas aplicaciones para el rendimiento y la escala, mejorar la comunicación entre los componentes y los servicios de la aplicación, o desacoplar las interfaces de usuario y los datos de los procesos de negocios. Una visión clara de la arquitectura junto con las capacidades de extensibilidad y la libertad de código son esenciales para que los desarrolladores creen aplicaciones empresariales que se ejecutan y escalan en diferentes entornos.

Probar antes de comprar; aprender y compartir
Los desarrolladores, como cualquier otra persona, por supuesto preferirían ser parte del proceso de selección de las herramientas que usarán. Las plataformas de código abierto y de modelo freemium están por delante del juego aquí. La ventaja de un producto de código abierto es que cualquiera puede descargarlo y comenzar a utilizarlo. En general, también hay una comunidad detrás para hacer preguntas, dar comentarios y compartir las mejores prácticas.

El low-code es para una alta colaboración
Las iniciativas de transformación digital necesitan código, así como un gran equipo de usuarios comerciales, habilidades técnicas y usuarios finales para tener éxito en la creación de aplicaciones empresariales innovadoras. La selección de la plataforma low-code correcta para habilitar a un equipo de transformación digital significa comprender claramente las herramientas, los puntos de extensión, las capacidades de integración, las API, las tecnologías subyacentes y las opciones de integración y despliegue continuo que brinda.

La realidad es que los desarrolladores profesionales deben participar en cualquier implementación de proyecto complejo de low-code. Esto no le quita ninguno de los múltiples beneficios de usar esas plataformas (incluida la velocidad de desarrollo), pero debería ayudarnos a enfocarnos en el asunto real: cómo servir mejor a los desarrolladores profesionales en el contexto de las plataformas low-code y cómo mejorar la colaboración entre las diferentes personas en esos proyectos (incluidos los ciudadanos desarrolladores).

Miguel Valdes Faura – Bonitasoft