Modernización del Desarrollo RPG en PYMES: Estrategias Técnicas y Agilidad Organizativa
En un entorno empresarial cada vez más volátil y competitivo, las pequeñas y medianas empresas (PYMES) no pueden permitirse procesos rígidos ni estructuras que dificulten la adaptación. La mayoría de las pequeñas y medianas empresas tienen recursos limitados, equipos reducidos y una presión constante por adaptarse a los cambios del mercado. Aunque estos desafíos pueden parecer una desventaja, también ofrecen una oportunidad singular: la capacidad de moverse rápido.
A diferencia de las grandes corporaciones, donde la implantación de marcos ágiles suele implicar procesos complejos y una reestructuración considerable, en una PYME la agilidad puede integrarse de manera orgánica, evolutiva y muy cercana al día a día. La buena noticia es que no necesitas ser una multinacional para aplicar metodologías ágiles en una PYME. De hecho, muchas funcionalidades en los programas se repiten; hacer traza, mostrar Popups con mensajes, resolver parámetros, etc. Como resultado, las tareas se duplican, los errores se repiten y los plazos no se cumplen.
El Contexto del Desarrollo RPG en el AS/400
Por su condición de pionero en el ramo de la computación, el AS/400 está más que enraizado en las entidades financieras y hoy día tenemos muchas, muchísimas en excelente desempeño. IBM ha mantenido la estrategia de soportar hacia atrás todos los desarrollos cada vez que actualiza su tecnología y esto ha jugado varios papeles en la percepción de los interesados en su singular máquina. Por un lado, los programas han tenido el tiempo de madurarse y echar raíces sobre un Sistema Operativo que no falla (o lo hace muy poco).
Sin embargo, esto ha generado una cultura diferente a las más nuevas plataformas acerca de cómo programar. Los programadores prefieren un rápido Copiar + Pegar a innovar y prefieren los programas monolíticos a separar las capas, todo eso por sus propias y válidas razones. Las máquinas en producción (hardware y software) generalmente están en un punto de operación confiable, y nadie quiere jugar con eso, ni las personas de soporte, ni los gerentes de oficinas y sucursales.
Para plataformas más comerciales como Java y .NET, atraer adeptos no es tan complejo, ellos vienen solos, formados desde las universidades, donde sus maestros los adoctrinan en patrones, metodologías, especificaciones, etc. Allí hacen sus prácticas en estas herramientas y ven el AS/400 como un dinosaurio de raras formas y colores. Integrar las nuevas tecnologías con máquinas muy bien cimentadas y con programas muy maduros no es un retroceso, es un terreno lleno de sabiduría.
Adoptando un Nuevo Modelo Mental para la Programación RPG
Si no cambia de modelo mental y acepta que puede hacer las cosas simples, pero de otra manera, pues no lo intente; desperdiciaría su esfuerzo y seguramente el dinero de la compañía. Se necesita una mentalidad flexible, enfocada en resultados y con capacidad para aprender rápido de los errores.
Un paso fundamental es verificar las versiones de todo. De allí podremos saber si puedo codificar "free". La V7R1 permite la codificación free parcialmente, pero la V7R3 ya permite hacerlo al 100%. Tenga cuidado, una cosa es el compilador de RPG y otra el editor; ese no ha recibido actualizaciones y, por tanto, usted podría creer que suceden cosas incoherentes.
| Versión IBM i | Capacidad de Codificación Free en RPG |
|---|---|
| V7R1 | Parcialmente |
| V7R3 y posteriores | 100% (formato libre completo) |
Tabla 1: Capacidades de formato libre en RPG según la versión de IBM i.
Estrategias Clave para la Modernización Técnica en RPG
El primer paso consiste en comprender que la agilidad no es sinónimo de rapidez, sino de capacidad de adaptación. Voy a describir el "cómo" del cambio en el proceso de modernización de las técnicas para programar sin sacrificar la confianza en los programas existentes en producción y sin amenazar la operación de las compañías.
1. Diseño y Estructuración de Programas
Diseñe sus programas. Esto es diferente al diseño de la aplicación y arquitectura. Cada programa tiene sus necesidades, cada archivo fuente es diferente al otro, defina su estilo, el que lo haga sentir cómodo y a su compañía, pero no se siente a escribir código si no sabe qué va a escribir. No improvise, use patrones de programación propios o de terceros. Para muchos programadores RPG es más simple controlar un programa en un solo Member "Todo está allí adentro", ya que cuando un proyecto tiene muchos archivos fuentes empieza a ser difícil de controlar durante el proceso de codificación y la compilación, pero... ¿y el mantenimiento? Miles de líneas de código repitiendo patrones una y otra vez.
Use includes. Las estructuras de datos que necesite en la aplicación, si lo explico bien, verá que son muchas. Los prototipos son las firmas de los métodos o los programas o servicios encadenados en su(s) programa(s). Debemos pensar en estructuras de datos en casi todos los casos; esto significa que el formato de intercambio de información entre programas, procedures, etc., puede y debe ser definido con DSs.
Imagen 1: Modularización del código RPG a través de includes y prototipos.
2. Separación de Capas: Interfaz, Lógica y Persistencia
Interfaz, lógica y persistencia, claramente esto no es nuevo, solo es que en RPG no se aplica fácilmente, pero se puede y se debe hacer. Muchos seguramente han notado que se parece mucho a MVC, un patrón muy conocido y aplicado en otras plataformas.
- Interfaz: Es gráfica, texto o carácter o fachadas de servicios, uso de colas de mensajería. Todo un tratado aparte, pero siempre será su interfaz o interfaces (un programa puede tener más de una). Hablemos primero de la más conocida y arraigada "Las pantallas verdes”. Defina las DS de su CUI independientes de las DS de Persistencia; se deberían parecer, pero serán más grandes las de CUI. No las haga casar a las malas, la CUI es intuitiva para el usuario, los datos deben serlo para el motor y la gente de sistemas.
- Persistencia: Especialice members en el acceso a los datos, use SQL (Embebido o Dinámico), no use los archivos como archivos, ni físicos ni lógicos, eso no es necesario, déjese llevar por la magia del SQL. Defina los procedures para lograr el insert, update, delete, pero sobre todo las consultas; tenga presente los posibles parámetros necesarios, la cantidad de registros que podría manejar a la vez, marcas de registros, llaves, etc. SQL en el DB2 funciona muy bien y es completo. Las hojas I y O no son ya de nuestro interés primario. Si el programa es nuevo, simplemente olvídelas. Familiarícese con el DB2, este tiene un inmenso potencial, pero debe acercársele, hay muchas cosas que el motor puede hacer por nosotros. En lo posible haga un buen modelo de datos, moderno, salga del mundo de los archivos físicos y lógicos, pero si ya tenía tablas (o archivos) en uso no es necesario que los cambie.
- Lógica: Es todo lo demás; si no es interfaces ni es persistencia es lógica, pero aplica igual. Diseñe sus members pensando en encapsulación de datos, diseñe los procedures que son internos y que son exportables. Las firmas de los procedures y el retorno de estos son cruciales.
Imagen 2: Arquitectura de capas en el desarrollo RPG.
3. Microservicios y Frameworks
Haga Micro Servicios. Los SRVPGM son (por hacer una analogía) algo parecido a las DLLs de Windows, pero evidentemente tienen un mayor potencial. Elabore un FrameWork. Es claro que muchas funcionalidades en los programas se repiten.
Herramientas y Entornos de Desarrollo
Use Rational Developer: Es un mundo de opciones. Es una recomendación, no es definitivo; pero si decide programar con PDM debe saber que no se puede 100% free, tenga la versión que tenga. No se preocupe se puede lograr y muy bien también así. Los IDEs modernos colaboran permanentemente al programador para llevarlo por la senda del bien, pero los editores de pantalla verde no lo hacen. ¿Ha pensado cuánto tiempo invierte en reprocesos por errores inyectados que pudieron evitarse?
Integrando Metodologías Ágiles en la PYME
Las metodologías ágiles no son una moda ni una técnica reservada para empresas tecnológicas. Son una forma de trabajar que pone el foco en lo importante: entregar valor, adaptarse rápido a los cambios y mejorar continuamente. El gran cambio empieza aquí. En una PYME, estamos acostumbrados a jefes que deciden todo, procesos heredados y resistencia al cambio. Se trata de empoderar a las personas adecuadas para que tomen decisiones rápidas. De pasar del «siempre se ha hecho así» al «probemos esto nuevo».
1. Liderazgo y Cultura Ágil
La cultura organizativa es, probablemente, el factor más determinante para el éxito. Adoptar metodologías ágiles en una PYME implica fomentar una mentalidad basada en la transparencia, la colaboración y el aprendizaje iterativo. Esto requiere desmontar algunas creencias arraigadas, como la idea de que compartir problemas es un signo de debilidad o que cambiar de rumbo es sinónimo de falta de planificación. La agilidad invita a las empresas a experimentar, evaluar y ajustar, lo que supone aceptar que equivocarse es parte del proceso.
El liderazgo juega un papel determinante en esta transformación. En las PYMES, el gerente o el propietario suele estar muy implicado en las operaciones diarias, lo que hace indispensable que comprenda la importancia de delegar, facilitar y eliminar obstáculos para que el equipo pueda trabajar de forma autónoma. Los líderes son fundamentales en la transición a metodologías ágiles, ya que deben actuar como facilitadores y guiar al equipo en el proceso de cambio.
2. Prácticas Ágiles Operativas
- Reuniones Breves y Estructuradas: La introducción de reuniones breves y estructuradas es uno de los elementos que más impacto genera en las PYMES. Reuniones diarias de coordinación -de apenas diez minutos- o revisiones semanales bien dirigidas permiten al equipo mantener el foco y anticiparse a bloqueos. Es fundamental que estas reuniones sean concretas, con un propósito claro y sin convertirlas en un espacio de control o auditoría.
- Gestión de Prioridad: Otro pilar esencial es la gestión de la prioridad. En muchas PYMES se trabaja bajo la presión constante de lo urgente, lo que conduce a interrupciones continuas y a la sensación de que nunca se avanza en lo importante. La agilidad propone una disciplina clara: definir qué tareas aportan más valor y trabajar en ellas sin dispersión.
- Medición del Impacto: La medición es otro aspecto clave. La agilidad no persigue únicamente producir más, sino producir mejor. Para una PYME, esto implica establecer indicadores sencillos que permitan evaluar la eficiencia y la calidad del trabajo. No se trata de generar informes exhaustivos, sino de monitorizar datos concretos, como el tiempo de entrega, la carga de trabajo por persona o el número de incidencias. Para medir el éxito de la implementación de metodologías ágiles, es fundamental establecer métricas claras desde el inicio.
METODOLOGÍA KANBAN - Las mejores 7 aplicaciones para llevar tus tareas usando la metodología Kanban
Imagen 3: Tablero Kanban para una gestión ágil y visual de proyectos.
3. Elección y Uso de Herramientas Ágiles
La que yo uso se llama activecollab, es súper completa y tiene una versión que te puedes instalar en tu servidor y no tienes que pagar ni por usuario ni por nada. Solo la compras y cada dos años pagas una pequeña cuota y te la actualizan. Miro: colaboración visual en remoto. Google Workspace: documentos colaborativos, hojas de seguimiento, formularios internos. Lo esencial es que las herramientas no se conviertan en una barrera, sino en un apoyo.
Un tablero Kanban en la pared o en Trello puede ser el primer paso hacia la agilidad. No hace falta implantar un sistema completo desde el día uno. Como te he dicho, no quieras empezar de golpe y aplicar agile de la noche a la mañana. Lo primero que vas a provocar es un choque cultural en una organización que no está acostumbrada a ello. A lo mejor, lo mejor, y valga la redundancia, es empezar con papel y boli y anotar cada día lo que voy a hacer y comprobar si lo he hecho al día siguiente.
4. Proceso de Implementación
La implantación de metodologías ágiles debe concebirse como un recorrido progresivo. La agilidad no se adopta de un día para otro; es un cambio en la forma de pensar y trabajar. Las PYMES que lo entienden así avanzan con mayor sostenibilidad: prueban, ajustan, eliminan lo que no funciona y mantienen lo que aporta valor.
- Define tu problema: No empieces por la metodología. El primer paso para adoptar metodologías ágiles en una PYME es realizar un diagnóstico de la situación actual del equipo y los procesos.
- Forma a tu equipo: Explica qué es agile, dónde se aplica y por qué lo vais a probar.
- Elige un marco sencillo: Scrum funciona genial si tienes proyectos definidos con fechas de entrega. Kanban es perfecto para tareas diarias y flujos continuos. Y Lean es una filosofía excelente para eliminar desperdicio y centrarte en lo que realmente aporta valor.
- Itera rápido: Evalúa lo que funciona y lo que no.
- Celebra los pequeños logros: Agile no da resultados milagrosos en dos semanas.
