El ritmo de cambio de la última década ha despertado un enorme interés en DevOps. Todo tipo de organizaciones lo han implementado, o lo están haciendo en estos momentos, para satisfacer el deseo insaciable de nuevas aplicaciones y funcionalidades por parte de sus clientes. De hecho, DevOps tiene un papel esencial en la transformación digital de las compañías, desde la identificación de patrones hasta el descubrimiento de nuevas fuentes de ingresos. Sin él hay escasas posibilidades de avanzar en la transformación digital.

Fruto tanto de nuestra propia experiencia en el uso de DevOps, como de la adquirida al trabajar con nuestros clientes, hemos identificado una serie de potenciales escollos que pueden llegar a complicar este viaje.

1.- Compromiso y apoyo de la dirección

No revelamos nada nuevo. Cualquier iniciativa que cuente con el apoyo del cuadro directivo tiene más posibilidades de éxito, y esta realidad es especialmente evidente cuando tomamos el camino DevOps. Asegurar este apoyo es tan vital como comunicar claramente qué es DevOps, compartir sus claves como estrategia para ser más competitivos y realizar una definición clara de las expectativas.

Comunicar los múltiples beneficios de DevOps es mucho más sencillo cuando se utilizan ejemplos reales que muestran su enorme capacidad, no solo para incrementar la productividad, sino también para optimizar el consumo de recursos asociado.

2.- Resistencia al cambio

En este camino es común encontrar personas en los equipos que se sienten más cómodas con la antigua forma de hacer las cosas. Hay que involucrarlas activamente, explicarles y mostrarles, nuevamente de forma práctica y con un foco específico en la entrega incremental, cómo DevOps simplifica el trabajo y permite aportar valor a los clientes más rápidamente.

Todos los empleados deben estar motivados para generar y desarrollar ideas, y evitar que existan barreras

Hay que asegurar que todos los empleados están motivados para generar y desarrollar ideas, y evitar que existan barreras. En este ejercicio de generación de interés, ilusión, adherencia y compromiso desempeñan un papel fundamental los líderes de departamento. También es vital desarrollar programas de formación y organizar reuniones periódicas con los equipos para promover la cultura de innovación propia de DevOps.

3.- Prevalencia de los métodos en cascada

Cuando la entrega de software se ha realizado durante muchos años siguiendo una metodología determinada no es extraño que prevalezca y que los profesionales se aferren a ella. Es lo que puede suceder con el desarrollo en cascada o waterfall.

No podemos negar que esta metodología resulta apropiada en determinadas situaciones, por ejemplo, cuando los clientes quieren contar con un mapa claro de producto para un determinado periodo. Pero el mundo actual se mueve a una velocidad diferente y la capacidad para entregar software más rápido y de mayor calidad es uno de los principales músculos para competir.

4.- Entender el éxito como la perfección

Aunque es posible implementar muchas funciones y capacidades, es mejor añadirlas de forma progresiva para acelerar la entrega y elevar la calidad. Este enfoque es crítico. DevOps otorga la misma importancia a la velocidad que a la calidad. El objetivo del viaje debe ser progresar, no buscar la perfección. Las pruebas automatizadas son un buen ejemplo y también un pilar de la empresa autónoma digital.

Solo es posible moverse a la velocidad que soporta el eslabón más lento de la cadena

Tampoco debemos olvidar que solo es posible moverse a la velocidad que soporta el eslabón más lento de la cadena, y que con DevOps también el área de operaciones ayuda a imprimir velocidad, eficiencia y fiabilidad a la entrega de código y la automatización del despliegue.

5.- Automatización de pruebas

Con independencia de la plataforma, la automatización de las pruebas es vital. Según una encuesta de Vanson Bourne, el 90% de los responsables de desarrollo de aplicaciones la valora como el factor más importante. Por otro lado, el 80% de estos profesionales considera inevitable producir código incorrecto a menos que puedan automatizar más casos de prueba.

Realizar pruebas automatizadas en todas las plataformas, y en todas las etapas, es fundamental para evitar que llegue a producción código incorrecto.