Últimamente se habla mucho de la transformación digital, de cómo las empresas deben evolucionar, dar mejor servicio a los clientes, adaptarse más rápido a sus necesidades y de cómo DevOps resulta fundamental para conseguir tal fin.
Y es que los tiempos han cambiado y las empresas ya no se pueden permitir desarrollar software en cascada, dilatando mucho el tiempo desde que una idea es concebida hasta que los clientes pueden beneficiarse de ella. Es por esto que las metodologías de desarrollo agiles están tomando mucha relevancia, ya que nos permiten entregar software con valor para el cliente de forma iterativa e incremental.

Pero tener equipos de desarrollo ágiles no es lo único que debemos tener en cuenta, ya que no todo es desarrollar software; tenemos que ampliar la visión y contar con otros equipos que nos rodean. Es en este momento cuando toma relevancia DevOps.

La necesidad de DevOps

Tradicionalmente los equipos de desarrollo hemos materializado las necesidades de negocio en aplicaciones software. Una vez terminado el desarrollo, desplegábamos las aplicaciones en producción y a través de otros equipos diferentes las manteníamos funcionando, resolviendo posibles incidencias y gestionando los recursos utilizados por las mismas.
Esto supone que desde los equipos de desarrollo enfocamos las necesidades de negocio y centramos nuestro esfuerzo en beneficiar al cliente elaborando y modificando aplicaciones para ofrecer una funcionalidad determinada.

Por otro lado, desde los equipos de operaciones centramos nuestro esfuerzo en beneficiar al cliente manteniendo la aplicación levantada y con un óptimo rendimiento.
Aunque ambas partes ofrezcamos lo mejor de nosotros mismos para enfocarnos en el cliente, cada una estamos atendiendo necesidades diferentes, cuando el objetivo es el mismo: “ofrecer al cliente un software de calidad con el mejor servicio y rendimiento”.

Resulta necesario converger ambos puntos de vista. Cuando surge una idea y hay que desarrollar software, tenemos que tener en cuenta cómo vamos a diseñar las pantallas, como vamos a modelar los datos, como vamos a persistirlos, que reglas de negocio implementaremos…, y también como la vamos a desplegar, en qué tipo de máquinas, cuáles serán los protocolos de actuación en caso de contingencia…. De este modo conseguiremos este software de calidad y manteniendo un servicio adecuado, habiéndonos centrado de forma unificada en beneficiar al cliente.

Entonces, ¿Qué es DevOps?

DevOps no es un producto, ni un estándar, ni un framework. DevOps es una forma de trabajar, es una manera diferente de pensar y de establecer relación entre personas especializadas en diferentes ámbitos.
En sentido literal de la palabra, DevOps es la concatenación de “development” y “operations”. Es decir, se trata de unificar el desarrollo de las aplicaciones con el despliegue y mantenimiento diario de las mismas.


devops

Se trata en definitiva de crear equipos de alto rendimiento, multidisciplinares, con capacidad y responsabilidad de principio a fin para atender las necesidades de los clientes desde que surge la idea de negocio hasta que la aplicación está dando servicio.

Los beneficios de DevOps

El hecho de que estos equipos de alto rendimiento tengan responsabilidad de principio a fin, implica que no dependan de otros para tomar decisiones y puedan entregar software de calidad de forma más eficiente.
Estos equipos, además de diseñar software, desarrollarlo y testearlo, lo despliegan, lo operan, lo monitorizan y trabajan en una mejora continua de la misma, definiendo planes de acción referentes tanto a la aplicación (cambios en el comportamiento, experiencia de usuario…) como a los procesos que la rodean (automatizaciones de despliegues, de procedimientos ante incidencias…)


devops2

La adopción de DevOps por parte de las empresas

Aunque pueda parecer sencilla la teoría, llevamos mucho tiempo trabajando de la misma forma e integrar estos equipos diferentes y romper los silos en los que hemos trabajado durante tantos años, no es sencillo.
Ya no vale pensar en “mi aplicación corriendo en tu máquina” ni en “tu aplicación corriendo en mi máquina”. Ahora toca cambiar el chip y pensar en “nuestro cliente”, que “utiliza nuestra aplicación que corre en nuestra máquina”.


devops3

Adoptar DevOps implica un cambio cultural, un cambio en la forma de pensar. Es el reto más importante y el primero que tenemos que abordar.