Cuando la sonda espacial Mars Climate Orbiter de la NASA llegó al planeta rojo en septiembre de 1999, miles de ingenieros y científicos de todo el mundo comenzaron a anticipar los grandes avances que se podrían alcanzar con el análisis de los datos que la nave debía reunir y enviar a la tierra. El sueño acabó pronto. La nave se achicharró justo en el momento en entrar en contacto con la atmósfera marciana.
La causa no fue un fallo mecánico, sino un simple error de comunicación entre los dos equipos que participaban en el proyecto: los desarrolladores del sistema informático de a bordo eligieron que las mediciones de distancia se llevarían a cabo en kilómetros, mientas que el equipo de control de tierra mandó a la nave instrucciones de navegación en millas. El desajuste provocó que la sonda se acercara mucho más de lo conveniente a la superficie del planeta, provocando su destrucción.
Parece que es imposible que se produzcan fallos de comunicación tan simples en un proyecto de tanta envergadura, pero es algo que ocurre de forma habitual, sobre todo cuando varios equipos están involucrados en el desarrollo del mismo.
En un entorno digital e hiperconectado como el actual, es prácticamente imposible mantener un modelo de trabajo en silos, por lo que una comunicación y colaboración constantes entre equipos, que los mantenga alineados en sus tareas y objetivos, resulta fundamental para asegurar el éxito. De ahí que las metodologías DevOps estén teniendo en estos momentos un gran impacto en todo lo relacionado con el desarrollo de software, al lograr poner a los equipos de desarrollo y operaciones a trabajar juntos con el fin de producir los mejores resultados posibles.
Más que técnica, es comunicación
Hasta la fecha, se ha escrito mucho sobre los aspectos técnicos de DevOps, pero se ha dedicado menos atención a la defensa de las habilidades sociales básicas que hacen que esta cultura sea tan poderosa. Hay que tener claro que las habilidades y los comportamientos básicos para la adopción de DevOps no son técnicos, aunque están estrechamente relacionados con la tecnología.
En primer lugar, DevOps es una cultura que se apoya en la comunidad. Las herramientas DevOps son de código abierto y son mantenidas por un grupo de profesionales que forman parte de una comunidad, por lo que la relación y comunicación entre las personas que intervienen en el proyecto resulta fundamental. Si no se comparten las ideas, si no se contribuye al interés general, entonces, probablemente se esté haciendo mal. DevOps es un proceso inherentemente social, en el que todos deben participar para mantenerlo actualizado.
La colaboración es importante. Si no se derriban las barreras que aíslan a los equipos y si hay algún equipo que se queda atrás o aislado, DevOps nunca tendrá éxito. En DevOps, los detalles importan. Afortunadamente, las herramientas de automatización de DevOps están empezando a reducir el pensamiento opaco y en silos. Para que todo funcione, la colaboración entre los equipos de desarrollo y operación debe ser profunda y arraigada. Debe reflejarse en el ADN de toda la organización.
Da lo mismos si se trata de un gigante tecnológico o de un desarrollador pequeño e independiente con un enfoque más gradual hacia DevOps. Los principios son idénticos para todos. De hecho, los retos culturales pueden llegar a ser mayores para las grandes organizaciones, que tienen sus manos atadas tanto por los sistemas heredados como por sus fórmulas tradicionales a la hora de operar. Implementar DevOps significa cambiar la forma en que las personas y los equipos trabajan en el día a día. Abandonar los malos hábitos nunca es fácil, pero es necesario.
Si una organización se encuentra al comienzo de su viaje a DevOps, es vital contar con personal relevante que desempeñe el papel de coach y que sepa impulsar la nueva metodología desde el principio, así como los necesarios procesos de autoevaluación y mejora constante.
Es conveniente también poner en marcha iniciativas de formación, para que todos los interesados sepan cómo acordar un enfoque viable, como identificar posibles cuellos de botella o cómo replicar el proyecto en el tiempo. También es aconsejable, antes de saltar de lleno a la nueva cultura, probar los nuevos procesos en proyectos que no sean críticos para el negocio, para ir escalando después la iniciativa a lo largo y ancho de la organización.
Además, cualquier estrategia de DevOps que valga la pena debe involucrar a todos los niveles de la empresa, desde el más alto al más bajo. Si no se hace así, no funcionará.
En definitiva, ninguna habilidad técnica salvará del fracaso a un proyecto DevOps si en la organización no existe un comportamiento participativo apropiado y alineado.
Juan Rodríguez
Director general de F5 Networks en España y Portugal