De waterfall a la aplicación de Agile y Devops en el nuevo ERP digital

El mundo digital lo está cambiando todo: nuevas tecnologías disruptivas, nuevos modelos operativos, nuevos y ágiles competidores, clientes más exigentes… En este nuevo entorno, las organizaciones deben reimaginar cómo atenderán a sus clientes conectados, cómo operarán sus empresas, siempre abiertas, y cómo adoptarán las nuevas tecnologías y capacidades digitales para hacer crecer su negocio.

La presión está en ser más rápido, más inteligente, más ágil, lo que requiere un nuevo enfoque en las aplicaciones. Por eso, la mayoría de las compañías son conscientes de que necesitan iniciar la reinvención de sus aplicaciones para seguir el ritmo y las demandas crecientes del negocio.

Así, cada vez es más habitual encontrar situaciones como las siguientes: “Estamos considerando la posibilidad de adquirir una nueva compañía en LATAM, pero para ello es crítico poder garantizar el pleno soporte de las operaciones con nuestros sistemas de información corporativos desde el primer minuto…”, o bien, “el departamento de marketing acaba de anunciar que lanzamos un nuevo producto al mercado en tres meses y hay que adaptar nuestros sistemas comerciales…”.

En este contexto, ¿las formas tradicionales de hacer o implantar software son capaces de dar la respuesta adecuada a estas necesidades crecientes que demanda el ritmo del negocio…?

Simplificando, podemos decir que existen dos grandes metodologías para abordar el desarrollo de software, pero esto ocurre también cuando se trata de la implantación de software de gestión: la metodología waterfall  (más tradicional y por fases en cascada) y la filosofía Agile, cuya diferencia principal es la apuesta por ir cumplimentando historias o requerimientos en plazos cortos de tiempo, apoyándose en herramientas metodológicas, como los denominados sprints, gracias a las cuales se consigue un time-to-market mucho mejor.

Las metodologías ágiles también pueden ser útiles en proyectos de implantación de ERP

El software es el negocio

A nadie le pasa inadvertido que, durante los últimos años, hemos ido viendo de forma más generalizada el uso de enfoques y metodologías ágiles en el mundo del aprovisionamiento de TI. Estas han dejado de ser una tendencia de Netflix, Facebook o Amazon y han comenzado a formar parte del core metodológico en el desarrollo de software en muchas organizaciones.

Y es que el software ha dejado de ser un facilitador del negocio para convertirse en el propio negocio.

Un negocio que se mueve en un entorno de continuo cambio y cuya demanda es cada vez mayor por parte de los usuarios; un negocio que es capaz de reconocer la dificultad de gestionar proyectos de TI que se extiendan durante largos periodos bajo un modelo tradicional waterfall.

La consolidada madurez de nuevas plataformas tecnológicas y modelos de delivery as a service están permitiendo garantizar las necesidades tradicionales de TI a la vez que permiten hacer frente a esa “nueva demanda”.  Disciplinas como
DevOps permiten dar respuesta a dicha demanda mediante una aceleración en los procesos de desarrollo. Esto hace posible reducir los tiempos mediante la integración continua, automatizando la ejecución de pruebas que validen cada pieza de código nuevo, pero que mantengan el funcionamiento correcto del conjunto. El resultado es la posibilidad de poner en producción los nuevos cambios varias veces al día, y en cuestión de minutos.

FIGURA 1. Metodología waterfall frente a la filosofía Agile.

Agile y ERP

Aunque la metodología de gestión de proyectos ágiles deriva del mundo de desarrollo de software, también puede ser útil en la aplicación de software empaquetado. Es el caso del ERP, donde casi siempre nos encontramos con cierto grado de personalización. En la medida en que modificamos el código de software dentro de esa personalización, estamos en el negocio del desarrollo.

La pregunta es la siguiente: ¿hasta qué punto han calado estas estrategias en las iniciativas de implantación de soluciones ERP, como SAP o Oracle, por citar algunas, que hoy forman parte del core de los sistemas que sostienen la “trastienda” de las organizaciones?

El principal reto al que se enfrenta una organización que desea asumir cualquier enfoque “ágil” bajo una disciplina DevOps es el de ser capaz de gestionar de forma ágil tanto los requerimientos y su priorización como el código y los propios entornos de desarrollo. Además, asumiendo que hay que crear una cultura de automatización y análisis que involucra muchos elementos y equipos diferentes: gestores de bases de datos, almacenamiento, sistemas, red y comunicaciones, servidores virtuales, monitorización, etc.

En este contexto hay que considerar que los ERP tienen características que los hacen especiales: suelen ser los sistemas más pesados en cuanto al uso del almacenamiento; y en muchas ocasiones requieren configuraciones diferentes para la misma versión, al contar con rollouts para distintas localizaciones o países.

Para conseguir automatización, existe en el mercado un amplio conjunto de herramientas, con mayor o menor ROI, que facilitan las labores de prueba del código generado o la identificación de defectos de forma anticipada a su puesta en producción.

Aunque es importante tener en cuenta que, de ningún modo, significa solo poner en marcha un conjunto de herramientas. El principal beneficio se obtiene al contar con el conocimiento de las personas que saben utilizar dichas herramientas, ya que disponen de la experiencia en la definición e implantación de los procesos más adecuados para hacerlas funcionar en el momento y el modo adecuados.

FIGURA 2. Periodic Table of DevOps Tools. Fuente: XebiaLabs.

Riesgos y beneficios

El mayor riesgo a la hora de implementar frameworks de trabajo automático y continuo se produce si se da toda la responsabilidad al funcionamiento de las herramientas. Hay que tener en cuentas que estas no son más que utilidades en las que se apoyan los profesionales para alcanzar la excelencia en un entorno “continuo para todo” (continuous integration, continuous testing, continuous deployment, continuous monitoring and continuous delivery).

La utilización de estas técnicas y herramientas está produciendo beneficios como los siguientes:

  • 30% de incremento de la productividad en el análisis de requerimientos y en el diseño de la solución.
  • 50% de reducción en el tiempo de ejecución de los test de regresión.
  • 40% de reducción de defectos en los test unitarios y de producto.
  • 30- 40% de reducción del time-to-market global en la provisión e implantación de soluciones de negocio.

Esta digitalización no puede abordarse por igual para todos los sistemas TI, sino que debe coexistir en “entrega y ritmo” según las necesidades de cada sistema.

Las exigencias de cambio son mucho mayores y requieren soluciones mucho más rápidas para aquellas soluciones software en las que el usuario está en el centro del proceso de diseño. En el caso de los sistemas back-office, tipo ERP, es el proceso de negocio el que gobierna la prioridad y donde un enfoque de aprendizaje basado en el error supone un esfuerzo y un coste excesivos para las organizaciones.

Teniendo claros los dos mundos, estamos cerca del momento en el que las disciplinas Agile y DevOps sean maduras también en entornos de implantación para ERP: la liberación de lenguajes propietarios sobre los que desarrollar este tipo de soluciones, como es el caso de ABAP para SAP, el desacoplamiento entre los sistemas front y los sistemas end, así como la evolución de herramientas ad-hoc para tareas de gestión empresarial están haciendo viables, y rentables, estos enfoques.

Manos a la obra

¿Cómo puede abordar una organización esta disyuntiva entre los dos mundos? Para implantar un servicio a doble velocidad se requiere una transformación de forma progresiva, desde la situación actual hacia un enfoque que tenga como pilares la agilidad, la automatización avanzada y el análisis inteligente de información. Además, esta debe estar entregada en modo servicio, de forma que facilite el cambio tanto en el plano cultural como en el puramente tecnológico.

Como punto de partida para abordar una transformación de este calado, analice su nivel de madurez TI y defina un roadmap, con objetivos que permitan poner a prueba su capacidad de forma progresiva y ayuden a dar respuesta a preguntas como:

  • ¿Los equipos de TI ya están utilizando la metodología Agile y están preparados para adoptar un enfoque DevOps?
  • Si es así, ¿por dónde empezar?
  • ¿Qué implicará, en términos de coste, el riesgo y la formación?
  • ¿Cómo de rápido seremos capaces de lanzar nuestros productos y servicios…?