GeneXus, aplicaciones complejas y futuro


La sensaciones que tengo para los próximos años:

  • Se necesitarán mas aplicaciones
  • Los problemas que resuelven estas aplicaciones son cada vez mas complejos, lo que necesitan aplicaciones sofisticadas. 
  • Hay escasez de gente con capacidad para hacer estas aplicaciones
  • Las aplicaciones ya dejaron de tener escala humana (no hay una persona que entienda toda la aplicación) y ya están dejando de tener escala empresa (las futuras aplicaciones seran desarrolladas por muchas empresas). 

Tomando esas sensaciones como hipótesis de trabajo, veo a la comunidad GeneXus bastante bien posicionada, pues tenemos herramientas como para hacer las aplicaciones que se necesiten. 

También veo que no tenemos la escalabilidad suficiente para captar una parte importante de los proyectos que se presentarán en el futuro.  Sabemos resolver problemas a escalas pequeñas, pero nos cuesta reproducir estas experiencias. 

Siento como que somos Tesla, pero sin las Gigafactory, con un producto que le puede gustar a mucha gente y resuelve un problema que tienen, pero que esta a nivel de prototipo funcional  y no se fabrica en forma masiva.

Deberíamos lograr eliminar fricciones en el proceso de desarrollo, para que sea mas escalable. 

Algunos ejemplos:

Manejo de instalaciones GeneXus. 

Hay que mejorar mucho la forma en que se arman, mantienen y actualizan las instalaciones GeneXus en las maquinas de los desarrolladores. 

Se debe contemplar tener varias versiones instaladas, automatizar las actualizaciones de UC, Extensiones, Patterns, etc. 

Si se quiere llegar a grandes corporaciones, hay que aprender a trabajar atras de proxys y documentar el proceso.  Hoy todo esto es penoso. Espero que mejore cuando tengamos una version WEB o centralizada.  

Ejemplos disponibles

Toda funcionalidad tiene que tener un ejemplo. Los jóvenes no leen como lo hacemos los viejos y aprenden viendo ejemplos. Se ha mejorado muchísimo en el tema de generar videos explicativos, pero se necesitan más ejemplos de codigo funcionando. 
Yo armaria un sistema de puntos, recompensas, cocardas o como lo quieran llamar, para quienes brinden buenos ejemplos en la comunidad.

Un caso practico  
Necesito probar Kafka y no encuentro ningún ejemplo en la documentación. Hago un pedido en examples.genexus.com y explico mis necesidades. Quienes conocen del tema ponen ahi sus ejemplos y le doy puntos a los mejores ejemplos.  Al proximo que venga y necesite Kafka esto le puede servir. 

Promover el uso de nuevas versiones

Se necesita trabajar activamente en que se pasen a nuevas versiones de GeneXus. Solo asi van a poder hacer las aplicaciones que se necesitan ahora. 
Para esto, hay que automatizar y mejorar la detección de diferencias, entre la aplicación vieja y la aplicación de la nueva version. Si bien hay conocimiento de como hacerlo, el mismo esta muy mal distribuido y el proceso no es escalable. 

Cada upgrade debe salir con un analizador de kb que ayude a detectar que objetos pueden tener problemas (navegaciones, diferencias en API de la KB, cambios de comportamiento, cambios de seguridad, incompatibilidad, nuevas bibliotecas, etc). 

Soporte. 

Aplicaciones de misión critica, necesitan soporte extendido y esto sale caro. Creo que la forma de dar soporte debería ser repensada, pues hoy tanto el reporte de problemas como sus soluciones demoran mas de lo necesario. No todos los problemas tienen la misma gravedad. Tal vez tengamos que llegar a un modelo en el que se pague mas para corregir un problema mas rapido.

Tener una migracion de version trancada porque necesito determinada corrección, puede salir mucho mas caro que pagar para que lo arreglen mas rapido. 

GeneXus Way. 

En forma general, siempre hay una forma recomendada de utilizar una herramienta. Con GeneXus pasa eso y hay una forma de hacer las cosas de forma optima.  La "Forma GeneXus" de hacer las cosas esta optimizada para el desarrollador individual, o para organizaciones pequeñas. Cuando llegamos a organizaciones grandes, hay muchas cosas que hay que adaptarlas, pues no son aceptadas. Algunos ejemplos:

  • No se puede ejecutar como administrador del equipo
  • La reorganización se hace solo con scripts SQL
  • La carga de metadatos de GAM / WorkFlow se puede hacer solo con scripts SQL
  • Todo debe funcionar atrás de un proxy
y un conjunto de etc.

Para casi todo hay soluciones, pero llevan un trabajo manual adicional, que diluyen las ventajas de usar una herramienta como GeneXus. Esta muy bien tener una forma óptima de hacer las cosas, pero hay que pensar en alternativas que dejen contentos a los especialistas de las grandes empresas para que acepten de mejor grado las aplicaciones GeneXus. 

LowCode

Hoy GeneXus cae dentro de la categoría de "Herramientas LowCode". Esto tiene cosas buenas, y cosas malas. A mi me importa poco si el código es mucho o poco, sino que me preocupa mucho mas que el código se entienda y funcione bien. Valoro mucho mas la velocidad de maniobras para realizar cambios que todo lo demás.  Que GeneXus este en la categoría LowCode hace que mas gente lo encuentre y lo pruebe. Para aplicaciones sencillas, eso esta muy bien, pero para lograr cosas un poco mas sofisticadas, no alcanza. He visto a muchos principiantes en el uso de GeneXus que encuentran escollos que no saben resolver con la herramienta y la abandonan, cuando son cosas que se pueden programar con Genexus sin problemas. 

LowCode va camino a convertirse en una nueva mala palabra (**) en la industria. Es como que va quedando para las aplicaciones sencillas y de juguete y el HighCode queda para las aplicaciones serias. 

Conclusión

Tenemos oportunidades enormes para los próximos años y esta en nuestras manos ver si logramos aprovecharlas. Para mi la principal limitación, es que hoy no somos todo lo escalable que deberíamos ser para hacer las aplicaciones que se necesitan. 

** Mis predicciones en este tipo de cosas, siempre son muy malas, asi que mejor no me den bola. 

Comentarios

  1. Buen artículo Enrique, gracias por compartir tus sensaciones/pensamientos/reflexiones.

    ResponderBorrar
    Respuestas
    1. Me alegro que te guste.
      Yo lo escribo, para poder sacarmelo de la cabeza y empezar a pensar en otro tema.
      Una vez que me enrosco con algun tema de este tipo, hasta que no lo escribo y lo comparto (en el blog o por mail o lo hablo con alguien) me cuesta mucho pasar a otro tema distinto, pues tengo todos los casilleros de la memoria ocupados.

      Borrar
  2. Bienvenido ese dump Enrique!
    A mi me suma y me gusta leerlo.
    Ojala la comunidad GeneXus pueda aprovechar la oportunidad!

    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

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

Aplicación monolítica o distribuida?

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