bluebay2014 - stock.adobe.com

DevOps, una metodología para sacar lo mejor de los equipos de trabajo

El mercado mundial de herramientas para la aplicación de esta metodología alcanzó los $5.200 millones de dólares en 2018 y prácticamente se triplicará en 2023, de acuerdo con IDC.

Hace algún tiempo, en una galaxia no muy lejana, los proyectos de tecnología se desarrollaban de una manera bastante particular: el cliente hacía algunos requerimientos al departamento de tecnología para satisfacer unas necesidades de su negocio; el departamento de tecnología tomaba nota, entendía –o creía entender– el problema, se desaparecía por un tiempo y volvía unas semanas o unos meses después con un producto terminado que podía resolver –o no– las necesidades del cliente.

En medio de la incomunicación, del “cada uno haciendo lo que debe hacer” sin la participación activa del otro, las soluciones podían llegar tarde, mal o nunca, tras una avalancha de reprocesos, sobrecostos y desaprovechamiento de recursos que se habrían evitado de haber aplicado una metodología efectiva para llevar a cabo el proceso.

Pero a medida que el tiempo pasó, tanto clientes como equipos de tecnología –sean internos en las compañías o proveedores externos– se dieron cuenta de que trabajar cada uno por su lado no llevaba muy lejos, y de que la planeación y la colaboración son fundamentales para el éxito de un proyecto.

En ese contexto, las metodologías se han vuelto una parte fundamental del desarrollo de proyectos de tecnología. Y entre los diferentes colores y sabores se destacan las Metodologías Ágiles, entre cuyos objetivos fundamentales se encuentran mejorar la calidad de los productos y elevar la satisfacción de los clientes, a través de procesos colaborativos realizados por equipos más motivados.

Fue precisamente durante la conferencia Agile 2008, realizada en Toronto (Canadá), que se escuchó hablar por primera vez del término DevOps, un acrónimo de las palabras development y operations (desarrollo y operaciones, en inglés), que hoy es considerada como una de las metodologías más exitosas para el desarrollo de software, y que es aplicada por empresas de la talla de IBM, Microsoft, Red Hat y AWS, por mencionar algunas.

Así las cosas, DevOps está relacionada con las Metodologías Ágiles, con vínculos más o menos estrechos según las definiciones de diferentes autores y empresas, que se refieren a ellas como son mundos relacionados pero independientes o establecen prácticamente un parentezco de ‘madre e hija’

El éxito de DevOps es tal que un análisis de IDC señalan que el mercado mundial de herramientas para la aplicación de esta metodología alcanzó los $5.200 millones de dólares en 2018 y prácticamente se triplicará en 2023, cuando llegará los $15.000 millones de dólares.

Pero, ¿cómo podemos entender más fácilmente qué es DevOps y cuáles son los componentes que la hacen una metodología exitosa? Para responder esta pregunta, SearchDataCenter en Español habló con Magda Martínez Vélez, Solution Architect de Red Hat para Sudamérica y el Caribe. 

Uno para todos y todos… para todos

Magda Martínez

Para la experta de Red Hat, la imagen que mejor describe DevOps es la de una armonía perfecta entre las áreas de Desarrollo y Operaciones de las compañías, que tradicionalmente habían trabajado como ‘bandos enfrentados’ y que ahora lo hacen como un equipo, para lograr un objetivo común.

Aunque Desarrollo y Operaciones son mundos muy diferentes, la idea es que no se ‘pasen la pelota’ en interminables procesos secuenciales, sino que sean amigos y trabajen de forma conjunta, apalancados en tres componentes fundamentales, que a juicio de Martínez tienen todos el mismo peso dentro del proceso:

  • Cultura: que las personas entiendan que lo que importa no es el ego y el reconocimiento individual, sino el equipo y el objetivo común. Ya no “soy yo”, sino “somos nosotros”, y “respondemos por el proyecto”, no solo por “la parte que me corresponde”.
  • Procesos: la manera como la empresa le da rumbo a la visión que quiere desarrollar y apalanca la metodología para la obtención de la meta.
  • Tecnología: son las herramientas que permiten al equipo trabajar en el desarrollo de las piezas que conformarán el producto final y permitirán llevarlo a producción.

A diferencia del enfoque tradicional, en el que los proyectos pasaban por etapas secuenciales (una después de la otra) de análisis, diseño, programación y pruebas, en el mundo DevOps no se piensa en proyectos a largo plazo que tienen un comienzo y un final perfectamente definidos, sino que se trabaja en etapas cortas, durante las que se adelantan procesos simples de manera simultánea.

Magda Martínez utiliza como ejemplo el desarrollo de un control remoto, que desde la perspectiva de DevOps no se planearía desde el comienzo como un equipo con mil botones que cumplen todas las funciones necesarias, sino que se realizaría por etapas cortas: primero sería tan simple como un aparato con los botones para encender y apagar el televisor, subir y bajar el volumen y cambiar de canal.

A medida que el proyecto avanza se van agregando funcionalidades. Es un proceso de mejora continua y además flexible, que permite hacer ajustes sobre la marcha en beneficio de la calidad del producto final. Este ciclo de mejoras continuas está compuesto por iteraciones de etapas como planificación, creación, configuración, monitoreo y puesta en producción.

Una cosa interesante es que durante el avance del proyecto no se establecen plazos estrictos e inamovibles, sino que se trabaja sobre estimaciones que, si bien pueden ser muy variables, no deben sacrificar la calidad del producto final.

El delicado arte de la estimación

Aunque trabajar con estimaciones aumenta la flexibilidad en el desarrollo de los proyectos, estás pueden variar hasta un 400 % con respecto a la fase de inicio, según lo define Steve McConnel en su ‘Cono de la incertidumbre’, un concepto usado en ingeniería de software para describir la evolución de la medida de incertidumbre durante la realización de un proyecto.

Según su planteamiento, las estimaciones iniciales exactas no son posibles y la única pregunta que pueden intentar responder es: ¿Este proyecto es realizable?

Aunque el foco de DevOps es la integración entre los departamentos de Desarrollo y Operaciones, durante el avance del proyecto también se trabaja de manera conjunta con las áreas de seguridad, negocio, control de calidad… con todas las que deben estar involucradas en el logro del objetivo final.

Otra de las cosas interesantes es que los equipos son tan flexibles como la misma metodología, de manera que en ellos pueden entrar y salir personas que aporten su conocimiento durante las diferentes etapas del proyecto, según las necesidades y requerimientos: “Lo interesante es que no hay roles definidos [un principio que se incorpora desde las metodologías ágiles]. El rol se adapta a la persona, no la persona al rol. Puede parecer muy caótico, pero realmente no es así. Estamos sacando lo mejor de esa persona para determinado objetivo”, señala Magda Martínez.

Lo anterior implica un trabajo riguroso de documentación de los procesos, no solamente para que todos estén bien informados de los avances, sino para evitar lo que la ejecutiva de Red Hat llama los “héroes organizacionales”, esas personas que no se pueden ir de vacaciones porque solo ellas saben cómo hacer algo o que no se pueden ir de la compañía porque esta se acaba.

Los clientes, además, son parte fundamental de los equipos. No aparecen solamente al comienzo del proceso para explicar sus necesidades y al final, para recibir el producto terminado, sino que participan durante todo el desarrollo del proyecto. Esto, por supuesto, implica que sus procesos también deben estar alineados con la metodología.

¿Sirve para todos?

Por lo anterior, hay que tener en cuenta que, al hablar de cultura, procesos y herramientas, existe la posibilidad de que no todas las metodologías se puedan aplicar por igual –o simplemente que, de plano, no se puedan aplicar– en todas las organizaciones. “No hay una metodología estándar, sino que todo va a depender del contexto, de manera que tal vez DevOps funcione en muchos casos, pero a otras personas les funcione mejor otra metodología como Scrum o un método tradicional”, explica Magda Martínez.

De hecho, Gartner predice que hasta 2022, el 75 % de las iniciativas de DevOps no cumplirán con las expectativas debido a problemas relacionados con el aprendizaje y el cambio organizacional, lo que confirma la visión de Martínez con respecto al peso equitativo entre los tres componentes que apalancan la metodología. La misma firma consultora establece una guía de ocho pasos para la aplicación correcta de los conceptos de DevOps:

  • Identificar el equipo inicial
  • Seleccionar la aplicación que será el punto de partida
  • Definir DevOps según las necesidades de la organización
  • Identificar la justificación o el requerimiento de negocio
  • Establecer objetivos y métricas
  • Identificar las limitaciones o cuellos de botella
  • Desarrollar la cadena de herramientas
  • Escalar cuando se esté listo para hacerlo

Por otra parte, aunque existe una base fundamental para la aplicación de las metodologías, es posible que DevOps tenga algunas diferencias según la aproximación de cada proveedor, que también tendrá productos específicos para habilitar su aplicación.

En cuanto a los casos de uso, Magda Martínez destaca el mundo de la banca, en el que los cambios en las dinámicas de mercado han obligado a que las entidades financieras se transformen y se adapten si quieren sobrevivir, incluso frente a competidores que no necesariamente son bancos (como puede ser Rappi). También menciona especialmente el caso del retail, en el que las empresas tradicionales buscan la manera de salir al paso de las iniciativas de aquellas que nacieron en ambientes digitales.

El beneficio de DevOps se manifiesta en procesos más rápidos, inversiones ajustadas a los presupuestos y equipos de trabajo más satisfechos. Una flexibilidad que, de nuevo, no compromete la calidad del producto final, sino que busca mejorarla.

DevOps en palabras de...

Microsoft: “DevOps permite que los roles que antes estaban aislados (desarrollo, operaciones de TI, ingeniería de la calidad y seguridad) se coordinen y colaboren para producir productos mejores y más confiables. Al adoptar una cultura de DevOps junto con prácticas y herramientas de DevOps, los equipos adquieren la capacidad de responder mejor a las necesidades de los clientes, aumentar la confianza en las aplicaciones que crean y alcanzar los objetivos empresariales en menos tiempo”.

Deloitte: “Es importante aclarar en un primer momento que DevOps no es una tecnología, sino una metodología y que está ligada a las metodologías de desarrollo de software ágiles. Con esta metodología no solo se cambian los métodos de gestión del ciclo de desarrollo de software a nivel tecnológico, sino también a nivel cultural. Los equipos de desarrollo, sistemas e incluso el aseguramiento de la calidad (QA), comienzan a colaborar y trabajar conjuntamente para cubrir todo el ciclo de desarrollo del software de manera que los procesos son mucho más ágiles y seguros y de esta manera también garantizan un producto final de mucha más calidad y fiabilidad”.

Gartner: “Los servicios de DevOps pueden estar basados en consultoría, como definición de estrategia, capacitación/entrenamiento e implementación de productos y herramientas, u operaciones de servicio en vivo en toda o parte de la cadena de herramientas o aplicaciones de DevOps. El alcance del servicio puede incluir integración continua (CI), entrega continua, funcionalidad de implementación continua (CD), operaciones de servicio en vivo y soporte de plataforma, y la provisión de servicios de ingeniería de lanzamiento y rendimiento”.

Red Hat: “DevOps describe los enfoques para agilizar los procesos con los que una idea (como una nueva función de software, una solicitud de mejora o una corrección de errores) pasa del desarrollo a la implementación, en un entorno de producción en que puede generar valor para el usuario. Estos enfoques requieren que los equipos de desarrollo y operaciones se comuniquen con frecuencia y aborden su trabajo con empatía hacia sus compañeros de equipo. También son necesarios la escalabilidad y el aprovisionamiento flexible. […] Los desarrolladores, que generalmente realizan codificaciones en un entorno de desarrollo estándar, trabajan en estrecha colaboración con los equipos de operaciones de TI para agilizar el diseño, las pruebas y el lanzamiento de los sistemas de software, sin comprometer la confiabilidad”.

AWS: “Los equipos utilizan prácticas para automatizar los procesos que anteriormente habían sido manuales y lentos. Utilizan una pila de tecnología y herramientas que los ayudan a operar y mejorar aplicaciones de forma rápida y confiable. Además, estas herramientas ayudan a los ingenieros a realizar de forma independiente tareas que normalmente hubieran requerido la ayuda de otros equipos (por ejemplo, implementar código o aprovisionar infraestructura), lo que incrementa todavía más la velocidad del equipo.”

Investigue más sobre Software de mejora de procesos