Programación Low-Code

Desde los inicios de la era de la computación allá por 1940, para programar era necesario tener un claro entendimiento de las matemáticas, lógica binaria, y lenguajes de programación. Mientras más profundo el conocimiento del programador de estas materias, mejor la calidad del software producido. En este contexto un entendimiento limitado hacía que la tarea de programar fuera prácticamente imposible. La biblia era The Art of Computer Programming de Donald Knuth [1].

Hoy, la situación es muy distinta. Con el uso de interfaces gráficas y máquinas cada día más potentes se ha posibilitado la implementación de herramientas de programación que no requieren del programador los conocimientos que anteriormente exigía la tecnología antigua. Estas herramientas pertenecen a la categoría denominada Low-Code –Poco Código, que implica que las aplicaciones que se desarrollan con ellas ocupan poca codificación o ninguna.

La importancia de las herramientas Low-Code es que resuelven una necesidad que siempre está presente en toda organización, cual es:  los requerimientos de desarrollar aplicaciones que atiendan necesidades específicas, que no son cubiertas por el ERP o el software contratado como un servicio en la nube o el software legado.

La manera tradicional de resolver estos requerimientos es mediante la participación del Área de Desarrollo de la Gerencia TI o mediante la contratación de servicios externos, en ambos casos se utilizan metodologías que toman, por lo general, varias semanas o meses para disponibilizar la aplicación al negocio.

Por qué Usarlas

Las herramientas para programación Low-Code permiten resolver el requerimiento a personas que no son programadores profesionales, necesariamente, utilizando metodologías de prototipos, ya que cada uno de ellos se puede generar en días, no semanas. De este modo se obtiene la agilidad necesaria para trabajar en conjunto con los Usuarios –Negocio– para generar soluciones en tiempos breves y ajustadas con las necesidades reales. Y, al final un desarrollo Low-Code versus uno tradicional resulta Low-Cost.

Definición

La plataforma de desarrollo de Poco-Código (LCDP Low-Code Development Platform) [2] es un software que proporciona un entorno que los programadores usan para crear software de aplicación a través de interfaces gráficas de usuario y de configuración en lugar de la programación tradicional. La plataforma puede centrarse en el diseño y desarrollo de un tipo particular de aplicación: como bases de datos, procesos comerciales o interfaces de usuario como aplicaciones web. Dichas plataformas pueden producir aplicaciones completamente operativas o requerir codificación adicional para situaciones específicas. Las plataformas de desarrollo Low-Code reducen la cantidad de codificación manual tradicional, lo que permite la entrega acelerada de aplicaciones de negocio. Un beneficio común es que una gama más amplia de personas puede contribuir al desarrollo de la aplicación, no solo aquellas con habilidades formales de programación. Los LCDP también pueden reducir el costo inicial de configuración, capacitación e implementación.

Antes del 9 de junio de 2014 no existía la denominación Low-Code, ésta fue acuñada por el analista Clay Richardson, de Forrester Research; sin embargo, el mercado de la plataforma de desarrollo de Low-Code se remonta a 2011.

Los LCDP tienen sus raíces en el lenguaje de programación de cuarta generación y las herramientas de desarrollo rápido de aplicaciones de los años 90 y principios de los 2000. De forma similar a estos entornos de desarrollo predecesores, los LCDP se basan en los principios del diseño basado en modelos, la generación automática de código y la programación visual. El concepto de desarrollo del usuario final también existía anteriormente, aunque los LCDP trajeron algunas nuevas formas de abordar este desarrollo.

Cómo Funcionan

Las plataformas de desarrollo de Low-Code proporcionan herramientas gráficas para diseñar una aplicación o sistema, junto con sus entradas, salidas, lógica del negocio y otros aspectos requeridos. Dependiendo de las características de la plataforma que se esté utilizando y los requisitos generales del sistema, el desarrollador puede o no tener que aumentar el diseño con un buen código antiguo, o la plataforma puede producir una solución de trabajo completa sin necesidad de código adicional.

Este proceso puede variar ampliamente entre plataformas de Low-Code, y es tan variada como los equipos de personas que las crean y las necesidades de negocio que cada plataforma está diseñada para atender. Sin embargo, los conceptos generales siguen siendo los mismos y el proceso generalmente implica el mapeo de diseños de interfaz de usuario, bases de datos, API y comportamiento de la aplicación del cliente, para producir una especificación que la plataforma utilizará para ensamblar la solución.

Desde la perspectiva de un computador, todo es cero o uno, por lo que no importa si los binarios compilados, los diseños UX (User Experience), las bases de datos o cualquier otra cosa proviene de una especificación gráfica o de una codificación manual.

En general, cuentan con tres componentes principales, que las figuras siguientes muestran, a título ilustrativo, para el caso de uso de FileMaker, y que son:

Definición de la Estructura de los Datos: mecanismo para establecer las características de los datos –campos– que la aplicación ocupará. Recuerde que el conjunto de todos los campos conforma un registro.

Las acciones comunes para la definición de los datos consisten en: primero, crear la Tabla (el conjunto de datos que se almacenará), después se definen los Campos de la Tabla. Y, finalmente, las Relaciones entre Tablas, para el caso que se tenga más de una, por ejemplo: Contactos y Empresas.

En FileMaker los datos se definen con la opción Database, como muestra la figura siguiente:

A screenshot of a cell phone

Description automatically generated

Diseño de la Interfaz de Usuario: también se le conoce por pantallazo, interfaz de usuario o layout, para el caso de FileMaker [3] es necesario entrar en el modo Layout.

Y, para agregar a la pantalla un campo, este se selecciona desde la paleta de la izquierda, y se arrastra al área de despliegue en pantalla, como se indica en la figura siguiente.

A screenshot of a computer

Description automatically generated

Especificación de Comandos: Eestos se señalan en la pantalla, por lo general,  mediante el objeto Botón, que puede llevar asociado un solo comando o un conjunto de instrucciones especificadas en un Script (esto es programación propiamente tal).

En el ejemplo, cuyo resultado se muestra en la figura siguiente, los comandos son generados automáticamente por FileMaker, y corresponden a las operaciones básicas con un registro.

A screenshot of a social media post

Description automatically generated

 

Quiénes deben Usarlas

Estas herramientas están diseñadas para resolver requerimientos en días usando mecanismos para la especificación de la aplicación, con muy poca codificación o con nada de codificación. Naturalmente, mientras más funciones tenga la aplicación, más compleja será su definición; pero, su tiempo de desarrollo seguirá siendo de días no semanas.

Estas herramientas están orientadas para que personas del negocio, sin conocimientos profesionales de programación, puedan utilizarlas para generar sus aplicaciones. Así por ejemplo un Administrador, con un conocimiento de macros de Excel, podrá partir generando aplicaciones para automatizar el ingreso de los datos que hacen en formulario de papel o planillas. Por su parte los ingenieros, en su mayoría tienen nociones de programación, pueden usar las herramientas Low-Code sin grandes dificultades. De este modo, el desarrollo Low-Code es muy importante para que las áreas de negocios logren agilidad y cierto nivel de autonomía en cuanto a la programación, y descongestione la Lista de Pendientes –backlog– de TI.

Por otro lado, las herramientas Low-Code son de extraordinaria utilidad para el Área Informática, puesto que permiten crear prototipos de manera rápida, con costos reducidos, y disminuir la Lista de Pendientes. Estos prototipos pueden generarse para probar una nueva función, generar interfaces entre sistemas distintos, complementar la funcionalidad de los sistemas que la empresa tiene en uso, generar aplicaciones para ser usadas en un período de tiempo acotado, y experimentar con nuevas ideas.

Cuáles son las herramientas disponibles 

Para estos efectos estoy transcribiendo un resumen del informe Forrester sobre las 4 herramientas que mejor evaluaron [4].

  • FileMaker, una subsidiaria de Apple, continúa su viaje de herramienta a plataforma. FileMaker se negó a participar en nuestra evaluación, pero es un líder en nuestro análisis. El proveedor de 30 años evita la asociación con Low-Code, posicionándose en su lugar como una “plataforma de innovación en el lugar de trabajo”. Aparte de las etiquetas, FileMaker proporciona herramientas sólidas de Low-Code para el desarrollo de bases de datos, informes, gestión de cambios de aplicaciones, seguridad y gestión de identidad, y contenido. El proveedor también ofrece muchas funciones para ayudar a los profesionales de AD&D ( Application Development & Delivery –software) ) a generar y participar en proyectos de software. Estas fortalezas reflejan un producto maduro con una base de clientes masiva y una estrategia efectiva.
  • AppSheet es mucho más que aplicaciones móviles ahora. AppSheet tiene la estrategia y la hoja de ruta más agresivas para capacitar a los empresarios como desarrolladores. El proveedor se dedica a la creación de software sin ningún tipo de codificación, y se muestra en una experiencia de inicio estelar y características sólidas para el desarrollo de aplicaciones móviles, diseño de datos, escalado de aplicaciones y generación de documentación, así como en su modelo comercial y tasa de crecimiento. Los clientes de referencia estaban muy satisfechos con las características móviles y la tasa de innovación del producto.
  • Caspio, pionero, ha construido silenciosamente la plataforma más rica para desarrolladores de negocios. La mayoría de los líderes empresariales de AD&D se han dado cuenta recientemente de Caspio, si es que lo saben. Durante un viaje de 18 años que comenzó con aplicaciones web y departamentales basadas en datos, Caspio ha desarrollado silenciosamente un producto que proporciona una funcionalidad profunda para aplicaciones empresariales y un comienzo fácil para desarrolladores de negocios. Los clientes de referencia elogian el producto en general, así como su relación calidad-precio y las características de la base de datos. Otros puntos fuertes incluyen el desarrollo de UX, gestión de contenido, gestión de cambio de aplicaciones, opciones de implementación, certificaciones de seguridad independientes y su modelo comercial.
  • Quick Base busca revolucionar el desarrollo empresarial. Quick Base es bien conocida entre los profesionales de AD&D de la empresa, aunque a menudo no están familiarizados con los últimos lanzamientos de la plataforma. Quick Base, el mayor proveedor por ingresos en esta evaluación, se estableció para muchos casos de uso empresarial, y promete grandes inversiones después de alcanzar una valoración superior a $ 1 mil millones. Quick Base tiene una excelente experiencia de inicio, así como un fuerte desarrollo de interfaz de usuario y diseño de base de datos y herramientas de desarrollo. La estrategia y la visión del proveedor son agresivas y bien investigadas, respaldadas por fuertes inversiones en su comunidad de clientes y materiales de aprendizaje. Los clientes de referencia informan que crean aplicaciones a una escala sin la que no pueden vivir y otorgan a Quick Base altas calificaciones por sus funciones de base de datos y seguridad, administración de aplicaciones y desarrollo de UX (User Experience).

Mi experiencia al respecto

Comencé a usar FileMaker Versión 1 en 1988, porque necesitaba desarrollar aplicaciones administrativas que operaran en los Macintosh (con diskettes). Esta versión ya incluía los 3 elementos para la generación que presenté en el párrafo “Cómo Funcionan”. Hoy ocupo la versión 18, y las diferencias son siderales, al punto que Forrester lo eligió la mejor plataforma Low-Code.

Mis últimos desarrollos son para el control del Pipeline de Ventas; en la práctica un CRM. Otra aplicación que hice es para procesar encuestas para evaluar los niveles de madurez de procesos de negocios y de la organización, un programa para generar una definición de un problema conforme a la metodología Problem Solving, y otro para controlar el avance de proyectos complejos usando la metodología PMI, con énfasis en el control de los entregables usando un tablero Kanban.

Por lo general para cada aplicación la primera versión la genero entre dos y cinco días, y de ahí esta va evolucionando conforme a las necesidades que se detectan mientras se ocupa. Para los casos que se necesiten codificaciones muy complejas, recurro a un programador profesional [5], pero el prototipo siempre es de mi autoría. Nótese que no escribo especificaciones funcionales, ya que las aplicaciones generadas se explican por sí mismas para quienes conocen la herramienta Low-Code utilizada.

Referencias

[1] https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming

[2] https://en.wikipedia.org/wiki/Low-code_development_platform

[3] https://www.claris.com/filemaker/

[4]https://www.forrester.com/report/The+Forrester+Wave+LowCode+Platforms+For+Business+Developers+Q2+2019/-/E-RES144411#figure2

[5] http://macpro.cl/MacPRO/Home.html

One response to “Programación Low-Code

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s