Cultura

Indiana Jones cumple años: arqueología de código heredado

Mi héroe de pequeño ganaba porque sabía cosas. Jugué La última cruzada en EGA y Maniac Mansion en un monitor verde, resolviendo puzles sin internet, y aquello influyó en mi forma de diagnosticar problemas. Indy es un arqueólogo de sistemas heredados: respeta las trampas y su padre lo documentaba todo.

Hoy, 1 de julio, cumple años Henry Walton Jones Jr. Nació en 1899 en Princeton, Nueva Jersey, hijo del profesor Henry Jones y de Anna. La fecha no sale de las películas: la fijó Las aventuras del joven Indiana Jones, la serie de los noventa, que es donde se puso por escrito la cronología del personaje.

Indiana Jones fue mi héroe de pequeño. No un héroe cualquiera: el héroe correcto. Porque no volaba, no tenía superpoderes y no era especialmente fuerte. Era un señor con estudios, un problema y muy pocas ganas de morirse. Ganaba porque sabía cosas.

Y luego, además, jugué las aventuras gráficas.

Empecé con Indiana Jones y la última cruzada en EGA, dieciséis colores, y antes de eso había estado con Maniac Mansion, que en mi casa se veía en un monitor monocromo verde. Me pasé una parte de la infancia intentando resolver esos puzles sin internet. Sin guías, sin foros, sin vídeos en los que buscar la solución.

Eso último merece una sección propia, porque me marcó más que la película.

Una zanja de excavación arqueológica con las capas de tierra a la vista

Una zanja de excavación: las capas se leen de arriba abajo y ninguna se puede saltar. Foto: Adrian Diack, CC BY-SA 2.0; imagen recortada y disponible bajo la misma licencia.

Resolver puzles sin internet

Hoy te atascas noventa segundos y ya hay alguien explicándotelo en vídeo. Entonces te atascabas semanas.

Y no había alternativa: solo podías pensar. Volver a la habitación anterior, probar el objeto raro con la otra cosa rara, apuntar en un cuaderno qué habías intentado ya, preguntarle a un compañero de clase que tampoco sabía pero había probado cosas distintas.

Lo que aprendí ahí no fue paciencia. Fue método:

  • Que un problema que no cede se ataca cambiando lo que observas, no repitiendo lo mismo con más fuerza.
  • Que conviene anotar lo descartado, porque a la tercera sesión ya no te acuerdas de qué habías probado.
  • Que cuando estás totalmente bloqueado, lo más productivo es irte a otra parte del problema y volver luego con la cabeza fría.
  • Y que a veces la solución no está en la habitación en la que buscas, sino en algo que viste hace dos horas y no registraste.

Es, con muy pocos cambios, cómo depuro hoy. Una parte de mi forma de diagnosticar problemas nació ahí, delante de aquel monitor verde, y no la aprendí en ningún curso: la aprendí porque no había YouTube.

No estoy diciendo que aquello fuera mejor: yo también busco la respuesta en dos minutos cuando tengo un cliente esperando, y hago bien. Pero lo que te ahorras también te lo pierdes, y el rato incómodo era el rato en el que estaba aprendiendo. Si tienes gente joven en el equipo, dales problemas donde atascarse un poco. No mucho. Un poco.

Indiana Jones es arqueólogo de código heredado

Ahora el paralelismo que llevo años queriendo escribir.

El trabajo de Indy, quitando látigo y sombrero, consiste en esto:

  • Entra en sistemas construidos hace siglos por gente que ya no está para preguntarle nada.
  • Sin documentación, o con documentación parcial y en un idioma muerto.
  • Con trampas puestas a propósito por los constructores originales.
  • Y con el encargo de extraer algo valioso sin que se derrumbe todo.

Eso es una migración de un sistema heredado. Con más serpientes, pero es eso.

Y el detalle que lo hace perfecto: Indy no desactiva las trampas. Las respeta. Cuando ve un mecanismo que no entiende, no lo fuerza: observa, prueba con poco peso, mete el ídolo y saca la bolsa de arena. A veces se equivoca —normalmente porque tenía prisa— y entonces echa a correr delante de una bola de piedra que es, y esto es lo bonito, la consecuencia de su propia extracción. Nadie le persigue: el sistema hace lo que se diseñó para hacer cuando alguien coge la pieza.

Cada vez que un equipo toca un sistema antiguo «porque total, esto ya no lo usa nadie» y a la semana explota facturación, yo veo la bola.

Cartel de la película En busca del arca perdida

Cartel de En busca del arca perdida (Paramount, 1981), reproducido a título de cita. Derechos de sus titulares.

El diario del padre

En La última cruzada el objeto crítico no es el Grial: es el diario de Henry Jones padre. Un cuaderno con treinta años de anotaciones, dibujos, referencias cruzadas y avisos.

Toda la película depende de ese cuaderno —los nazis lo quieren más que a Indy—, y hay una escena entera dedicada a que su padre lo había enviado por correo para ponerlo a salvo: una copia de seguridad fuera de sitio hecha en 1938.

Henry padre es el compañero pesado que documenta todo, el que en cada reunión dice «esto ya lo intentamos en 2019 y falló por esto». Y como en la película, ese señor cae mal hasta el día exacto en que salva el proyecto.

La lección concreta, y me da igual repetirme: la documentación que casi siempre falta no es la del cómo, sino la del por qué se decidió así y qué se descartó. Eso no se deduce de ningún sitio y se pierde en cuanto la persona se va.

Ojo, que la otra también hace falta: leyendo el fuente se averigua qué hace una función, no de qué sistemas ajenos depende, quién recibe los correos que envía, qué restricción legal explica ese campo obligatorio o qué pasa si se ejecuta dos veces. Pero cinco líneas de contexto sobre una decisión pueden resultar más útiles que muchas páginas de manual, y cuestan una parte ínfima de lo que cuesta escribirlas.

«Elige sabiamente»

Al final de La última cruzada hay decenas de copas y el malo elige la más espectacular: oro macizo, joyas, evidentemente la de un rey. Bebe y muere. Indy piensa qué clase de persona fue el propietario y elige una copa de barro sin decorar. La de un carpintero.

Es la misma decisión que se toma mal en las conversaciones de arquitectura: la infraestructura para los millones de usuarios que todavía no existen, los microservicios para un catálogo que cabría en una hoja de cálculo, la reescritura completa en el marco de moda para no arreglar tres consultas lentas. La copa de oro parece la respuesta porque es la respuesta a un problema más grande y más glamuroso que el tuyo, y elegirla no es gratis: pagas complejidad todos los días.

La pregunta de Indy sirve para cualquier decisión técnica: ¿qué clase de sistema es este realmente? No cuál te gustaría que fuera.

La letra equivocada

El detalle que me hizo levantarme del sofá, ya de mayor y ya programando. En una de las pruebas hay que atravesar un suelo con letras y pisar solo las que forman el nombre de Dios. Indy empieza a caminar, pisa la J, y el suelo se hunde. Porque en latín, se dice en la película, ese nombre empieza por I.

Eso es un error de transliteración, con consecuencias mortales y en 1938, pero es el mismo bug que llevo veinte años viendo: el nombre con tilde que llega al PDF convertido en un rombo con interrogación, la eñe que se parte en dos símbolos raros porque alguien supuso Latin-1, la comparación que falla porque un lado normaliza los acentos y el otro no.

El mecanismo es idéntico al de la película: el sistema esperaba una representación y tú le diste otra igual de válida. La J y la I eran la misma letra en momentos distintos de la historia. Nadie mintió: había dos convenciones y solo una estaba escrita en el suelo.

Por eso la respuesta a los problemas de texto no es un str_replace con los cinco casos que has visto. UTF-8 de extremo a extremo es la base y es innegociable, pero solo es la base: encima siguen estando la normalización, la collation con la que la base de datos decide si dos cadenas son iguales y la segmentación cuando hay que contar o cortar. Elegir codificación resuelve el almacenamiento; comparar texto es otro problema y se decide aparte.

Indy, por cierto, se salva porque su padre lo había apuntado en el diario. Otra vez el diario.

«Esto pertenece a un museo»

Aquellas aventuras gráficas hoy se pueden jugar, y no por una sola razón: motores libres que reimplementaron los originales, capas de compatibilidad que emulan la máquina desaparecida, reediciones oficiales de quienes tienen los derechos y comunidades que llevan décadas conservando ficheros y documentando formatos. El código nunca fue el problema: lo era la máquina que lo ejecutaba.

Y ese es el punto que menos atención recibe en las empresas. La pregunta no es si tienes el código de la aplicación que encargaste en 2012, sino si podrías levantarla hoy, con su versión de PHP, su base de datos, su sistema operativo y alguien que sepa arrancarla. Si la respuesta es no, tienes el ídolo, pero el templo se cerró.

Feliz cumpleaños, doctor Jones

Ciento veintisiete años del arqueólogo que nos enseñó que el conocimiento es el arma. No la fuerza, no la velocidad, no el presupuesto: saber qué tienes delante y por qué está puesto así.

Y si te atascas, no busques la solución en el primer minuto. Da una vuelta a la habitación. Sin internet se aprendía más despacio y se olvidaba mucho menos.

(Las serpientes las entiendo perfectamente. Todos tenemos nuestra tecnología con la que no queremos estar en la misma sala. La mía cambia según el trimestre.)

Preguntas frecuentes

¿Cuándo nació Indiana Jones?

El 1 de julio de 1899 en Princeton, Nueva Jersey, hijo del profesor de literatura medieval Henry Jones y de Anna Jones. Es un dato de ficción: la cronología del personaje quedó fijada en la serie de televisión Las aventuras del joven Indiana Jones, emitida a partir de 1992, y no en las películas.

¿Qué debe contener un registro de decisiones técnicas?

El motivo de la decisión, las alternativas valoradas y por qué se descartaron, además del contexto y las restricciones vigentes en ese momento. Es la información que no se recupera de ningún sitio cuando quien decidió abandona el proyecto. No sustituye a la documentación funcional y de operación —qué dependencias tiene el sistema, cómo se despliega, quién recibe sus avisos, qué ocurre si un proceso se ejecuta dos veces—, que también hay que escribir: leyendo el código se averigua qué hace una función, no cómo se opera el conjunto. Cinco líneas de contexto sobre una decisión pueden resultar más útiles que muchas páginas de manual, y cuestan bastante menos escribirlas.

¿Cómo se aborda una intervención sobre un sistema heredado?

Comprendiendo antes de modificar: identificar qué hace cada parte, por qué existen los mecanismos que parecen innecesarios y qué dependencias tiene con el resto. Los comportamientos aparentemente absurdos suelen responder a un requisito real que ya nadie recuerda, de modo que eliminarlos sin analizarlos provoca incidencias en áreas no relacionadas aparentemente con el cambio.

¿Cómo se evitan los errores de codificación de caracteres?

Fijando una única codificación, preferentemente UTF-8, en todos los extremos de la cadena: navegador, aplicación, conexión y columnas de la base de datos. Eso resuelve el almacenamiento, pero no todo el problema: comparar y ordenar texto depende además de la forma de normalización elegida y de la collation de la base de datos, y contar o cortar cadenas exige decidir si se cuentan bytes, puntos de código o unidades visibles. Las correcciones puntuales mediante sustitución de caracteres concretos solo resuelven los casos ya observados.

¿Qué significa preservar software y por qué importa a una empresa?

Significa conservar la capacidad de ejecutar un programa, no solo su código fuente: hace falta también el entorno —versiones de lenguaje, base de datos y sistema operativo— y el conocimiento para levantarlo. En el software de consumo esa capacidad se sostiene por varias vías a la vez: motores libres que reimplementan el original, capas de compatibilidad y emulación, reediciones oficiales y comunidades que conservan ficheros y documentan formatos. Una organización que guarda el repositorio de una aplicación de hace más de una década pero no puede ponerla en marcha ha perdido en la práctica ese activo.

Otras noticias

Cultura

Un móvil no puede costar 3.839 euros

En casa Pablo dijo que el iPhone nuevo costaba cuatro mil euros. Respondí que no se flipara. Luego lo comprobé: el tope son 3.839 €. Y detrás de la cifra aparecen la escalera del almacenamiento, la subida de modelos anteriores y el salto de «tengo un móvil» a «tengo un iPhone».

Leer más →

El blog, día a día

58 artículos publicados 2 ene 2026 — 1 ene 2027

¿Te ha resultado útil o quieres comentar algo?

Hablemos →