El Desafío de la Adopción DevOps

API Economy

El Desafío de la Adopción DevOps
21/04/2021

Las compañías tienen el desafío latente de adoptar la cultura DevOps, mucho más allá de solo la tecnología de automatización del ciclo de vida del Software.

 

La importancia de DevOps en la Estrategias Digitales

Hoy en día las estrategias digitales de las compañías son cada vez más agresivas e intensas, producto de la aceleración producidas por la crisis sanitaria Covid-19.  Esto ha llevado a muchas organizaciones a acelerar la adopción de tecnologías digitales, sin embargo el desafío cultural que trae consigo el cambio de mindset  tiene un gran impacto en las organizaciones que es invisibilizado, generando efectos no deseados.  Uno de estos ejemplos es la incorporación de DevOps como parte de los habilitadores tecnológicos digitales, el cual si no tiene incorporado un capítulo que aborde la adopción por parte de los equipos, producirá un desajuste con las expectativas de reducir el Time To Market y mejorar la calidad de los productos.

DevOps es en si una cultura empresarial  que se implementa en el  ámbito del desarrollo de software  de las compañías. Se trata de una combinación de planteamientos, prácticas y herramientas que ayudan a la empresa a acelerar en gran medida el proceso de creación y aplicación de software y, a la vez, mejorar su calidad. Es decir busca reducir el tiempo de entrega conjuntamente con mejorar la calidad, es un gran driver de la eficiencia operacional en el proceso de desarrollo de software.

Una característica esencial de DevOps es que hace que los equipos de desarrollo (development) y de operaciones (operations) trabajen juntos, integrando así mejor las tareas de ambos, lo cual no ocurre en los procesos de desarrollo convencionales. De esta manera, los posibles problemas en el ámbito de las operaciones pueden ser previstos ya desde el desarrollo y, por otro lado, el equipo de operaciones se beneficia desde el primer momento del conocimiento y las novedades que surgen en el desarrollo. Estas ventajas salen a la luz especialmente cuando se tienen en cuenta los desafíos del mercado actual, dos de los cuales son la integración continua o continuous integration y la entrega continua o continuous delivery, que exigen tiempos de reacción muy cortos en el desarrollo de nuevos productos, así como de nuevas versiones y actualizaciones. El concepto de DevOps cumple estas expectativas, puesto que permite reducir al máximo los tiempos entre cada entrega y mejora la calidad.

 

DevOps establece una “intersección” entre Desarrollo, Operaciones y Calidad, pero no se rige por un marco estándar de prácticas, sino que permite una interpretación mucho más flexible en la medida en que cada organización quiera llevarlo a la práctica, según su estructura y circunstancias.

El objetivo final de DevOps es minimizar el riesgo de los cambios que se producen en las entregas y dar así un mayor valor tanto a los clientes como al propio negocio

El desafío pendiente de la Adopción DevOps

DevOps integra las tareas de desarrollo de software con las de operación con el fin de reducir el time-to-market de nuevos productos y funcionalidades, aumenta la disponibilidad del servicio, el uso más efectivo de la infraestructura, reduciendo el impacto y número de defectos en producción. Esto lo logra a través de un ambiente colaborativo entre el equipo de desarrollo y el de operación y la automatización de tareas de desarrollo, calidad, despliegue y monitoreo. Esto lleva a forzar la cultura colaborativa entre los equipos técnicos, con una mirada del proceso transversal, eliminado el sesgo del silo propio de la forma tradicional del desarrollo de software.

Retos Culturales y Procedimentales

Establecer dicho ambiente colaborativo exige la reconfiguración del equipo de TI con un nuevo propósito compartido y alineado con la misión de la organización, lo cual constituye el reto de romper aspectos culturales y procedimentales que se han consolidado en las organizaciones por décadas.

A continuación, se presentan algunos de los tipos de retos a enfrentar en la adopción de una mentalidad organizacional de DevOps:

  1. Lenta retroalimentación
    Los errores u omisiones por parte de los desarrolladores en el proceso de despliegue a producción no son informados oportunamente, pues estos surten un proceso de bug-tracking y, seguramente, la intervención/aprobación de un directivo -no para tomar acciones de mejora y soluciones de raíz, sino para que quede claro que la culpa no fue de Operaciones sino de Desarrollo
  1. Comunicación focalizada en el proceso de desarrollo y despliegue
    Muchas veces la comunicación directa entre desarrollo y operaciones no existe y solo se permite a través de tickets y solicitudes por email u otra herramienta. Pero aún peor, puede llegar a existir una tercera entidad o coordinador quién sirve de teléfono -muchas veces roto- entre los ellos.
    Y cuando se da una discusión, no es acerca del producto y la calidad de este, sino acerca de las políticas, procedimientos y reglas que deben cumplirse para aceptar el cambio a producción. Igualmente, como se observó en el ejemplo, el Equipo de Operaciones no es involucrado de forma suficiente en actividades de comprensión de los requerimientos y diseño, lo cual dificulta la comunicación en términos del producto y del valor al negocio.
  1. Incentivos basados en el cumplimiento de tareas
    Inclusive en los proyectos de desarrollo basados en ciclos ágiles, el Equipo de Desarrollo tiene como propósito culminar el código sin errores de las historias de usuario (funcionalidad) comprometidas en la planeación al inicio del sprint, pero no necesariamente asume el compromiso de llevarlo a producción.
    Por otra parte, Operaciones tiene como meta que la infraestructura donde se ejecuta el código que implementa las historias de usuario esté disponible 24/7 con el desempeño adecuado, pero no asume ninguna responsabilidad de este código en caso de presentarse fallos.
    De esta forma, no es claro quien de los dos (Desarrollo u Operaciones) asume la responsabilidad del producto de software como un servicio, que no solo satisface los requisitos originales, sino que le brinda una experiencia oportuna, efectiva, y porque no, deleitante al usuario.
  1. Respeto y escucha
    Los profesionales de Desarrollo y de Operaciones deben entender que cada una de estas disciplinas es exigente, presentan grandes retos y tienen un conocimiento específico pero complejo. Por ende, deben estar dispuestos a escuchar y comprender los argumentos, dificultades y alternativas de las partes para llegar a soluciones orientadas a optimizar el resultado final (un producto que deleite al usuario) mas que una solución limitada por las políticas y barreras impuestas por cada una de las partes.
  1. Confianza
    Los desarrolladores deben confiar que Operaciones ha establecido procedimientos y estándares, no para obstaculizar el proceso, sino por el contrario, para garantizar que el producto llegue al usuario sin incidentes y en el primer intento. Operaciones debe confiar que los requisitos de infraestructura por parte de Desarrollo no han sido sobrestimados y que no se solicitan para esquivar más tareas de desarrollo, sino para que se brinde una experiencia y desempeño adecuado al usuario.

Asimismo, los directivos deben confiar en el profesionalismo de Desarrollo y de Operaciones para que puedan llegar a acuerdos y a discusiones efectivas, sin intervenciones o arbitrajes de un tercero -que en muchas organizaciones es quien toma las decisiones y a la vez es quien posee menor información tanto del código como de la infraestructura-.

Conclusiones

La implementación de prácticas de DevOps, mas que herramientas, requiere un cambio cultural en la organización para llegar a un ambiente colaborativo donde se rompan los “silos” organizaciones al interior de TI, basado en el respeto, la confianza, la comunicación abierta, el trabajo en equipo, la responsabilidad y la integridad profesional.

Igualmente, se requiere un cambio de mentalidad donde se incentive el trabajo orientado al cumplimiento de los objetivos de negocio y no solo a la culminación de tareas.

 

Riesgos latentes de DevOps

Uno de los riesgos que encierra la implantación de DevOps es que la dirección de la empresa no consiga familiarizar a los trabajadores con sus ventajas y que estos, por lo tanto, reaccionen de manera escéptica ante los cambios. Si esto ocurre, los trabajadores podrían mostrarse poco colaborativos en la implementación del concepto, dando quizá lugar a conflictos dentro de los equipos o departamentos. Para evitar este riesgo, es imprescindible comunicar las ventajas de DevOps de manera efectiva, para que los trabajadores no se sientan limitados en su ámbito personal de trabajo.