Krypton Solid

La última tecnología en raciones de 5 minutos

La programación de SAP ABAP debe llevarse a la era moderna

años recientes. Ha adoptado una sintaxis más funcional y concisa, poderosas adiciones a la abstracción de su base de datos y la introducción de nuevas capacidades para definir servicios web HTTP.

Una parte de ABAP que continúa a la zaga de los tiempos son sus herramientas de desarrollo. El flujo de trabajo básico que siguen todos los desarrolladores de ABAP no ha cambiado, mientras que el resto del mundo del desarrollo ha renovado y mejorado drásticamente el flujo de trabajo de desarrollo estándar. Este estancamiento plantea problemas reales para las organizaciones de desarrollo ABAP que desean seguir siendo competitivas.

Cómo funciona la programación SAPABAP

El desarrollo de ABAP ocurre en un sistema de desarrollo compartido. Los desarrolladores inician sesión en este sistema y realizan cambios en los objetos de desarrollo, como clases y módulos de funciones. Una vez que se realizan los cambios, se pueden guardar y activar. La única forma de probar un cambio es guardar y activar el objeto de desarrollo y ver qué sucede. Esto significa que cuando un desarrollador cambia un objeto, ese objeto cambia para todos los usuarios del sistema de desarrollo compartido (Figura 1).

Flujo de trabajo de desarrollo en un entorno ABAP.
Figura 1: Flujo de trabajo de desarrollo en un entorno ABAP. Los desarrolladores realizan cambios en serie.

El panorama del sistema SAP estándar consta del sistema de desarrollo mencionado anteriormente, un sistema de prueba y un sistema de producción. Una vez que se completan los cambios de desarrollo en el sistema de desarrollo, se mueven al sistema de prueba mediante un transporte. Un transporte es una instantánea de un momento determinado de un conjunto de objetos de desarrollo. Los cambios se prueban más a fondo en el sistema de prueba; no se realizan cambios en este sistema directamente. Si todo va bien, los mismos transportes se trasladan al sistema de producción.

Cómo funcionan otras plataformas de desarrollo

La mayoría de las otras plataformas adoptan un enfoque diferente para el trabajo de desarrollo. No existe un sistema central de desarrollo compartido. En su lugar, suele haber, pero no siempre, un sistema de control de versiones distribuido compartido (VCS) como Git que se utiliza para almacenar el código fuente y los archivos de configuración que definen la aplicación y la configuración del entorno requerida para la aplicación.

Cuando un desarrollador desea cambiar algo en una aplicación, el desarrollador verificará una copia del código fuente y la configuración, creará automáticamente una versión local completa de la plataforma en la que se ejecuta la aplicación, ejecutará la aplicación localmente y realizará y probará los cambios localmente.

Otros desarrolladores no se ven afectados por los cambios que realiza este desarrollador hasta que envía los cambios al VCS central. Incluso entonces, otros desarrolladores pueden elegir exactamente qué cambios quieren aplicar a sus versiones locales de la aplicación, o incluso mantener varias versiones locales diferentes de la aplicación con diferentes conjuntos de cambios aplicados (Figura 2).

En un flujo de trabajo de desarrollo estándar basado en un VCS, los desarrolladores pueden trabajar en paralelo.
Figura 2: En un flujo de trabajo de desarrollo estándar basado en un VCS, los desarrolladores pueden trabajar en paralelo.

Esta práctica de mantener varias versiones de una aplicación se conoce comúnmente como «ramificación» y es útil cuando se trabaja en paralelo en múltiples funciones, correcciones de errores o refactorizaciones. Los desarrolladores pueden mantener sucursales localmente o enviar sucursales al VCS central para que varios desarrolladores puedan trabajar en la misma sucursal. Solo cuando los desarrolladores desean enviar sus cambios a una sucursal en el VCS central, deben asegurarse de que sus cambios sean compatibles con los del sistema central.

Los cambios en una rama lista para ser probada y enviada a producción a menudo se anotan mediante una etiqueta. Esta etiqueta se mantiene sin cambios pero, si se requieren correcciones, se puede crear una nueva etiqueta con una corrección basada en cualquier versión o rama en el VCS.

¿Por qué son importantes estas diferencias?

La diferencia clave entre estos enfoques es la siguiente:

En el flujo de trabajo de desarrollo de ABAP, cualquier cambio realizado por cualquier desarrollador afecta a todos los demás desarrolladores de inmediato y es difícil volver a versiones anteriores de la aplicación. Los transportes creados para la promoción a los sistemas de prueba y producción se basan puramente en el estado actual del sistema de desarrollo.

En el flujo de trabajo de desarrollo moderno estándar, cada desarrollador tiene control sobre cuándo se aplican los cambios de otros desarrolladores a su entorno de trabajo y es fácil volver a una versión anterior de la aplicación. Las etiquetas creadas para la promoción a los sistemas de prueba y producción se pueden crear en función de cualquier versión histórica de cualquier rama.

Estas diferencias dan como resultado procesos bizantinos en el mundo ABAP. Considere el caso en el que dos desarrolladores de programación de SAP ABAP necesitan realizar cambios en un conjunto de clases que interactúan entre sí. Es difícil para dos desarrolladores ABAP trabajar en el mismo código al mismo tiempo, por lo que el mejor enfoque sería que un desarrollador hiciera su trabajo primero y que el otro comenzara una vez que el primero haya terminado. Si el trabajo tomará un día para cada desarrollador, hacer todo el trabajo lleva dos días.

Por supuesto, si hay un problema con el primer conjunto de trabajo en el sistema de prueba, el trabajo del segundo desarrollador ya está en su lugar y solo podemos realizar transportes basados ​​en el estado actual del sistema de desarrollo. Ahora tenemos que decidir si eliminar el trabajo del segundo desarrollador e intentar solucionar el problema original, o si también promovemos el trabajo del segundo desarrollador al sistema de prueba junto con las correcciones al trabajo del primer desarrollador.

Por esta razón, a menudo es una buena idea esperar hasta que el trabajo del primer desarrollador sea promovido a producción, lo que podría llevar semanas, antes de que el segundo desarrollador comience a trabajar. Tenemos dos días-persona de trabajo para hacer y tenemos dos desarrolladores para hacer el trabajo, pero el trabajo podría demorar semanas en completarse debido al proceso requerido para solucionar las deficiencias de las herramientas de desarrollo de programación de SAP ABAP.

En el mundo no ABAP, ambos desarrolladores realizan sus cambios en las sucursales localmente, en paralelo. Una vez que un desarrollador termina con su trabajo, lo envía de vuelta al sistema de control de versiones central. El segundo desarrollador hace lo mismo, aunque si existen incompatibilidades entre su trabajo y el del primer desarrollador, es posible que deba dedicar algún tiempo a solucionar los problemas. Por lo tanto, el trabajo que debería tomar un día puede requerir un poco más de tiempo para corregir cambios incompatibles.

Un problema de gestión

La naturaleza de estas diferencias entre ABAP y otras plataformas parece un simple problema de herramientas de desarrollador y soporte para sistemas de control de versiones con todas las funciones. Pero da lugar a importantes puntos débiles en el proceso y la gestión. En mi opinión, debido a la falta de soporte para el control de versiones moderno, el trabajo de desarrollo de ABAP es inherentemente menos paralelizable y más frágil que el trabajo de desarrollo en plataformas que admiten sistemas de control de versiones.

¿Todavía es posible dirigir una organización de desarrollo ABAP relativamente eficiente y eficaz? Por supuesto que es. Pero seguro que sería mucho más fácil con un mejor soporte de herramientas de SAP.

Deja un comentario

También te puede interesar...

Definición de industria madura

¿Qué es una industria madura? Es una industria madura que ha superado tanto la fase emergente como la fase de crecimiento del crecimiento de la industria. Las empresas de estas industrias tienden a ser más

Una guía rápida sobre cómo funciona la FAFSA

¿Cómo funciona la FAFSA? Todos los estudiantes universitarios y sus padres necesitan saber cómo funciona la Solicitud de Ayuda Federal Gratuita para Estudiantes (FAFSA). Algunos pueden rechazar la solicitud de ayuda financiera para la universidad

Definición de compañía hipotecaria.

¿Qué es una empresa hipotecaria? Una compañía hipotecaria es una firma financiera especializada que se ocupa de la creación y/o financiamiento de hipotecas para propiedades residenciales o comerciales. Una compañía hipotecaria a menudo es solo

«Descargar Sebran: El mejor juego educativo para niños»

Sebran: la herramienta educativa para niños La tecnología ha revolucionado la forma en que aprendemos y enseñamos. Actualmente, existen una gran cantidad de herramientas educativas que buscan facilitar el proceso de aprendizaje de los niños.

T-Online se enfrenta a las sacudidas de Deutsche Telekom

El operador de telecomunicaciones alemán Deutsche Telekom está considerando dividir T-Online en una división internacional dedicada a administrar su negocio de Internet. Según informes de Tiempos financieros, la nueva división, denominada T-Online International, será la

Aprenda a realizar TDD con un ejemplo sencillo

A veces, debe fallar antes de poder tener éxito. No hay mejor ejemplo de eso que el desarrollo impulsado por pruebas. El desarrollo impulsado por pruebas (TDD) es una metodología que se centra en crear

Bienvenidos a los camiones volquete

Las personas que trabajan en el almacén están acostumbradas a que les digan que están aburridas. Me imagino que los contadores tienen un sentimiento algo similar: todos saben que lo que hacen es esencial, pero

Linux Mint 10 (Julia), Primeras Impresiones

Probablemente lo más difícil que encontrará un usuario de Linux Mint 10 (Julia) en este momento es simplemente descargarlo. La demanda de la nueva versión obviamente ha sido mucho más alta que cualquier cosa que

Skype defiende la eliminación de Skype para Asterisk

Skype ha decidido retirar Skype para Asterisk antes de que Microsoft se haga cargo de la empresa, dijo la compañía el miércoles, mientras que los comentaristas han levantado sospechas sobre la eliminación. Asterisk es una