Evolución de aplicaciones GeneXus

Una tendencia que es clara desde hace unos cuantos años, es que los usuarios exigen cada vez mas, poder modificar / configurar / cambiar el funcionamiento del sistema, sin tener que recurrir a programación. 

Esto es una tendencia basada en que los ciclos de programación / instalación por mas que se han acelerado, no alcanzan en rapidez a la velocidad que exigen los negocios actuales. 

El conjunto de cambios en un sistema es un conjunto difícil de limitar o describir y en todas las épocas existieron y existirán cambios que necesiten cambios en programación, otros que exigen cambio de configuración o en instalación y otros que pueden hacerse en momento de ejecución. 

La tendencia que veo, es que antes era mucho mayor el porcentaje de cosas que se resolvía programando o cambiando el código del sistema y los clientes ahora piden que se pueda hacer 

Cambios en Design Time. 

Hace varios años, para hacer un cambio en el funcionamiento de un sistema, por mas chico que fuera, se necesitaba hacer cambios en la programación y se compilaban, testeaban e instalaban esos programas. 

Esto hacía que desde que el usuario pedía un cambio, hasta que lograba verlo podia pasar mucho tiempo (viéndolo con ojos actuales). 

Cambios en Deploy Time

El tiempo fue pasando y los usuarios fueron siendo cada vez mas exigentes y piden poder configurar el sistema de tal forma que puedan cambiar elegir que componentes van a usar de un determinado sistema. 
Por ejemplo, poder cambiar el proveedor de mapas o el proveedor de pagos electronicos, etc. 
Tambien se pueden instalar o no diferentes modulos del sistema. 

Cambios en Run Time

Cada vez se ve mas que se necesita cambiar la operativa, sin la intervencion del personal de IT. Los mismos usuarios de negocio son los que quieren poder cambiar la forma en que se hacen los tramites, quien puede hacerlo, que  debe aparecer en los listados, etc. 

Esto nos ha traído herramientas como

  • Selector de columnas en Grillas (WW+ lo tiene)
  • Selector de colores / dark mode en runtime
  • Selector de idioma en que quiero que se muestre la aplicacion
  • Selector de tamaños de pantallas en la cual quiero trabajar. 
  • Editar quien puede o no puede ejecutar diferentes programas
  • Formularios dinámicos
  • GXFlow - para el manejo de flujo de trabajo
  • GXQuery / Editor de reportes - para reportes modificables por el usuario
y la lista sigue. 

Cosas que aun son difíciles de cambiar en runtime. 

Algunas tareas aun siguen necesitando programación y programadores para poder cambiarse en momento de ejecución. Algunos ejemplos son:

Consumir servicios de terceros. 
Si bien se ha avanzado basante, aun se necesita programacion para invocar y procesar los diferentes servicios que son brindados por otras aplicaciones. 

Exponer servicios. 
Permitir que terceros invoquen a servicios que brinden informacion de nuestro sistema, aun necesita programadores para hacerlo. Esto se puede hacer en forma dinámica, pero aun no conozco implementaciones que no necesiten codigo. 

Almacenamiento de datos variables en base de datos. 
Hoy es posible el almacenamiento de datos ingresados en formularios dinámicos, pero estan restringido al uso de aplicaciones poco exigentes pues la forma de almacenar los datos que se ingresan, no es optima para su procesamiento posterior. 

Modificaciones en la base de datos. 
Si hay que realizar un cambio de datos (agregar columnas, sacar columnas que no se usan mas, renombrar tablas, etc) aun exige cambios en la programación. 

Reglas de validación
Modificar reglas de validación de ingreso de datos, tanto de formularios, como de servicios, es algo que los usuarios quieren poder modificar sin intervención de programadores. 

Formules de cálculos de la aplicación
Muchas veces los usuarios nos piden cambios en la forma en que se realizan determinados cálculos dentro del sistema. Estaria bueno poder brindarle a los usuarios un editor donde ellos puedan modificar la forma en que dichos cálculos se realizan.

Se que muchos colegas se han enfrentado a este tipo de problemas y cada uno lo va resolviendo de la mejor manera posible.  Cada vez que veo que varios hacemos nos enfrentamos a problemas parecidos y encontramos soluciones, veo una gran oportunidad de mejora y automatización en el desarrollo. 

Si ésta tendencia continúa, GeneXus debería seguir evolucionando como ya lo ha hecho y podría colaborar en hacer mas fácil estas tareas en runtime de forma mas fácil para el desarrollador y para los usuarios.  Muchas de estas cosas no implican nuevos desarrollos, sino poder componer sistemas con soluciones de terceros que ya existen, como motores de reglas, base de datos no relacionales, etc.  

Da ls sensación que se necesita un Genexus (algunos componentes al menos)  mas cerca del runtime y no tan basado en la programación.  Si lo logra, va a tener una ventaja adicional sobre otras herramientas de desarrollo. 


Comentarios

  1. Muy interesante Artículo Enrique.

    La tarea es infinita...

    Gracias por compartir

    ResponderBorrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.