Cuando iniciamos un nuevo proyecto de tecnologías de la información todo nos puede parecer ser de color de rosa. La ejecución de una serie de “procesos” secuenciales, más o menos complejos, según las necesidades de cada proyecto, que inevitablemente nos deben llevar a la consecución con éxito de nuestros objetivos. Creemos que tenemos todo en cuenta a la hora de tomar los requerimientos de los clientes, que conocemos todas las facetas del negocio que vamos a modelar en una aplicación informática. Todo más o menos difícil de desarrollar, pero estamos seguros que lo podemos abordar. Algo así como, dicho en mi Catalunya, “bufar i fer ampolles”. Es decir, ¡está tirado! (aunque nunca he entendido que tiene de fácil soplar y hacer una botella de vidrio).
Genexus
Todo esto es lo que solemos pensar cuando empezamos a planificar un nuevo proyecto, o incluso ya en la fase de análisis. ¡Si es que uno no aprende y sigue tan ingenuo como siempre!. La verdad es mucho más oscura que eso. Siempre aparecen requisitos en medio del desarrollo que el cliente no ha tenido a bien exponerte porque son evidentes (para él claro). O las vicisitudes del negocio cambian en medio del desarrollo haciendo que partes del proyecto ya no se correspondan con la realidad actual. O incluso te das cuenta que la tecnología usada no soporta la implementación de ciertos procesos críticos en el negocio y es necesario pensar un atajo o work around para poder llevar a cabo la funcionalidad pactada. Por desgracia, hasta el proyecto más simple puede pecar de no modelar completamente un proyecto por falta de información o por no comprender los datos aportados por los clientes.
Por otro lado tenemos los típicos proyectos de mantenimiento de aplicativos ya existentes. Estos suelen consistir en una serie de tareas que incluyen entre otras: control de rendimiento, solución a fallos y desarrollos evolutivos del software original.
Por último tenemos los necesarios y temidos proyectos de migración. Es decir traspasar parte o toda la plataforma informática que da soporte al negocio a otra u otras tecnologías más nuevas.
En cualquiera de estos tipos de proyectos, si no tenemos un férreo control del software (metodologías, buenas prácticas, etc) como una buena documentación, un cambio en estos aplicativos puede suponer un drama. Algo así como verte obligado a abrir la puerta del sótano de una casa de película de terror con la luz cortada. ¡Todo el mundo sabe que el monstruo está ahí y te la va a liar!
Pues bien, Genexus viene a ser el salvador contra todos estos miedos. Un entorno en el que podemos cumplir con todas las fases de desarrollo de un proyecto informático. Desde la toma de requerimientos a la puesta en marcha del producto final, pasando por las fases de análisis, desarrollo, testeo/prototipado. La propuesta básica de GeneXus es “automatización” , “multiplataforma” y “desarrollo basado en conocimientos”. Y a eso podemos añadir unas cuantas características más.
Automatización
GeneXus pretende ser un sistema que permite automatizar casi todo lo que es el desarrollo de una aplicación informática. Permite generar y mantener automáticamente tanto la base de datos como los programas de la aplicación, así como la documentación de ésta. Ésto es posible puesto que se realiza una programación declarativa usando una serie de “objetos” predefinidos por GeneXus que permiten cubrir todas las necesidades de un sistema informático. La colección de objetos incluye:
- Transactions: es el elemento esencial en la visualización y captura de datos. Representa una pantalla de usuario y contiene datos, reglas de negocio y formato de visualización.
- Reports: se trata de una representación de los datos de la base de datos en forma de listas, ya sean simples o complejas.
- Procedures: es parecido a los Reports, pero pudiendo modificar los datos en la base de datos. Se suelen usar en procesos de actualización por lotes y en subrutinas de uso general.
- Work panels: son las pantallas con consultas interactivas a la base de datos. Por ejemplo, en un work panel vemos los juegos que tenemos registrados dentro de nuestra cuenta de Xbox Live, o los libros que un usuario ha pedido en préstamo en una biblioteca entre unas fechas dadas.
- Web panels: lo mismo que los work panels pero en entorno web.
- Data views: es la correspondencia entre tablas preexistentes de una base de datos y las tablas de GeneXus.
Desarrollando con estos objetos de manera declarativa, GeneXus es capaz de generar tanto la base de datos como el código fuente de los programas.
Multiplataforma
Puesto que en GeneXus no se trabaja con ninguna tecnología subyacente, todo lo desarrollado se puede “exportar” automáticamente a cualquier tipo de tecnología (de las soportadas por GeneXus, que cada vez son más). Es decir, podemos crear una base de datos para MySQL o para Oracle (u otro SGBD) de manera automática a partir de los mismos objetos. También podemos generar un código para Java o .NET (o cualquier otro lenguaje de programación) según nos convenga. Esto hace que el desarrollo que hemos hecho con GeneXus sirva para muchas plataformas y tecnologías diferentes. Esto implica una gran ventaja en el momento de hacer migraciones de software, puesto que el coste de esto sería ínfimo (cuando lo normal es que el coste de una migración sea escandaloso).
El placer de poder pasar de una aplicación implementada con AS/400 a una implementada con JAVA con “sólo apretar un botón” debe ser algo cercano al éxtasis divino. Está claro que siempre habrá que hacer algún retoque, recortar las puntas, pero nada que ver con eso megaproyectos que hacen que te salgan canas.
La “multiplataformidad” y la automatización aportadas por GeneXus también permite que nuestras aplicaciones puedan estar siempre “al día”. Podremos adaptarnos a las evoluciones tecnológicas de manera sencilla.
Desarrollo basado en conocimiento
Como ya hemos dicho antes, siempre es posible que el cliente haya tenido a bien no comentar algún requerimiento al considerarlo obvio, pero que para un encargado de desarrollo no lo es. Por lo tanto es posible que ese requerimiento no se llegue a plasmar en el modelo del software (al menos hasta que el cliente se de cuenta y ponga el grito en el cielo y nosotros nos caigan unas collejas inmerecidas). También es posible que no se recojan ciertos requerimientos, simplemente porque suele pasar que en una organización más o menos grande no haya nadie que pueda explicar todos los entresijos del negocio. Así que en realidad, un modelo de datos absolutamente fiable y objetivo de toda la organización no se conoce. Es aquí cuando entra en acción el desarrollo basado en los conocimientos y con metodología incremental.

La idea es simple: ¿quien va a usar la aplicación? Los usuarios finales. Éstos usan parte de los procesos de negocio a diario y son los que mejor conocen con lo que están trabajando. Es a ellos a quien hay que entrevistar, y de los que hay que obtener los conocimientos que harán que nuestra aplicación cumpla con los objetivos. El desarrollo de cada una de las partes usadas por los usuarios nos dará un aplicativo final que cumpla las expectativas, además de dividir los desarrollos en partes más pequeñas y muchas veces autocontenidas.
Los conocimientos adquiridos con estos desarrollos los podemos guardar en la base de conocimientos de nuestra empresa con tal de poder usarse posteriormente en otros proyectos. Genexus permite compartir estos conocimientos entre nuestros diferentes proyectos, o incluso los podemos compartir con otras compañías o vender licencias de estos conocimientos, provocando un negocio del conocimiento dentro de los usuarios de GeneXus.
GeneXus, con su metodología incremental, permite ir desarrollando partes del software (o vistas de usuario) y probarlas inmediatamente para verificar que cumplen con lo requerido y pulir posibles defectos. GeneXus suministra un sistema de prototipado que permite la ejecución en entorno de test la vista de usuario creada, de manera que si no estamos contentos con el resultado podemos volver a la fase de análisis de esta parte del software y cambiar lo que queramos sin afectar al resto de desarrollos del proyecto. Esto hace que los conocimientos adquiridos sean más sólidos y la base de conocimientos sea más potente.
Además de los conocimientos que hemos aportado nosotros explícitamente a la base de conocimientos con nuestros desarrollos, la base de conocimientos también contiene los que GeneXus a inferido a partir de los que hemos aportado. Estos se generan gracias a una serie de procesos de inteligencia artificial de GeneXus.
Hay que decir que los urugayos Artech han desarrollado un producto muy interesante, el cual ya está muy consolidado, que ayuda tanto a departamentos de informática de grandes empresas como a factorías de software a dejar un poco de lado problemas intrínsecos de las tecnologías usadas en desarrollo de aplicaciones, posibilitando que la mayoría de los esfuerzos se enfoquen en el proceso creativo del desarrollo de software en sí, así como centrar esfuerzos en pensar los mejores procesos que harán que el negocio subyacente funcione de manera óptima.















AplicacionesEmpresariales.com
VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]