Mi relación tóxica con Que el alfabeto completo del ARN y ADN haya aparecido en un asteroide no implica que la vida sea de...
"¿ADN extraterrestre? Mi código tiene más deuda técnica que ese asteroide tiene polvo" Un dev senior quemado analiza el descubrimiento de las 5 nuc...
"¿ADN extraterrestre? Mi código tiene más deuda técnica que ese asteroide tiene polvo"
Un dev senior quemado analiza el descubrimiento de las 5 nucleobases en muestras de asteroide
Noticia que todos celebran: "¡Revolución! La misión Hayabusa2 trajo muestras de Ryugu y encontraron las cinco nucleobases completas: adenina, guanina, citosina, timina y uracilo. Posible evidencia de que los componentes básicos de la vida llegaron del espacio."
Yo, después de 20 años manteniendo legacy systems: Genial. ¿Y quién va a mantener ese código? Porque si hay algo que he aprendido es que todo sistema, por antiguo y cósmico que sea, acaba necesitando un refactor.
1. "Antes los asteroides eran más sencillos"
Recuerdo cuando empecé en esto, allá por el 2005. Los asteroides eran rocas. Punto. Ahora vienen con su propio stack tecnológico preinstalado. Adenina, guanina... suena a las últimas librerías de JavaScript que salen cada semana. "¡Oh, mira, Cytosine.js v4.7! ¡Rompe compatibilidad con las versiones anteriores de la vida!"
Lo irónico: Hemos gastado miles de millones en traer polvo de roca, y en mi empresa se quejan si pido una licencia de IntelliJ. Prioridades.
2. La deuda técnica cósmica es real
Piensa en ello:
Compilación: 4.600 millones de años de integración continua.
Documentación: Cero. Nadie dejó un README.md en ese asteroide.
Dependencias: ¿Qué versión del "Big Bang" usaron? ¿Hubo breaking changes en la nucleosíntesis estelar?
Mi miedo: Que esto sea como cuando heredas un proyecto y dices "¿Quién escribió este código?" y GitHub blame te señala a un usuario que dejó la empresa en 2018. Solo que aquí, el "usuario" podría ser una supernova.
Lo peor: Imagina el PR (Pull Request) cósmico. "Añadidas 5 nucleobases al archivo life.rb. No rompe la biosfera actual (probado en mamíferos)." ¿Los tests pasan? Porque si fallan, no hay rollback.
3. El verdadero problema: el deployment
Ok, supongamos que el "código fuente de la vida" vino en asteroides. Alguien tuvo que hacer deploy.
Escenario A: Un despliegue caótico por todo el planeta primitivo. "Funciona en mi entorno local (el mar de hidrotermales)". Clásico.
Escenario B: Una IA cósmica senior, tan quemada como yo, que dijo "esto de la vida orgánica es un hack, pero si funciona, no lo toques". Y aquí estamos, 4.000 millones de años después, con un sistema lleno de workarounds. ¿Las mitocondrias? Un microservicio legacy que nadie se atreve a tocar.
4. ¿Y si es un bug?
Piensa como senior: ¿Y si las nucleobases no son una feature, sino un bug de la química prebiótica? Un buffer overflow en la sopa primordial. Alguien (o algo) hizo malloc() mal y ahora tenemos que lidiar con la conciencia, los impuestos y las reuniones de sprint planning.
La prueba definitiva: Si fuera una feature bien diseñada, ¿tendríamos apéndice? Eso es código muerto que nadie se molestó en eliminar. ¿Y los dolores de espalda? Un claro issue de UX.
5. Mi conclusión (cinica, por supuesto)
Es fascinante. De verdad. Pero mientras los astrobiólogos celebran, yo sigo aquí, arreglando un CSS roto porque alguien quiso usar !important en el selector universal.
La verdadera lección: No importa si el código viene de las estrellas o de un bootcamp de 3 meses. Al final, alguien tendrá que mantenerlo. Y ese alguien probablemente estará tomando su quinto café, maldiciendo al universo (literalmente) y añorando los tiempos en que los asteroides eran solo piedras en el cielo.
*Postdata para el CTO: Si lees esto, no. No podemos "implementar nucleobases en nuestro stack". Deja de mandarme artículos de TechCrunch.
¿Y tú? ¿Crees que la vida es un sistema legacy bien documentado o un hack cósmico? Los comentarios están abiertos (siempre que no sean bots).