KB Grandes

En el XIX Encuentro Genexus, se realizó una charla sobre KB Grandes.

Me gusta mucho ver como evolucionan estas reuniones y como cambian las necesidades de las empresas.
El año pasado había muchos muy preocupados por la performance de como manejar KB grandes, y en esta oportunidad los planteos fueron bastante diferentes.

** La lista es totalmente interesada e influenciada por mis necesidades.

Navegar KB.
Se plantearon las necesidades de poder recorrer una KB de gran tamaño y poder entender que es lo que hace.

Es muy importante poder contar con conocimiento acumulado en KBs. Es indispensable para poder tener aplicaciones del tamaño y complejidad que grandes organizaciones necesitan.
Tambien es indispensable, que las personas que deben mantener dichas aplicaciones, puedan entenderlo. Con KB de mas de 2000 objetos, entender como funcionan las mismas muchas veces no es trivial. Si se tiene mas de 10.000 objetos la tarea ya deja de tener dimension humana.

Durante el Encuentro se anuncio que Artech va a implementar la posibilidad de Modularizar las KBs, en conjunto mas pequeños de objetos. Esto puede facilitar mucho la comprensión de las KB y en forma colateral, va a tener varias ventajas colaterales (deployment, control de cambios, menos errores).

Impacto de los Cambios.
En KB grandes, es difícil predecir que consecuencias va a tener un cambio.
Por ejemplo, en Genexus al cambiar un dominio, el mismo afecta a los atributos de la base, lo que reorganiza las tablas y también puede afectar a los SDT que se basan en ese dominio, o en los atributos cambiados y también en todos los objetos que usan atributos de ese domino, o que definen variables que se basan en ese dominio. Si bien es maravilloso que al cambiar un objeto, se realicen en forma automática todos los cambios necesarios, es deseable poder medir dicho cambio, antes que se realice, para medir las horas que nos llevará y poder saber cuantas cosas tendremos que testear.

Varias empresas contaron que han desarrollado herramientas externas a Genexus para poder ver impacto de los cambios.
Otros comentaron que impiden algunos cambios, para limitar el impacto en el sistema, lo cual agrega estabilidad a las aplicaciones, pero también es peligroso pues puede llegar a anquilosar la aplicación.

Deployment.
Las aplicaciones de grandes organizaciones, pocas veces tienen instalaciones sencillas. Generalmente hay que instalar la aplicación en múltiples servidores: WEB, de procesos/batch, con diferentes criterios de seguridad.
También es común tener mas de un generador para atacar diferentes partes de la aplicación.
Se comentó que varias empresas habían desarrollado herramientas de uso propio para ayudar con esta tarea.
Algunas empresas se quejaron de la demora de la generación de WAR (especifico de java).

Parece una buena oportunidad para alguien que quiera hacer un GXInstaller, que permita interpretar una KB y reciba la metadata de instalación (que diga que modulo se instala en que lugares) y genere los instaladores necesarios. No es facil por la gran variedad de cosas que hay que tener en cuenta, pero justamente ahi esta la oportunidad de lucirse.

Auditoria de Proceso de Desarrollo.
Se nombró la necesidad de tener el proceso de desarrollo la posibilidad de ser auditado en forma externa. Se deben dejar evidencia de lo que se programa y poder decir que/quien/cuando/porque cambian las cosas.

Buenas practicas.
Representantes del exterior, plantearon que dentro de sus clientes, veían grupos de desarrollo que desarrollaban con Genexus aplicaciones grandes, sin demasiada metodología. Se pedía la publicación de buenas prácticas de desarrollo y administración de grupos de desarrollo.
Se valoró como muy positivo la iniciativa de Genexus Consulting de contar la forma en que ellos llevan adelante proyectos, en charlas en el Encuentro.

Herramientas de refactoring.
Algunos plantearon que con algunos cambios, habían logrado bajar la cantidad de objetos.
Se necesitarían herramientas para borrar objetos y también para no crear objetos que hacen cosas similares.

Temas que no se trataron, pero podrían haberse tratado:
* Manejo de seguridad
* Monitoreo de aplicaciones
* Control de acceso a la KB
* Reorganizaciones (como convencer DBAs)

Agradezco a los que participaron y aportaron buenas ideas. Hay que seguir haciendo estas reuniones para lograr establecer requerimientos claros y plantear los problemas en forma conjunta y clara, de forma que sea mas fáciles de resolver.

PD: Si bien la charla, era un "Café con proyectos grandes" no tuvimos cafe, por lo que algunos estuvimos mas dormidos de lo que nos hubiera gustado..
PD: La vista desde el piso 25 del Radisson, sobre la ciudad de Montevideo, es muy linda.

Comentarios

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.