Herramientas IDz: su impacto en la modernización del mainframe
En el contexto actual, donde la transformación digital y la modernización de aplicaciones son cruciales para lograr y mantener la competitividad empresarial, las herramientas IDz aportan un valor significativo a las organizaciones.
Especialmente, a las organizaciones que poseen sistemas mainframe y requieren integrar éstas infraestructuras con prácticas de desarrollo modernas, como DevOps y desarrollo ágil.
Las herramientas IDz permiten a los desarrolladores trabajar de manera más eficiente y colaborativa en el entorno z/OS, aportando mejor calidad y velocidad del desarrollo de aplicaciones mainframe.
Además, facilitan la integración con sistemas distribuidos y la adopción de nuevas tecnologías, lo que permite optimizar recursos y reducir el tiempo de entrega de nuevas funcionalidades al mercado.
En este artículo explicamos en qué consisten las herramientas IDz, cuáles son sus principales características, y por qué y cómo permiten modernizar el desarrollo dentro de un mainframe.
¿En qué consisten las herramientas IDz?
IDz constituye una interfaz basada en Eclipse, que ofrece un escritorio de trabajo moderno y visual para Mainframe Z.
Al mismo tiempo, posee funciones que permiten trabajar con un enfoque más intuitivo que ofrece:
- Detección automática de errores.
- Edición avanzada de código.
- Depuración interactiva de aplicaciones.
- Integración con sistemas de control de versiones.
- Capacidades de análisis estático y dinámico del código.
Además, aporta herramientas de colaboración y conectividad con otras plataformas de desarrollo, lo que mejora la integración en entornos de desarrollo ágil y DevOps.
En resumen, IBM Developer for z/OS® (IDz) es un conjunto de herramientas moderno y sólido para desarrollar y mantener aplicaciones de IBM z/OS, que brinda herramientas de desarrollo COBOL, PL/I, High Level Assembler, REXX, C/C++, JCL y Java, en una base Eclipse.
¿Cuáles son las principales características de las herramientas IDz?
IDz provee asistencia de código y contenido.
Sobre sus principales características, IBM destaca las siguientes:
1. Desarrollo moderno y simple de z/OS
Permite obtener funciones avanzadas para los editores de COBOL, PL/I, REXX y JCL, con navegación y asistencia de contenido mejoradas, comprobación y subrayado de sintaxis en tiempo real, hipervínculos para copybooks y JCL Procs, y compatibilidad con números de secuencia.
2. Depuración avanzada de aplicaciones z/OS compuestas
Aporta el componente de depuración estratégica de IBM, IBM z/OS Debugger para aplicaciones de depuración escritas en entornos COBOL, PL/I, C/C++ y Assembler de alto nivel, que se conectan a una variedad de entornos z/OS.
3. Herramientas avanzadas de análisis de calidad y estructura de aplicaciones
Ofrece un análisis estructural de aplicaciones. También la posibilidad de realizar el análisis y las métricas de código, para ayudar a entregar aplicaciones COBOL y PL/I que se ajusten a las pautas de programación internas.
4. Pruebas unitarias automatizadas y cobertura de código
Genera automáticamente pruebas de unidades con ZUnit para encontrar y solucionar problemas. Además, combina las pruebas de unidades con el análisis de cobertura de códigos para determinar las brechas en las pruebas de aplicaciones.
5. IBM Dependency Based Build (disponible en Enterprise Edition)
Permite estandarizar los procesos de DevOps en todas las plataformas con las herramientas de gestión de configuración de software e integración continua como Git y Jenkins.
Proporciona una capacidad de automatización basada en lenguaje de secuencia de comandos para crear aplicaciones z/OS tradicionales que se desarrollan en lenguajes de programación como COBOL y PL/I.
6. Control fuente, gestión del ciclo de vida e integración de diagnóstico de problemas
Brinda la posibilidad de adoptar prácticas de desarrollo modernas y paralelas, con integración incorporada con Git y IBM Engineering Workflow Management. Al igual que realizar integraciones con administradores de bibliotecas heredados como CA Endevor Software Change Manager.
7. Opciones de Microsoft VS Code o Red Hat CodeReady IDE (con Enterprise Edition)
Ofrece a los desarrolladores de z/OS la opción de elegir IBM Wazi Developer for VS Code™ o Wazi Developer for Workspaces como su entorno de desarrollo integrado.
8. Personalización y ampliación del entorno de desarrollo
Permite a los desarrolladores modificar las opciones para crear un espacio de trabajo personalizado.
El banco de trabajo proporciona API y herramientas documentadas que facilitan ampliar las capacidades listas para usar, en funciones exclusivas de una empresa.
9. Perspectiva de datos
Puede observarse en forma gráfica las tablas DB2, sus columnas, claves primarias y foráneas, índices y sus relaciones con otras tablas lo que permite comprender rápidamente el modelo de datos.
¿Por qué IDz permite modernizar el desarrollo dentro de un mainframe?
En la industria IT se suele decir que IDz es un framework de frontend, que permite modernizar el desarrollo dentro de un mainframe.
Si bien IDz no es un framework de frontend en el sentido tradicional que se asocia con el desarrollo web (como Angular, React, o Vue.js), sí proporciona una interfaz y herramientas que modernizan el desarrollo en el contexto de mainframes.
Algunas de las razones por las cuales afirmamos que IDz permite modernizar el desarrollo dentro de un mainframe, son las siguientes:
1. Interfaz Gráfica de Usuario (GUI). IDz proporciona una interfaz gráfica intuitiva y moderna que facilita el desarrollo y mantenimiento de aplicaciones en el mainframe. Esto contrasta con las interfaces de línea de comandos (CLI) tradicionales, que pueden ser menos accesibles y eficientes.
Además, la GUI incluye editores de código avanzados, herramientas de depuración visual y asistentes para la configuración y gestión de proyectos. De esta manera, mejora la productividad y experiencia del desarrollador.
2. Herramientas avanzadas de desarrollo. Posee un editor de código avanzado, con soporte para resaltado de sintaxis, autocompletado, refactorización, y análisis de código.
También cuenta con herramientas de depuración avanzadas que permiten a los desarrolladores identificar y solucionar errores de manera más eficiente, y les aporta capacidades para realizar pruebas unitarias e integradas.
3. Facilitación de la colaboración y control de versiones. Es compatible con herramientas de control de versiones como Git, permitiendo una gestión efectiva del código fuente y facilitando la colaboración entre equipos de desarrollo.
Además, provee flujos de trabajo modernos, con soporte para metodologías ágiles y prácticas DevOps, que promueven la entrega continua y la colaboración efectiva.
4. Automatización de tareas. IDz permite la automatización de tareas rutinarias y flujos de trabajo, reduciendo la carga manual y aumentando la eficiencia.
5. Estandarización de procesos. Proporciona herramientas para estandarizar los procesos de desarrollo y despliegue, asegurando consistencia y calidad en el software producido.
6. Modernización y refactorización del código. Posee herramientas que facilitan la modernización del código legacy, haciéndolo más mantenible y eficiente.
7. Integración con tecnologías modernas. Brinda soporte para la integración con nuevas tecnologías y arquitecturas, como servicios en la nube y microservicios, permitiendo una modernización más completa de las aplicaciones mainframe.
Incidencia de las herramientas IDz en el mercado IT
El nivel de penetración de IBM Developer for z Systems (IDz) en el mercado IT puede ser analizado desde varias perspectivas, para compensar la falta de cifras exactas que permitan cuantificarlo con precisión.
No obstante, si tomamos como referencia que el mundo mainframe está integrado por el 90% de las compañías Fortune 500, el 92% de los principales bancos, el 90% de las principales compañías de seguros y el 70% de los principales retailers, podemos deducir rápidamente un nivel de incidencia estimativo.
De hecho, IDz es muy popular en sectores que dependen en gran medida de sistemas mainframe, como el sector financiero y bancario, las organizaciones gubernamentales y las compañías de seguros.
Por ejemplo, el informe Mainframe 2020: A catalyst for transformation de MIT Technology Review Insights, muestra que el 88% de los bancos que integran el ranking World ‘s Top 50 Banks y 67% de las Fortune Top 100 Companies, usan estas infraestructuras tecnológicas.
Incluso, los mainframes manejan en la actualidad casi el 70% de las cargas de trabajo de TI de producción del mundo.
Otro de los parámetros a tener en cuenta es la base de clientes de IBM que poseen z Systems (mainframes), y que adoptaron IDz como parte de su conjunto de herramientas de desarrollo.
También hay que considerar que la competencia es limitada. Si bien existen otras herramientas de desarrollo para mainframes, IDz tiene una ventaja significativa al ser un producto IBM, perfectamente integrado con el ecosistema z Systems.
Por otra parte, está la necesidad de las organizaciones con sistemas legacy en mainframes que están buscando modernizar sus aplicaciones para aumentar la eficiencia y reducir costos. IDz ofrece soluciones que facilitan esta modernización, impulsando su adopción. En paralelo, al aumentar la adopción de prácticas DevOps en el desarrollo de software, herramientas como IDz, que soportan estas prácticas, experimentan un incremento en su uso.
En cuanto a las innovaciones de IDz para el futuro inmediato, Carina Hermida, Account Manager en IT Patagonia, describió en el Segundo Meetup de la Comunidad Mainframe de Argentina en IBM – Buenos Aires, los importantísimos avances en el mundo del desarrollo de aplicaciones, que IDZ introduce con su ambiente gráfico, permitiendo la incorporación de DevOps con ahorros significativos en el proceso de programación, debugging, testing y pasaje a producción.
¿Cuáles son las aplicaciones de las herramientas IDZ de IBM?
Las herramientas IBM Developer for z Systems (IDz) tienen una amplia gama de aplicaciones en el desarrollo y mantenimiento de software para entornos mainframe.
Entre ellas se encuentran:
Programación: IDz permite a los desarrolladores escribir, editar y gestionar código en lenguajes como COBOL, PL/I, Assembler, y Java, entre otros.
Refactorización: Facilita la reorganización y mejora del código existente para aumentar su legibilidad y eficiencia sin alterar su funcionalidad.
Depuración de código: Ofrece herramientas de depuración avanzadas para identificar y solucionar errores en el código, incluyendo la capacidad de realizar depuraciones a nivel de fuente y ensamblador.
Pruebas unitarias y de integración: Soporta la creación y ejecución de pruebas para asegurar que las distintas partes de la aplicación funcionan correctamente tanto de forma aislada como en conjunto.
Análisis de impacto: Permite a los desarrolladores entender cómo los cambios en el código pueden afectar otras partes del sistema, ayudando a mitigar riesgos y asegurar la estabilidad del software.
Navegación y exploración del código: Provee herramientas para navegar por el código fuente, identificar dependencias y comprender la estructura de las aplicaciones.
Control de versiones: Se integra con sistemas de control de versiones como Git, permitiendo un control efectivo del código fuente y facilitando la colaboración entre equipos de desarrollo.
Comparación y fusión de código: Aporta herramientas para comparar diferentes versiones del código y fusionar cambios, asegurando la integridad y coherencia del desarrollo.
Automatización de procesos: Facilita la integración de prácticas DevOps, permitiendo una entrega continua y una mayor agilidad en el desarrollo de software.
Pipeline de CI/CD: Brinda soporte para configurar pipelines de integración y entrega continua, mejorando la eficiencia y la velocidad del desarrollo.
Migración de aplicaciones: Cuenta con herramientas para la modernización y migración de aplicaciones legacy a nuevas plataformas o entornos, asegurando la continuidad del negocio y la actualización tecnológica.
Integración con servicios en la nube: Ofrece soporte para la integración con servicios en la nube, lo que facilita la adopción de arquitecturas híbridas y la modernización de la infraestructura.
Interfaz de usuario intuitiva: Entrega una interfaz moderna y fácil de usar que mejora la productividad del desarrollador en comparación con las interfaces de línea de comandos tradicionales.
Automatización de Tareas Repetitivas: Tiene herramientas para automatizar tareas repetitivas y procesos rutinarios, que permiten liberar tiempo para el trabajo creativo y de mayor valor.
¿Qué necesidades o puntos de dolor resuelven las herramientas IDz?
Uno de los principales desafíos a los que se enfrenta la industria IT es la tendencia que marca la disminución de talento disponible, en relación a los especialistas en mainframe y los desarrolladores Cobol, uno de los primeros lenguajes de programación ampliamente utilizados por estas infraestructuras.
Al trabajar con una interfaz intuitiva, común a otros lenguajes, IDz permite la minimización de las curvas de aprendizaje. Este factor facilita la atracción de nuevos talentos, al hacer más atractivo el desarrollo en Cobol.
Con una interfaz intuitiva, eficiente y colaborativa, las herramientas IDz reducen la complejidad en el desarrollo y mantenimiento de código legacy, facilitando su comprensión.
En paralelo, su interfaz gráfica y funcionalidades modernas (como el autocompletado y la refactorización) incrementan la eficiencia del desarrollo y mantenimiento de aplicaciones, y dan como resultado una mejora de la productividad.
Además, permite solucionar dificultades en la depuración y resolver errores de una manera más rápida y precisa. En particular, las capacidades de prueba automatizada ayudan a garantizar que los cambios en el código no introduzcan nuevos errores, mejorando la calidad del software.
La automatización de tareas y la estandarización de procesos reducen la posibilidad de errores humanos y mejoran la consistencia del desarrollo.
En cuanto a la reducción de ineficiencias, la compatibilidad con herramientas como Git, facilita la gestión de versiones y la colaboración entre equipos.
Mientras que la automatización de tareas rutinarias y flujos de trabajo reduce el tiempo y el esfuerzo manual requerido, y aumenta la eficiencia general.
En este punto, vale destacar que las prácticas de DevOps y la automatización reducen los tiempos de ciclo de desarrollo y despliegue, lo que permite a las organizaciones responder más rápidamente a las demandas del mercado.
Desde la perspectiva de los desafíos que se presentan en la implementación de prácticas DevOps, IDz facilita la implementación de pipelines de integración y entrega continua, promoviendo un desarrollo más ágil y una entrega de software más rápida y frecuente. Incluso, permite integrar y probar continuamente los cambios de código, mejorando la calidad y reduciendo el tiempo de entrega.
Respecto a los inconvenientes vinculados a la modernización y migración de aplicaciones, las herramientas de refactorización del código facilitan la actualización de aplicaciones legacy para que sean más sostenibles y fáciles de mantener.
Además, IDz soporta la integración con tecnologías modernas, como servicios en la nube y arquitecturas de microservicios.
Beneficios de un entorno de desarrollo modernizado con IDZ
Entre los beneficios que aportan los entornos de desarrollo modernizados con IDZ, se encuentran los siguientes:
- Interfaz de usuario intuitiva y fácil de usar.
- Herramientas de desarrollo avanzadas que agilizan el proceso de codificación y depuración.
- Control de versiones integrado y de revisión de código, lo que mejora la colaboración entre equipos de desarrollo.
- Integración con herramientas modernas, como CU/CD (Integración y Entrega Continua), GIT y Eclipse, facilitando el desarrollo y la implementación del software.
- Acceso directo a los recursos del mainframe, lo que simplifica el desarrollo y prueba de aplicaciones específicas para esta plataforma.
- Ejecución de pruebas unitarias en aplicaciones mainframe. Una característica que ayuda a garantizar la calidad del software y a identificar errores tempranos en el proceso de desarrollo
- Análisis estático y dinámico con características avanzadas, que colaboran en identificar problemas en el código antes de la implementación
- Herramientas de navegación y búsqueda avanzadas, que facilitan la comprensión y el mantenimiento del código.
Al proveer herramientas, features, vistas y perspectivas, que facilitan enormemente la construcción, mantenimiento, comprensión, ejecución y depuración de programas, IDz dinamiza la incorporación de talentos.
¿Cómo modernizar un entorno de desarrollo con IDZ?
La modernización de un entorno de desarrollo con IDZ permite mejorar la eficiencia y la calidad del software, además de reducir los costos.
Para lograr estos beneficios es importante:
- Realizar un análisis y evaluación exhaustiva del entorno actual de desarrollo, para identificar áreas de mejora y definir objetivos claros para la modernización.
- Implementar un nuevo modelo operativo de desarrollo que incluya la adopción del producto IDZ como herramienta principal.
- Diseñar y establecer un nuevo modelo de testing que se integre con el nuevo ambiente de desarrollo, para asegurar una mayor eficiencia y calidad en las pruebas realizadas.
- Proporcionar formación especializada sobre el uso eficiente y efectivo del producto IDZ a todo el equipo involucrado en el desarrollo.
- Elaborar un roadmap detallado que establezca los pasos a seguir en el mediano y largo plazo, considerando las metas de modernización y las necesidades futuras del entorno de desarrollo.
Cada uno de estos pasos, tienen alta relevancia e incidencia en el objetivo de alcanzar una modernización eficiente de un entorno de desarrollo con IDz.
Conclusión
La necesidad de modernizar las infraestructuras mainframe responde a la creciente demanda de agilidad, eficiencia y capacidad de respuesta en el entorno empresarial actual.
En este contexto, las organizaciones necesitan integrar sus sistemas legados con tecnologías emergentes y metodologías modernas, para mantenerse competitivas.
A través de nuestro Centro de excelencia en Mainframe lideramos proyectos de modernización del mainframe aprovechando de la mejor forma las ventajas de las herramientas y buenas prácticas modernas, como las herramientas IDz.
Como resultado, nuestros clientes optimizan sus procesos de desarrollo, reducen los costos y mejoran la calidad de su software, al tiempo que aprovechan las robustas capacidades de sus sistemas mainframe.
Aprovechamos las herramientas IDz para habilitar una transición más suave hacia la modernización del Mainframe, maximizando el valor de las inversiones existentes y acelerando la entrega de nuevas funcionalidades al mercado.