¿Qué es DevOps?

DevOps

¿Qué sistema de gestión necesita su empresa?

DevOps no es un producto o una tecnología. Es un conjunto de prácticas que consolida en un único proceso de manera continua las funciones que frecuentemente se han trabajado de forma separada: desarrollo de software y operaciones de TI.

Según Gartner, este concepto nació de la necesidad de mejorar la agilidad en la prestación de servicios TI y está encontrando el apalancamiento inicial dentro de muchos proveedores de servicios e infraestructura en la nube a nivel global.

Hay muchas definiciones de DevOps. Sin embargo, la idea de base detrás de todas ellas es la misma: la de una organización alineada e integrada que facilita la aceleración del ciclo de vida de las aplicaciones.

DevOps se sustenta en la filosofía del Manifiesto Ágil, que hace hincapié en las personas (y la cultura) y trata de mejorar la colaboración y cooperación entre operaciones y los equipos de desarrollo. Los implementadores de DevOps tratan de aprovechar las herramientas tecnológicas, especialmente de automatización, para entregar una infraestructura cada vez más programable y dinámica, desde una perspectiva del ciclo de vida de software.DevOps

Claves de DevOps

DevOps es un enfoque que promueve la colaboración entre líneas de negocio, desarrollo y operaciones de TI. Es una funcionalidad empresarial que habilita la entrega continua, el despliegue continuo y la supervisión continua de aplicaciones. Reduce el tiempo necesario para tratar el feedback de los clientes. El desarrollo y las operaciones, e incluso las pruebas, antes se organizaban en silos. DevOps las reúne para mejorar la agilidad.

  • Desarrolladores, testers y especialistas en operaciones trabajan en colaboración mediante las herramientas compartidas de DevOps.
  • Facilita la entrega continua de software gracias a la realización de pruebas en colaboración y la supervisión continua de los entornos de desarrollo, integración y transferencia.
  • Corrige desalineaciones de personas y objetivos creando vínculos más cercanos entre desarrolladores y operaciones.
  • Las herramientas facilitan la gestión de releases, el suministro de la infraestructura, la orquestación, la supervisión, la inclusión en contenedores, la virtualización y la automatización.
  • Incorpora el feedback de los clientes en el proceso de desarrollo para acelerar la respuesta a errores y mejoras.

Implementación de DevOps

Según, los principios de implementación de DevOps se resumen, en:

Entregar y validar pequeños incrementos (cambios)

Entregar y validar pequeños incrementos de valor empresarial resulta en ciclos de retroalimentación más cortos, que a su vez proporcionan un pronto retorno de la inversión, con la información oportuna para conducir mayores inversiones.

Métricas relacionadas: tamaño promedio de la funcionalidad o capacidad entregada (puede ser esfuerzo o “puntos”) y tiempo del ciclo de desarrollo.

Optimizar los flujos de trabajo

Optimizar los flujos de trabajo en curso, para evitar el desperdicio “waste” según la teoría de Lean. Con ello, se entrega un mayor valor a un menor costo. Se requiere entonces reducir los cuellos de botella donde el trabajo se realiza por colas y racionalizar las etapas del proceso. Algunas acciones podrían ser: reducir el número de actividades del proceso al pasar de un modelo en cascada a un modelo de desarrollo ágil; gestionar el trabajo cotidiano para evitar la pérdida de tiempo con el cambio de un contexto a otro; limitar el tamaño de las colas de trabajo para reducir al mínimo los tiempos de espera; automatizar las pruebas y despliegues de los sistemas; balancear recursos (desarrolladores vs testers vs operaciones).

Métricas relacionadas: cantidad máxima de trabajo por ciclo, productividad, tiempo por requerimiento en todas sus etapas y tiempo de espera en cada etapa del proceso.

Dirigir para optimizar el valor entregado

Mientras un trabajo esté en curso, las prioridades pueden cambiar, y el esfuerzo debe ser redirigido a maximizar valor para el negocio. Los retrasos en las entregas, cambios en los requisitos, la prioridad o plan de delivery, ponen aún más presión sobre el sistema. Para maximizar el valor de negocio entregado, se tiene que manejar con eficacia la compleja relación entre la capacidad empresarial y los recursos que entregan esa capacidad. Como principio general, se busca ordenar primero las tareas de mayor riesgo y bajo costo, entregando el máximo valor al menor costo, mientras que se mitigan los riesgos clave desde el principio. Para ello, se debe considerar la introducción de un marco de medición, de forma que se tenga la información necesaria para hacer cambios y para determinar si los cambios tienen el efecto deseado.

Métricas relacionadas: tiempo de reacción al cambio.

DevOps: un modelo de desarrollo de productos digitales

Como conclusión, quedémonos con una definición simple de DevOps con la que todos podamos estar de acuerdo: DevOps es una metodología de desarrollo software basada en la integración entre desarrolladores y administradores de sistemas, que permite que los desarrolladores puedan enfocarse sólo en desarrollar y puedan desplegar su código en segundos.

DevOps es especialmente útil en el nuevo entorno de la transformación digital y el desarrollo de productos digitales, para los que el usuario final y/o el cliente interno de negocio demanda TTM (time-to-market), más flexibilidad, más calidad, menos coste y una altísima frecuencia de releases.

Fuentes: Universidad EAFIT, Escuela de administración, Sergio Camilo Gaona Bautista / Paradigma Digital.com.

Adaptado por la división consultoría de EvaluandoSoftware.com

¿Qué sistema de gestión necesita su empresa?