Skip to main content

Si les preguntás a los profesionales de TI cómo describirían las estrategias de sus empresas para la modernización de aplicaciones, probablemente escucharás respuestas centradas en la tecnología.

Pueden contarte cómo están migrando aplicaciones on-premise a la nube, trasladando aplicaciones que ya están en la nube hacia nuevos tipos de servicios en la nube, o refactorizando sus aplicaciones para que funcionen como microservicios.

En otras palabras, cuando muchas personas piensan en modernización de aplicaciones, lo hacen en términos de cambio tecnológico.

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

Este campo es un campo de validación y debe quedar sin cambios.
Name*

Estoy aquí para decirte que ese es el enfoque equivocado para la modernización de aplicaciones. En lugar de modernizar sólo las tecnologías, las empresas realmente necesitan modernizar sus procesos de desarrollo y despliegue de aplicaciones.

Permíteme explicarlo discutiendo por qué un enfoque basado en procesos para la modernización de aplicaciones es a lo que las organizaciones deben aspirar, junto con orientación práctica sobre cómo modernizar los procesos de entrega de aplicaciones.

Modernización de Aplicaciones: Una Historia Sin Fin

Un enfoque centrado en la tecnología para la modernización de aplicaciones se queda corto simplemente porque las tecnologías están en constante cambio. Las innovaciones técnicas que hacen que tu aplicación sea "moderna" hoy pueden hacer que parezca una aplicación heredada dentro de uno, tres o diez años.

Por ejemplo, cuando la modernización de aplicaciones se convirtió en una palabra de moda hace aproximadamente una década, las tecnologías en la nube como la Infraestructura como Servicio (IaaS) estaban en el centro de muchas estrategias de modernización de aplicaciones. En ese momento, IaaS fue un gran avance para muchas organizaciones que previamente alojaban cargas de trabajo en local. Para ellas, el concepto de poder ejecutar tus aplicaciones en una infraestructura administrada por un tercero y pagar solo por los recursos que consumen tus cargas de trabajo era revolucionario.

Hoy en día, por supuesto, IaaS se siente mucho menos revolucionario. Sigue siendo valioso, pero ya es tan común que ha dejado de estar en el centro de la conversación sobre modernización de aplicaciones. En cambio, hoy se tiende a hablar sobre tecnologías y conceptos técnicos más recientes, como los contenedores y las funciones serverless.

Esto significa que si tu estrategia de modernización de aplicaciones se centra en actualizar tus apps para aprovechar la última y mejor tecnología (la que sea cuando lances la iniciativa), tarde o temprano tu aplicación dejará de ser innovadora. Tampoco destacará por ofrecer la mayor ventaja competitiva a tu negocio. Y en muchos casos, no obtendrás los últimos mecanismos de protección de seguridad, que son esenciales para anticiparse a las amenazas en evolución.

Un enfoque más saludable para la modernización de aplicaciones es enfocarse en modernizar los procesos. A pesar de los cambios profundos en las tecnologías de despliegue de aplicaciones de las últimas décadas, los procesos de desarrollo que mejor impulsan la innovación y eficiencia en el software —como los conceptos y prácticas interrelacionados de ágiles, Integración Continua/Entrega Continua (CI/CD) y DevOps— se han mantenido más o menos constantes.

Por eso el verdadero enfoque de toda empresa debería ser modernizar sus procesos de entrega de aplicaciones para aprovechar las técnicas más innovadoras. Cuando tus procesos son modernos, la capacidad de explotar la tecnología y actualizar aplicaciones rápidamente para beneficiarse de nuevas tecnologías, viene por sí sola.

Cómo Mejorar el Proceso de Modernización de Aplicaciones

El reto para muchas empresas, por supuesto, es cómo modernizar el proceso de entrega de software de manera que el cambio sea más rápido, sencillo y seguro. ¿Qué procesos específicos deberían modificar y cómo pueden superar los obstáculos que probablemente encontrarán en el camino?

Para responder a esas preguntas, revisemos algunas tácticas de modernización de procesos que pueden ayudar a transformar la manera en que las empresas "hacen" software, independientemente de las tecnologías que utilicen.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Este campo es un campo de validación y debe quedar sin cambios.
Name*

1. Detectar procesos problemáticos mediante análisis de flujo de valor

El primer paso en la modernización de procesos es determinar cuáles son los que más necesitan un cambio. Para obtener esa visión, se necesita un análisis de flujo de valor. El análisis de flujo de valor permite comprender las tareas que ocurren dentro de la entrega de software y cuánto tiempo tarda cada una, de manera similar a cómo revisar un presupuesto ayuda a los equipos a mejorar los resultados financieros al abordar primero los mayores rubros del presupuesto.

Cuando realizas un análisis de flujo de valor en la entrega de software, puedes identificar qué partes del proceso de desarrollo de aplicaciones son las más lentas o exigen el mayor esfuerzo manual, o qué componentes de la gestión de infraestructura son más proclives al error.

Aunque casi todos tus procesos seguramente puedan mejorarse en cierto grado, el análisis de flujo de valor te permite centrarte en los que tienen mayor potencial de mejora. También ayuda a identificar tareas o pasos innecesarios que se pueden eliminar para que el proceso de despliegue sea más simple, rápido y de menor riesgo.

2. Medir la entrega de software

El análisis de las prácticas de entrega de software es más efectivo cuando se realiza un seguimiento sistemático y cuantitativo de los procesos. Esto se puede lograr utilizando marcos como las métricas DORA de Google, que miden la eficiencia de los procesos existentes de desarrollo y despliegue de software.

Un enfoque basado en métricas permite rastrear los resultados de la entrega de software de manera precisa. Por extensión, ayuda a las empresas a evaluar exactamente cuánto mejoran (o no) tras realizar cambios en sus procesos de entrega de software.

3. Declara la guerra a los procesos manuales

Si tu organización es como la mayoría, el análisis del flujo de valor sacará a la luz bastantes procesos que tus equipos todavía realizan manualmente. Automatizar estos procesos siempre que sea posible debería ser una prioridad. La automatización ahorra tiempo, reduce el riesgo de errores y facilita implementaciones más seguras.

En la mayoría de los casos, los procesos manuales son la antítesis de la modernización de aplicaciones por dos razones. Una es que ralentizan las cosas y crean ineficiencia. La otra es que las operaciones manuales tienden a aumentar el riesgo de errores por la posibilidad de que una persona pase por alto algo importante o cometa un error al aplicar una configuración, dejando abierta la puerta a una vulnerabilidad.

4. Refactoriza los procesos y procedimientos de gestión

Así como puedes refactorizar una aplicación monolítica redefiniendo su arquitectura, puedes redefinir tus procesos y procedimientos de gestión, como tu enfoque para el desarrollo de aplicaciones y la administración de sistemas.

En muchos casos, aumentar la velocidad de las implementaciones de aplicaciones e implementar la entrega y el despliegue continuos requiere reescribir los procesos de gestión de cambios de software porque los enfoques heredados, como los asociados al modelo en cascada, no escalan. No pueden competir con el ritmo de pipelines de entrega continua donde se sube código nuevo a producción varias veces a la semana o incluso con mayor frecuencia.

Los procesos que son lentos y manuales deben ser reemplazados por procesos automatizados en la medida de lo posible. Por ejemplo, las pruebas de software podrían automatizarse para ahorrar tiempo y mejorar la calidad (porque, con demasiada frecuencia, las aprobaciones manuales son solo una formalidad, lo que significa que ralentizan el proceso de pruebas sin aportar valor). Además, los procesos que sean demasiado complejos podrían descomponerse en procedimientos más pequeños y simples.

5. Cambia tu mentalidad sobre los procesos

Además de modificar los procesos como tal, la modernización de aplicaciones también debe implicar cambiar la forma en que las organizaciones piensan sobre los procesos en general. Con esto me refiero a incentivar que los desarrolladores, administradores de TI y gerentes utilicen la automatización por defecto al implementar procesos.

Esto podría parecer innecesario porque muchos profesionales de TI hoy en día hablan sobre la importancia de la automatización. Sin embargo, a la hora de la verdad, tienden a inclinarse por enfoques manuales porque son más rápidos y sencillos de implementar al inicio. Para lograr el éxito a largo plazo en la modernización de aplicaciones, necesitas que tus equipos adopten la automatización como una forma de ahorrar tiempo y esfuerzo y reducir riesgos a largo plazo, incluso si implica más trabajo al principio.

Superar los desafíos de la modernización de aplicaciones

Durante la realización de los cambios de proceso que acabo de describir, las empresas a menudo se encuentran con problemas como los siguientes:

  • Resistencia al cambio: Si los procesos manuales o ineficientes han estado en práctica durante décadas y el negocio ha seguido funcionando, algunas personas podrían cuestionar el valor de hacer cambios.
  • Falta de recursos: Renovar los procesos lleva tiempo y esfuerzo. Los departamentos de TI que ya están saturados pueden mostrarse reacios a destinar recursos para estos cambios.
  • Falta de liderazgo: Sin ejecutivos o gerentes que guíen la modernización de procesos, las iniciativas pueden perder impulso.

Estos desafíos son, en cierta medida, inevitables. Pero también tienen solución. Parte de la solución es empezar poco a poco; en vez de renovar todos los procesos de golpe, elige solo algunos y escala desde ahí. También es una buena práctica comenzar solo con uno o dos equipos.

Una vez que hayas determinado por dónde comenzar, asegúrate de medir la entrega de software usando métricas, realizar un análisis de flujo de valor para saber dónde puedes mejorar, y hacer cambios. Tras mejorar la destreza de tus equipos iniciales, los integrantes de esos equipos pueden expandirse y ayudar a otros a adoptar procesos y mentalidades similares.

Las empresas también deben designar líderes para supervisar las iniciativas de modernización y delegar la responsabilidad de ciertos aspectos del proceso en personal con las habilidades necesarias. Otra opción es externalizar este trabajo a una empresa de desarrollo de apps móviles o una empresa de desarrollo de apps para iPad.

Un enfoque moderno para la modernización de aplicaciones

En última instancia, el éxito de cualquier proyecto de modernización de aplicaciones depende no solo de las tecnologías que decidas implementar, sino también de cómo las implementas. Hasta que las empresas modernicen los procesos para construir y actualizar software, siempre estarán un paso atrás.

Sin embargo, con procesos eficientes, fiables y seguros, las organizaciones pueden modernizar sus aplicaciones aprovechando las últimas innovaciones tecnológicas cada vez que surjan nuevas oportunidades tecnológicas.

Suscríbete al boletín de The CTO Club para más consejos, trucos y herramientas sobre modernización de aplicaciones.