Ir al contenido principal

Poniendo anclajes

Hace muchos años empecé en esta profesión del Desarrollo de Software.

¿Por qué lo hice?

Creo que un conjunto de casualidades iluminaron mi camino, algún día tal vez las compartiré. 

Pero hoy quiero compartir qué significa para un Desarrollador de Software liberar un producto.  


Yendo algunos años hacia atrás, si bien el desarrollo de software era atractivo, recuerdo el tedio de las hojas de 80x25 donde escribía los programas, luego “corridas de escritorio” (ver que estuvieran correctos), luego digitar el código en costosos computadores, compilar, esperar, esperar...tener algún resultado, volver al papel y así sucesivamente.

En resumen, un proceso largo y aburrido que entendía como parte de mi formación. Pero algo faltaba.

Todo avanzó, empecé a utilizar PCs, pasé a Pascal, todo más ágil, más tangible. Luego Clipper, luego Dbase III Plus y ya ni siquiera precisaba un compilador, era escribir código, ejecutar, corregir, mejorar, todo sustancialmente más ágil. Pero algo faltaba

Otra de esas casualidades me llevaron a encontrarme con GeneXus. 

Era una versión muy incipiente, pero allí había algo diferente y se notaba. Finalmente la máquina trabajaba para mí, por primera vez desarrollé soluciones con casi ningún conocimiento de la tecnología involucrada detrás. Así por ejemplo desarrollé mis primeras aplicaciones para AS/400 (luego iSeries), computador que no conocía para nada, solo un cable coaxial me unía a la magia que ocurría en una sala cerrada, de acceso controlado donde serios operadores manejaban el caldero.

Y me sentí cómodo y el "algo" que faltaba dejó de faltar. 

Había entendido que finalmente la computadora era una herramienta y yo el constructor. Con ella y mi capacidad cambiaba el mundo a mi alrededor. Había entendido que la herramienta está al servicio del constructor y no a la inversa. Había entendido que con esa herramienta, mi capacidad y mi voluntad de cambiar el mundo tenía una enorme oportunidad!

No era un “programador”, pensaba como tal, actuaba como tal, pero la programación era un medio para otro fin superior: mejorar la vida de las personas.

Toda herramienta que me ayudara a ese fin era bienvenida y había encontrado lo que parecía y luego fue, la mejor herramienta para hacerlo.

Pero el destino me siguió ayudando y tuve la oportunidad de ser parte del equipo que construía esa herramienta y no la rechacé. Hoy hace casi 30 años que no me dedico a programar, ni a cambiar el mundo. Me dedico, junto con tremendo equipo de profesionales, a construir una herramienta que ayuda a otros a hacer un mundo mejor. Confío que producir la mejor herramienta para hacerlo sea mi contribución a ese cambio.

Así pasaron los años y hoy, Octubre/2020, estamos liberando GeneXus 17.

¿Por qué es importante liberar una versión/producto?

Porque es marcar un hito, es pararse sobre el risco recién alcanzado, mirar atrás y ver cuánto hemos caminado. Ratificar que estamos avanzando en el camino correcto. Luego volver la vista al frente y mirar el próximo risco. 

Es ese momento mágico donde se respira profundo, se sonríe a la vida y se alza la vista hacia el próximo risco.

Es especialmente importante para GeneXus porque no es liberar una solución, es liberar una herramienta de construcción de soluciones, es el punto de apalancamiento para ayudar a otros a hacerlo mejor cada día. 

Es colocar el anclaje en la roca para que otros escaladores aseguren allí su cuerda y puedan subir seguros, firmes, confiados, ágiles y ayuden ellos a su vez a otros a hacerlo. 

Así se mejora el mundo: anclando clavos firmes donde otros se apoyarán.

Comentarios

  1. Genial!
    También soy un "dinosaurio" de la programación (empecé con COBOL en una máquina enorme y muuuuy lenta), donde, como bien decís, había que armarse de paciencia y revisar todo el código muy bien antes de compilar porque la demora era grande y si había un error..., uf!
    También hice un recorrido parecido: Clipper, VFP, VB, etc. hasta que en la empresa donde trabajaba me hicieron cargo de buscar alguna herramienta para mejorar los tiempos de desarrollo. Buscando, empezamos con un generador de COBOL que utilizamos un tiempo hasta que, encontré GeneXus!
    NUNCA MAS LO DEJE!
    De hecho, creo que nuestra región, fué una de las primeras en utilizarlo. Recuerdo que vino en 4 diskettes: 3 con el software y el cuarto la "llave".
    Ahora es una cotidianeidad en nuestra ciudad compartir tips y colaborar en la construccion de sistemas con GeneXus.

    ResponderBorrar
    Respuestas
    1. Gracias por el comentario Gabriel! Abrazo y a ver si no nos extinguimos como los dinosaurios, creo que con GeneXus muchos tenemos una oportunidad :)

      Borrar
  2. Me siento muy contemporáneo con tus historias Gustavo !!!
    Pero si luego de haber pasado por esas etapas prehistoricas tambien... en un momento tuve un proyecto nuevo y desafiante, y justo unos meses anteriores habia escuchado algo de "Genexus", me jugue fui a hablar a la oficina de 18 y Minas.
    Me hicieron la demo de armar una "factura" , y ahi comprendi que ese era el camino, a partir de ahí no pare mas de evolucionar junto con Genexus.
    Pero hoy puedo decir que: aun mantengo algún sistema que fue creado inicialmente en el año '93, con la tecnología del 2020.
    Esa "persistencia funcional" de los sistemas desarrollados es algo que NO se ve en otros lados.
    Felicitaciones por la versión Genexus 17

    ResponderBorrar
    Respuestas
    1. Gracias Esteban!! Por la confianza y por las felicitaciones.

      Borrar

Publicar un comentario

Entradas más populares de este blog

Abrir links con aplicaciones nativas y no el browser (deeplinking)

El problema que tengo con algunas aplicaciones Android/iOS es que cuando recibo un link por algún medio (mail, tweet, etc) al abrirlo me lo abre con el browser, en lugar de abrirlo con una aplicación nativa asociada a ese “contenido”. Por ejemplo, si recibo un link a un tweet espero que lo abra con alguna aplicación de twitter que tenga instalada y no con el browser. De modo análogo si recibo un mail con una nota de prensa de un medio X y tengo la aplicación de ese medio X instalada, espero que el link lo abra con la aplicación nativa y no con el browser. Lo mismo quisiera con mi aplicación de "banking" o cualquiera que tenga instalada y sepa manejar ese "contenido" (link). Los motivos son bastante obvios pero los resumo en: la experiencia de usuario es mucho mejor en la aplicación nativa que en el navegador. Parte importante del tema es que el mismo link sea válido tanto para ver el contenido en el browser como para verlo en la aplicación, porque como prove

¡A la salud de mi KB!

Es bueno, especialmente en "bases de conocimiento" (KB) que han pasado por varias versiones de Genexus, chequear su "estado de salud". En este sentido KBDoctor  es una herramienta que ayuda mucho, principalmente desde el punto de vista del "modelo" Genexus (atributos, calls, definiciones de variables, etc) representado en una KB. También es útil revisar la salud de los archivos que lo soportan. Hasta la 9.0 eran archivos C-tree (los famosos .DAT) que tenían indices (los famosos .IDX) y teníamos en "rebuild -y" que mejoraba esos archivos y sobre todo reconstruía los indices. A partir de la X las KBs se almacenan en MS SQL Server por lo cual la administración de la misma pasó de ser un "file server" a un "database server". En este sentido algo que me ha dado muy buenos resultados es el "CheckKnowledgeBase".

Rocha:Constantes tipo fecha

En la Rocha se soportan constantes del tipo fecha o fecha-hora con formato ANSI/ISO (AAAA-MM-DD HH:MM:SS).  Tecnicamente (Sintáxis): <date>::=    [0-9]{1,4}"/"[0-9]{1,2}"/"[0-9]{1,2} | [0-9]{1,4}"."[0-9]{1,2}"."[0-9]{1,2} | [0-9]{1,4}"-"[0-9]{1,2}"-"[0-9]{1,2} <hms>::=    [0-9]{1,2}[ap] | [0-9]{1,2}":"[0-9]{1,2}[ap]? | [0-9]{1,2}":"[0-9]{1,2}":"[0-9]{1,2}[ap]? <constant> ::=   "#"<date>"#" | "#"<date> <hms>"#" | "#"<hms>"#" Funcionalmente Se pueden utilizar esas constantes en las reglas, eventos, propiedades, etc (todo lugar donde se utilice el parser): Algunos ejemplos básicos: &FechaInicial=#2007-01-01# &FechaHoraInicial=#07-1-1 11:15a# &HoraInicial=#11a# Me parece bueno no tener que escribir funciones (CTOD, TTOC) sobre constantes tipo char para lograr una fecha y mucho mejor aun en