Comparte:
Cloud
8 de mayo de 2018

Qué significa “equivócate rápido” en DevOps

Qué significa “equivócate rápido” en DevOps

Qué significa “equivócate rápido” en DevOps

Escrito por , 8/05/2018

Hace unos meses Mercedes Núñez nos contaba en este blog la anécdota de que la chef Cristina Oria se confundió al preparar un foie mi cuit a los tres vinos y, como resultado, consiguió cocinar el mejor foie del mundo…

Algunas casualidades como ésta, que terminan siendo geniales, ya forman parte de los anecdotarios de la gestión de empresas. Son casos como el de los post-it, en el que buscando un pegamento resistente encontraron uno ligero pero reutilizable. O el de las cerillas, cuyo inventor trataba de limpiar por frotamiento un palo en cuyo extremo se había secado el residuo de un explosivo que trataba de perfeccionar, con el resultado que todos conocemos.

Pero existe el riesgo de poder pensar que todos estos aciertos ocasionados por errores son ideas felices que han pasado por delante de las narices de sus descubridores y su único mérito ha sido aprovechar la ocasión. Aunque puede haber algún caso de estos, sin embargo, lo más normal es que los protagonistas se esfuercen para que la inspiración los encuentre trabajando, como decía Pablo Picasso. De esta manera, Cristina Oria siempre busca la mejor materia prima y pone su esfuerzo en someterla a un marinado que dura tres días. En el caso de las cerillas, John Walker se encontró con ellas después de nueve años trabajando en la materia… Y Spencer Silver consiguió encontrar un uso comercial para su pegamento débil ¡después de 22 años! Del caso de la penicilina también escribía un compañero en A un clic de las TIC.

En “La leyenda de la ciudad sin nombre” (Paint your wagon, Joshua Logan, 1969), Lee Marvin interpreta a un granjero arruinado que se marcha al oeste en busca de una nueva vida. Una carreta de su caravana sufre un accidente en el que muere un hombre y otro queda gravemente herido. Ben toma a su cuidado al herido y decide enterrar al fallecido. Comienza a excavar la tumba y… ¡encuentra oro!

En una modalidad de trabajo DevOps es importante empujar estas situaciones. No precisamente forzando los errores, sino agilizando la corrección de los que surjan. Esta afirmación, con la que todos estaremos de acuerdo, puede resultar más polémica si tratamos de profundizar en cómo llevarla a la práctica. Algunos autores recomiendan reducir al mínimo las baterías de pruebas del software para evitar retardos en los plazos de puesta en producción. Personalmente me parece muy arriesgado prescindir de las baterías de pruebas. Es más, mantengo la visión “antigua” de que nunca se prueba demasiado…

Sin embargo, la automatización de pruebas, para la que hoy en día contamos con gran variedad de soluciones software, ofrece la posibilidad de que estas pruebas se puedan ejecutar de manera exhaustiva, pero sin retrasar los despliegues y promociones de los nuevos desarrollos. No es que me haya convertido en David Copperfield o en el Mago Pop… El “truco” es tan sencillo como que todos los tests automatizados se ejecuten en el entorno de integración diariamente (o con la mayor frecuencia posible), con independencia de si se han registrado nuevos cambios o no. De esta manera, y con independencia de los tests unitarios, el desarrollador puede tener la “temperatura” de su trabajo. Y las promociones y despliegues de los cambios realizados no necesitarán pasar por el trámite de la realización del plan exhaustivo de pruebas, simplemente porque ya las habrán superado, y solo quedarán por realizar las pruebas manuales que no se hayan podido hacer con anterioridad.

Quienes hemos pasado por los trances de cometer y resolver errores en el desarrollo software sabemos que cualquier error necesita dos acciones correctivas. La primera es la rectificación del propio error de programación y la segunda, la corrección de aquellos datos que se puedan haber grabado de forma equivocada o inconsistente. En este escenario, la oportunidad que ofrece DevOps es increíble, toda vez que, si somos capaces de desplegar la versión corregida del software en minutos u horas, en lugar de en días o semanas, el volumen de datos afectados y que necesitarán ser corregidos, resultará mucho menor que si se trabajara con una operativa convencional.

Este efecto positivo incluso se puede reforzar si, en el momento de la detección del error, somos capaces de desplegar la versión anterior del módulo software y hacer una  “marcha atrás” que en realidad es una “marcha adelante” de la versión menos uno.

Por este motivo se está popularizando la expresión “equivócate rápido” al hablar de DevOps. Y me gusta especialmente porque encierra la necesidad de cambiar de mentalidad para poder trabajar de una forma radicalmente nueva: tenemos que perder el miedo a equivocarnos para ser capaces de encontrar y reconocer la oportunidad de lograr grandes aciertos.

La desquiciada película “La leyenda de la ciudad sin nombre” está llena de ejemplos que podría haber utilizado para ilustrar esta situación. Pero quizá el más llamativo sea el “error” que cometió el actor protagonista Lee Marvin, famoso por su papel del villano Liberty Valance, de quien ya hemos hablado en este blog. Marvin tenía una voz ronca y arenosa, poco adecuada para el canto, pero se enrocó en la exigencia de que no se le doblara la voz al interpretar las dos canciones de la película. Y, a pesar de que los productores lograron que se limitara a recitar en una y añadieron todos los coros que pudieron para adornar la otra, la voz poco agraciada de Marvin sobresale y se distingue sin posible confusión. Para sorpresa de todos, del actor el primero, “Wandering star” consiguió situarse como número uno de ventas en el Reino Unido ¡por encima del “Let it be” de los Beatles! Y Lee Marvin pudo presumir de este resultado, ya que fue la primera y última ocasión en la que cantó para una película.

Imagen: Cartel de la película “La leyenda de la ciudad sin nombre” (Paint your wagon, Joshua Logan, 1969)

Sobre el autor

Eduardo Méndez Polo

Eduardo Méndez Polo

Llevo 26 años en este mundo de las TI, con lo que me ha dado tiempo a conocer una gran variedad de tecnologías, metodologías operativas y buenas prácticas. Por suerte (y por ganas) he podido también realizar casi todo tipo de funciones: desarrollo software, gestión de la calidad, despliegues, operaciones, infraestructura, planes técnicos y estratégicos… Los temas más recientes en los que me he visto envuelto han sido cloud computing y DevOps. En mi tiempo libre formo parte del Coro Gospel de Boadilla del Monte, y he dado unos primeros pasos en el complejo mundo del modelismo espacial…
Ver todos sus artículos »