Velocidad, urgencia y reliability. Lecciones del Fujisan

Son las 4 de la tarde del 8 de Septiembre de 2024, el día está luminoso y despejado, a mi espalda dejo el majestuoso cráter del Monte Fuji, y vuelvo al borde. Desde sus 3776 metros podemos contemplar kilómetros y kilómetros de Japón en todas direcciones. Hemos hecho cumbre tras un buen par de horas de ascensión, algunos tés calientes e incluso unos M&M´s comprados a unos 2.800 metros. Cada montaña es un mundo y el Fuji no es como el Teide. Todas son majestuosas, y el Fujisan no lo es poco: una atalaya imponente y visible, en un día bien despejado incluso desde Chiba, como tuvimos la suerte de comprobar unos días después. Estoy contento, pletórico, es mi segundo pico de más de tres mil. Entre toda la alegría, los paisajes, mis redundantes y frecuentes “Esto no es como el Teide, ¿eh? Pero se parece mucho al Chinyero” desde hace como una hora hay algo que me ha ido reconcomiendo cada vez un poco más, pero aún no lo sé bien.
Hemos hecho cumbre junto a una pareja de canadienses francófonos. Nos hemos cruzado con mucha gente, incluyendo un grupo de estudiantes japoneses muy muy motivados que animaban a todo el mundo durante el ascenso, llevaban hachimaki y todo. Y aunque yo chapurreo algo de japonés, nos entendimos mejor con los canadienses en inglés y francés. Coincidía más el ritmo de ascenso, el ser gaijin y encima dos lenguajes en común. (Nota: no sé francés, pero es una de las ventajas de que te acompañe una traductora de francés).
Y estábamos allí, disfrutando la cima, sacando fotos y esas cosas. No puedo evitarlo, mi mente ya está en el siguiente milestone, el regreso: Desde la quinta estación del Fuji Subaru, por dónde hemos venido siguiendo el Yoshida trail y vamos a volver… ¿cuándo sale el último バス (bus)? Son las cuatro y algo, me recorre un escalofrío premonitorio. Saco el móvil y compruebo la foto que hice al horario:

Uy, vale. Que la última sale a las 18:45. Pues tenemos unas dos horas para hacer un descenso cuya subida nos llevó 5 horas y algo. “Not great, not terrible”. Cuando lo digo sueno un poco preocupado. Además en la latitud del Fujisan, no es como en Canarias, dónde en Septiembre tienes luz solar hasta bien pasadas las 8, aquí estamos hablando de oscuridad. Así que de pronto me invade la prisa. No llegar a tiempo implica… bueno no sabemos bien que demonios implica, ¿Hay タクシー (taxis) allí en la 5th Station? Y si los hay, ¿pillaremos uno? No eran precisamente cuatro o cinco senderistas los que nos cruzamos en el sendero de subida. Se lo contamos a los canadienses y, tras disfrutar un momento más del axis mundi de Japón, nos preparamos para el descenso. Con los canadienses nos prometemos que, de no llegar a tiempo, cogemos juntos un taxi para repartir el coste hasta Fujiyoshida.
Y empezamos el descenso. ¿He dicho ya que el Fujisan no es como el Teide? Es sobre todo grava volcánica oscura y no muy estable, lo que nosotros llamamos picón. No es el tipo de terreno para bajar sin cuidado, a no ser que quieras caerte y bajar muy muy rápido.
La necesidad de velocidad
Necesitabamos ir rápido. Necesitabamos ir rápido porque había una deadline clara y la única manera de cumplirla era acelerar. Y aquí hablo del Fuji pero también de cualquiera de la mayoría de las releases de un software. De cualquier cambio que Producto considera necesario: Dev tiene que correr a implementar y Ops a deployar. No es prisa porque sí, no es correr por correr. Hay una deadline que cumplir. Y normalmente no es arbitraria, fallar tiene consecuencias claras: pagar el sobrecoste de un taxi, o quedarse allí y no saber ni como volver al hotel, en el caso del Fujisan; aumento de los costes, daño reputacional, churn de clientes en el caso de una release que no llega, o un hotfix que no se deploya a tiempo, o un cambio de configuración que llega tarde.
Así que había que acelerar, había que correr. Porque el riesgo de no hacerlo estaba bastante claro y no era menor. Y no hablo sólo de perderme un buen baño en el agua caliente, muy caliente, del onsen en el Hotel, o la cena… que les prometo que pesaba más de lo que pueden creer. La cosa fue que al dar los primeros pasos en aquella grava inestable, me di cuenta de que no iba a servir acelerar a cualquier precio. Un resbalón y la menor de las consecuencias era una caída humillante o una torcedura de tobillo. Podía ser peor, hacer el tonto a tres mil metros puede acabar con una evacuación en helicóptero, carísima, y unas vacaciones jodidas. Podemos pasar de un incidente menor (perderse la cena) a un incidente de alta severidad (partirse una pierna y adiós vacaciones).
Y para una deadline en SRE y DevOps también hay riesgos: un cambio poco testeado puede tener un blast-radius inesperado, una release no testeada por completo puede acabar introduciendo un bug más grave del que pretendía corregir. Si nos centramos en cumplir una deadline a cualquier precio, podemos perder el foco en algo importante y clave en la reliability: el precio de cumplirla mal nos puede salir bastante más alto que el de no cumplirla.
Así que en el descenso del Fujisan, el proceso estaba claro. Vamos lo más rápido que podamos, pero estando seguros, y si tenemos que decirle que no a esa deadline para no salir de allí en muletas, perfecto. Fuimos a buen ritmo, a bastante buen ritmo, pero siempre en uno en el que no ibamos resbalando y derrapando por la gravilla. La niebla empezó a subir y lamer las faldas de la montaña mientras el cielo oscurecía, pero en lugar de preguntarnos cuánto nos quedaba, nos limitamos a seguir poniendo un pie delante del otro con seguridad, bien afianzado, y sin rompernos las rodillas de agotamiento también, que el ir a destajo en montaña es otra manera de acabar accidentado. Eran como las 18:30 cuando llegamos a la cabecera de la 5th Station del sendero Fuji Subaru, allí era ya una pista ancha de tierra muy recta y sin bajada. Las rodillas me dolían, ya que les había dado caña, ¡pero estábamos allí!
… Y había una hilera de unos cincuenta taxistas, y otros tantos más haciendo cola, en la cabecera, a ambos lados del camino, esperando muy respetuosamente. Nos vieron llegar, se inclinaron en un saludo, sonrieron un poco y siguieron esperando mientras pasábamos de largo. No quiero ofenderles, pero confieso que pensé en buitres. Así que llegamos, cumplimos el deadline y nos tocó esperar a las 18:45, unos 10 minutos sentados en la penumbra comiendo una barrita energética y sonriendo. Y entonces me reí aún más, porque de no haber llegado a tiempo, el problema no habría sido encontrar un taxi, habría sido decidir con cuál de todos nos ibámos.
Ve rápido, pero seguro
Y es algo que aplico y veo en SRE, siempre que puedo. La sensación de urgencia y casi catastrofismo de tener una deadline cerca no puede hacernos perder la cabeza fría. Ir más rápido puede parecer lo correcto pero si acabas con una pierna rota has hecho el idiota. Ir tan rápido como para haber estado realmente a punto de partirte una pierna o agotarte, aún si no pasó, para darte cuenta de que el fallar por un poco esa deadline y hacer las cosas de manera más segura tampoco habría tenido el impacto catastrófico, te hace sentir también como ese idiota. O debería. En la montaña, como en el Site Reliability Engineering, no se trata de velocidad, se trata de una tupla (velocidad, seguridad). Ir a la velocidad máxima segura es lo más inteligente, y lo único reliable. Tampoco está de más contar con un backup si no se cumple esa deadline. En mi experiencia, la mayoría de deadlines no lo tienen todo de death. Como líderes y gestores de cambio jamás tenemos que ser blockers injustificados, pero sí debemos ser siempre los que tienen la cabeza fría y hacen cálculos realistas de riesgo de operaciones y timing. Así evitamos que nadie acabe con una pierna rota y, encima, tampoco llegue a la deadline.