La mentalidad DevOps: Cómo adoptarla en su organización

No puedes comprar DevOps o convertirte en una organización DevOps de la noche a la mañana. La única forma de realizar con éxito la transición a DevOps y seguir avanzando por el camino hacia el éxito de DevOps es cambiar por completo la cultura de su organización. Eso significa que todas las partes interesadas -desde la alta dirección hasta el equipo de desarrollo y todos los que contribuyen a un proyecto- deben adoptar la mentalidad DevOps.

La mentalidad DevOps da prioridad a los siguientes valores:

  • Visibilidad: garantizar que todo el mundo tenga acceso a la información y que su canalización y procesos sean transparentes.
  • Calidad: mejorar la calidad de las herramientas, la formación, los procesos y el producto en general.
  • Velocidad: aumentar la velocidad del proceso de desarrollo para poder publicar software con mayor rapidez y frecuencia.
  • Resistencia: garantizar que los equipos puedan adaptarse rápidamente a los cambios y aplicar los comentarios con prácticas de desarrollo ágiles.
  • Colaboración: dar a los equipos multifuncionales las herramientas y el apoyo que necesitan para trabajar juntos sin conflictos.
  • Mejora continua: buscar siempre oportunidades para mejorar los procesos, las herramientas, la formación y el producto final.

En este post, explicaremos la adopción de la mentalidad DevOps y cómo puedes aplicar estos principios en tu organización.

La mentalidad DevOps: Cómo adoptarla en tu organización

Adoptar la mentalidad DevOps significa que su organización necesita centrarse en:

Visibilidad

Una de las piedras angulares de DevOps es la eliminación de los silos informativos, de modo que todo el mundo esté en la misma página sobre lo que están haciendo y por qué lo están haciendo. Los equipos pueden lograrlo utilizando herramientas de colaboración como Slack y herramientas de control de versiones de código fuente que proporcionan visibilidad de las historias de usuario y los cambios a lo largo del tiempo. Además, necesitas visibilidad en todos los aspectos de tu proceso para poder capturar métricas clave, identificar problemas y agilizar los flujos de trabajo.

Las métricas en tiempo real y la capacidad de mirar atrás en el tiempo son cruciales para supervisar la salud de la organización y hacer retrospectivas sobre problemas pasados. Lo ideal es disponer de herramientas que proporcionen cuadros de mando accesibles con métricas y alertas en tiempo real. Accesible significa que personas con diferentes capacidades técnicas pueden ver y trabajar fácilmente con los cuadros de mando sin mucha formación ni complicaciones.

Relacionado:  Cómo funciona la ciberseguridad: principales conceptos

Calidad

Para que su adopción de DevOps tenga éxito, necesita herramientas de calidad que proporcionen la funcionalidad necesaria sin obligar a los miembros del equipo a comprometer o cambiar sus procesos para adaptarse a las herramientas que se les dan. Por supuesto, puede haber casos en los que necesites forzar a los equipos a adoptar nuevas metodologías y herramientas de desarrollo para cultivar un enfoque más favorable a DevOps. En ese caso, debes hacer que esta transición sea lo menos dolorosa posible. Explicar los beneficios del cambio y cómo ahorrará tiempo a la gente será fundamental para la aceptación del equipo. Además, debe asegurarse de que los equipos reciban una formación de alta calidad sobre las herramientas y los procesos de sus flujos de trabajo para que puedan rendir al máximo de su capacidad.

La calidad de los procesos también es importante, pero más difícil de solucionar con una herramienta estándar: se necesita visibilidad de los procesos para detectar ineficiencias y cuellos de botella y encontrar formas de optimizarlos.

Por último, la mentalidad DevOps también da prioridad a la calidad general del producto, que se mejora desplazándose hacia la izquierda (realizando pruebas antes y con más frecuencia en el proceso) y utilizando la automatización de pruebas para detectar defectos y problemas que un humano podría pasar por alto.

Velocidad

Uno de los principales objetivos de DevOps es agilizar el ciclo de vida de desarrollo de software (SDLC), para que pueda liberar software más rápido. La automatización es clave para lograr esta velocidad. Por ejemplo, las herramientas de integración automatizada continua/entrega continua (CI/CD) reducen la intervención manual necesaria para integrar y crear código nuevo y entregar software a los distintos entornos y etapas del proceso. La automatización de pruebas hace posible que el control de calidad se desplace a la izquierda y valide la calidad del software pronto y con frecuencia sin crear cuellos de botella adicionales en el SDLC. Además, en el lado de operaciones, las herramientas automatizadas de gestión de configuración y despliegue ayudan a los ingenieros a aprovisionar nuevos recursos de forma más rápida y eficaz.

Relacionado:  Creación de un diagrama CI/CD moderno para reducir las vulnerabilidades y liberar valor

Resistencia

Es cierto que «los planes mejor trazados de ratones y hombres a menudo se tuercen». Independientemente de lo bien que planifique su proyecto de desarrollo, está casi garantizado que algo le obligará a cambiar o pivotar inesperadamente en algún momento del SDLC. Los clientes cambian de opinión, los requisitos empresariales cambian, las condiciones del mercado evolucionan y surgen problemas inesperados.

La mentalidad DevOps promueve la resiliencia, la capacidad de adaptarse a estos cambios sobre la marcha sin grandes retrasos u otros dolores de cabeza. La resiliencia se consigue mediante procesos de desarrollo ágiles, como dividir los proyectos en pequeñas cargas de trabajo iterativas y acortar los bucles de retroalimentación entre usuarios finales, control de calidad, desarrolladores e ingenieros de operaciones.

Colaboración

La metodología DevOps se fundó con el deseo de derribar las barreras entre los distintos equipos que participan en un proyecto de desarrollo: desarrolladores, administradores de sistemas, control de calidad, personal de asistencia, etc. Este estilo de colaboración crea un SDLC más ágil porque elimina muchos de los factores que causan cuellos de botella y fricciones entre los equipos – por ejemplo, los administradores de sistemas saben exactamente qué, cuándo y por qué necesitan aprovisionar entornos para los desarrolladores, lo que garantiza que esos desarrolladores obtengan los recursos exactos que necesitan a tiempo sin preocuparse por retrasos o falta de comunicación. Y es de esperar que los administradores de sistemas utilicen Infrastructure as Code (por ejemplo, Terraform) para aprovisionar esos entornos. Esto permite a los desarrolladores dar su opinión a través de PRs (pull requests) para que Ops y Dev puedan colaborar en las necesidades de la empresa.

Según la encuesta DevOps 2020 de Atlassian, la colaboración es a menudo el principio DevOps más difícil de aceptar para la alta dirección, ya que los ejecutivos son más propensos a dar prioridad a los logros individuales por encima de todos los demás valores. Esto crea un enorme obstáculo para las organizaciones que intentan cambiar su cultura corporativa para dar prioridad a la colaboración constante, que es fundamental para el éxito de DevOps.

Relacionado:  Soluciones ciberseguridad: las mejores opciones en el mercado

Puede resultar más sencillo implantar primero herramientas y procesos de colaboración en este ámbito, antes de cambiar realmente la cultura. Una vez que los ejecutivos vean los resultados reales de un equipo DevOps más unificado y racionalizado, es más probable que acepten plenamente su cambio de cultura. Supongamos que la automatización y el control de versiones permiten a los miembros del equipo trabajar simultáneamente en el mismo código base, lo que conduce a lanzamientos más rápidos y clientes más satisfechos. En ese caso, los ejecutivos no podrán ignorar los beneficios empresariales de una cultura colaborativa.

Mejora continua

Uno de los aspectos más aterradores pero más emocionantes del viaje DevOps es que nunca termina. Adoptar la mentalidad DevOps significa buscar constantemente formas de mejorar la visibilidad, la calidad, la velocidad, la resistencia y la colaboración. Eso significa que con cada iteración, debe recopilar métricas DevOps para que pueda identificar oportunidades para optimizar y garantizar que sus procesos y productos están mejorando progresivamente.

Algunos ejemplos de métricas DevOps e indicadores clave de rendimiento (KPI) a los que debe prestar atención incluyen:

  • La rapidez con la que eres capaz de liberar software.
  • Frecuencia con la que publica software.
  • Cuántos defectos se notifican.
  • Cuánto tiempo se tarda en solucionar los fallos y otros problemas.
  • Cuánto tiempo se tarda en obtener una rentabilidad de las nuevas versiones.

Esta mejora continua también debe extenderse a las personas de su organización DevOps. Los miembros del equipo necesitan información sobre su rendimiento y apoyo para alcanzar sus objetivos profesionales. Si las personas tienen pruebas tangibles de que sus conocimientos y habilidades están progresando, tendrán una mayor motivación para seguir mejorando la calidad de su trabajo, lo que conducirá a un mejor producto final.

Publicaciones Similares