DevOps, la necesidad del cambio

 

Seguro que habéis escuchado en diferentes foros hablar acerca de DevOps y de los beneficios que aporta esta metodología al desarrollo de software. Pero como siempre que llega una nueva tendencia, una de las dudas que nos surgen es si las empresas apostarán por su implantación. DevOps, acrónimo inglés de Development & Operations, es una metodología que está revolucionando el modo de desarrollar el software, no solo a nivel tecnológico sino a nivel organizativo, ya que se centra en la colaboración y comunicación de las personas de las diferentes áreas que están implicadas o comprometidas con el desarrollo del software. Entre todos cubren el ciclo completo del software, y proporcionan procesos más rápidos y fiables y de mayor calidad.

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

Adaptarse a las necesidades del mercado
El sector seguros demanda productos de manera inmediata para dar respuesta a las necesidades de los clientes, por lo que la competencia entre las empresas del sector no solo se basa en ofrecer el mejor producto al mejor precio, sino en ofrecer lo que requiere el cliente de forma rápida y eficaz. Es por ello que muchas empresas llevan algunos años apostando por el uso de metodologías ágiles en sus equipos de desarrollo, pero tras la experiencia adquirida gracias a poder participar en estos equipos, creo que esto no es suficiente, y es necesario dar un paso más a nivel organizativo para mejorar dos puntos que se repiten en la mayoría de los proyectos:

 

  • La existencia de silos de los diferentes departamentos que participan en la definición y ejecución de los proyectos hacen que cada uno de ellos vele por sus prioridades, haciendo mínimo uso de la comunicación y colaboración entre ellos. Esta situación provoca que el Time to Market sea elevado, ya que en ocasiones nos encontramos que el equipo de desarrollo trabaja a partir de unos requisitos definidos por el departamento de operaciones, pero cuando se entrega el producto desarrollado y entra en acción el departamento de operaciones para validarlo, éste se encuentra que el producto no se adapta a las necesidades por una mala definición o una mala comprensión de la definición inicial, lo que implica volver a realizar desarrollos.
  • Aún es elevado el número de procesos manuales que se realizan para llevar a cabo las tareas de Testing y despliegue, lo que genera una gran inversión de tiempo para realizar dichas tareas, con altas probabilidades de cometer errores humanos. Como estas tareas manuales requieren de mucho tiempo, se llega a la decisión de minimizar el número de despliegues de los nuevos desarrollos; esto hace que el tiempo de respuesta a las necesidades de negocio no sea óptimo.

 

Cambio cultural
A la hora de implantar DevOps, nos encontramos en primer lugar con la necesidad de afrontar un importante cambio cultural. El modelo organizativo tradicional que estamos acostumbrados a ver, organiza a las personas implicadas en el desarrollo del software por especialidades: equipo de desarrollo, equipo de calidad y equipo de operaciones. Esta forma de estructura hace que cada equipo esté orientado a una parte de la cadena de valor, tenga sus propias prioridades debido a los silos existentes, y existan dependencias de unos equipos con otros para abordar ciertas tareas.

 

DevOps propone tener una estructura integrada, donde el equipo esté compuesto por personas de diferentes especialidades y todo el equipo esté guiado por un mismo propósito: orientación al cliente final y flexibilidad a realizar ajustes a las necesidades, de esta forma estructurar así los equipos nos aporta las siguientes ventajas:

  • Equipos guiados por un único propósito.
  • Organización más simple orientada al negocio.
  • Equipos integrados de extremo a extremo, no “coordinado”.
  • Autonomía a nivel de componentes tecnológicos.
  • Autonomía en la toma de decisiones.
  • Todo el equipo aporta en la mejora y difusión de conocimiento.

Para alcanzar esta estructura de equipos integrados, es necesario enfrentarse a un cambio cultural importante, que vele por alcanzar los siguientes valores a todos los niveles: colaboración, transparencia, confianza y motivación

Automatización de procesos
La automatización juega un papel fundamental a la hora de asegurar la calidad en los procesos de despliegue del software. Por ello, es importante automatizar al máximo el proceso de construcción, pruebas y despliegue, en primer lugar para conseguir procesos re utilizables que minimicen las incidencias generadas, y en segundo lugar para incrementar la frecuencia de despliegue de nuevas versiones del producto, pasando así de realizar despliegues cada dos semanas, a conseguir liberar nuevas versiones del producto de forma diaria.
La combinación del cambio cultural, con la automatización de los procesos aporta una serie de beneficios al negocio:
  • Reducción del Time-to-Market.
  • Rentabilidad más rápida del software desarrollado.
  • Menor coste al reducirse recursos dedicados y horas de trabajo.
  • Mayor seguridad a la hora de introducir cambios.
  • Despliegues más sencillos sin necesidad de tener conocimientos técnicos.

 

Implantar DevOps es una carrera de fondo, ya que nos enfrentamos a la eliminación de los silos existentes en la empresa durante años, al uso de nuevas herramientas y a la automatización de procesos que ya existen, pero los beneficios que aporta a la hora de generar software de calidad en menor tiempo repercute directamente en el negocio y en la satisfacción de los clientes.
**Atribución de imagen 1 : Kharnagy (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons

Graduada en Ingeniería del Software e Ingeniera en Informática de Sistemas con perfil orientado a la ingeniería de proyectos y amplia experiencia en el sector seguros, disfruto trabajar en equipo para indagar y aplicar diferentes metodologías de trabajo en función de las necesidades de los clientes y los equipos de trabajo. Actualmente soy Technical Account Manager en Future Space.