Google
 

sábado, 27 de diciembre de 2008

Performance

En la mayoría de las empresas que vienen utilizando Genexus, lo tenían bien ponderado o por lo menos lo aceptaban como bueno a partir de la idea de un reorganizador de base de datos automático (aunque a veces ni tan automático).

Algunos de sus sistemas back-office y servicios en linea "críticos" lo tienen bajo la programación tradicional , y es aquí la mayor critica que va en aumento. Genexus no es útil para procesamiento con alto requerimiento de respuesta, en otras palabras, "alta performance".

Creo también que Genexus no esta concebido para administrar "conocimiento" de un proyecto "Grande" tirando a Gigante, mas bien esta orientado para administrar pequeños a medianos proyectos. En la practica no conozco a ningún "consultor Gx" que de con la receta mas acertada de como administrar una KB Grande/Gigante.


Resulta casi imposible trabajar con una KB con 1000 transacciones.  Agregar la transaccion 1001 o realizar un cambio a alguna transaccion agregando un atributo tarda mas de "20 minutos", ni hablar de las complicaciones si llegaste a aplicar Pattern, el concepto de "incremental" sencillamente no aplica.

Espero que la gente de Artech antes de estar preocupándose y ocupándose en demasía en estar en lo ultimo de la tecnología, también se ocupen de enseñar las mejores practicas y generar el mejor código para mejorar la performance. 

No estoy en contra de estar al vanguardia, pero siendo sincero, ¿como funcionaban nuestros negocios sin esas "nuevas tecnologías"?, ¿será que es lo más importante?, o lo mas importante es prestar nuestros servicios de procesamiento lo mas rápido posible, más que la competencia. 

Por ejemplo, ¿no tuvieron el problema de "timeout" de un webservices hecho en Genexus, y la regla del negocio indica que la respuesta debe darse antes de 40, 30, 20 o 10 segundos? ¿No tuvieron que "escribir código a mano" a esa parte de la solución ya que con Genexus dichos procesamientos no se llegan al tiempo requerido de respuesta? 

O en ves de webServices, procedimientos RPG, que por realizar la navegacion por extendida, hace que tarde mas y por ello se opte por programar a mano. 

Seguro que la gente de Artech lo sabe, y la historia que conozco de utilizar Genexus en una empresa es de la siguiente forma.

  • Sistema original (programas y archivos hechos a mano)
  • Compra de Genexus
  • Nuevos requerimientos hechos en Gx (abm con gx de las transacciones, algunos procedimientos, adaptacion del viejo sistema hecho a mano para lectura de los archivos hechos con GX)
  • Molificación de parámetros con Gx del viejo sistema utilizando DataView
  • Poco a poco se van reemplazando el sistema hecho a mano y se lleva a GX

Cuando la mayoría de los sistemas están en Genexus excepto los procesos "críticos", en el entorno de Desarrollo fluye el siguiente razonamiento:

  1. Gx. Útil para conocer rápidamente el negocio (visualmente) y brindar posibles soluciones
  2. Los sistemas hechos con Gx son lentos. Se entregan mas rápidos, pero el sistema entregado es lento.
  3. ¿Será conveniente reemplazar mi servicio de respuesta rápida con Gx.?  
  4. ¿Será conveniente irme a web, mis entradas diarias aumentaran en comparación con los servicios win que hoy ofrezco?
Gente de Artech, por favor denme una luz, quizás tendrán que rever el concepto del cual se creo Genexus Knowledge-based Development - Philosophy and Theoretical Foundation of GeneXus y agregarle una palabra más, "Performance".