Primero, imagínalo como una ciudad-estado que debes diseñar y gobernar. Segundo, cultívalo como un organismo creciente que debes nutrir y guiar. Y tercero, ponlo a prueba sin descanso, en virtualidad y en realidad, hasta que puedas razonablemente confiar en él. Entonces tendrás una caja negra que funciona como lo pretendiste, y que comprendes suficientemente, aunque no veas sus entrañas.
He desarrollado esta metodología tras observar el gran poder de programar usando inteligencia artificial y cómo está cambiando el oficio de la programación para siempre. Durante 2025, la I.A. alcanzó finalmente la capacidad de escribir programas completos sin que el maestro humano escribiera una sola línea de código. Sin embargo, estas aplicaciones tienden a ser frágiles y propensas a errores y problemas que se vuelven difíciles o imposibles de resolver. Y la I.A. fácilmente delira y fracasa en alcanzar el fin deseado.
Esta metodología, que llamo "Programación Caja Negra I.A.", pretende resolver estos problemas asegurando que el programa "caja negra" que "simplemente funciona" esté realmente construido usando las mejores prácticas y los más altos estándares de calidad de la ingeniería de software, previniendo cualquier delirio o desempeño absurdo por parte de la IA que lo codifica. Usando esta metodología, es posible construir una aplicación compleja solo con IA, sin tocar el código en sí, y aun así tener la certeza de que la aplicación funciona como fue concebida y no tiene errores.
El programador debe comprender que su deber ahora es dirigir a la IA, del modo en que un ingeniero civil jefe dirigiría a un equipo de ingenieros subordinados, arquitectos y obreros de la construcción. Quedaron atrás los días de pensar en la sintaxis y el código en sí; saber cómo hacerlo ayuda a dirigir a la IA, así como al ingeniero civil jefe le beneficia saber cómo poner ladrillos y cemento, pero el programador ya no necesita escribir el código, así como el jefe nunca realmente toca los ladrillos, ni el cemento, ni material alguno con sus manos.
Sin embargo, esta analogía no es suficiente; hay mucho más que considerar para dominar este oficio, pues una aplicación no es meramente un edificio, es toda una ciudad, compleja e intrincada, que debe fluir, vivir, sobrevivir y crecer. Un habitante típico cree que conoce su ciudad porque puede moverse en ella, lidiar con ella, criticarla, pensar en cómo mejorarla, etc., pero en realidad no conoce todas las calles, todas las casas, todos los parques, todos los pequeños detalles de ella. Nadie los conoce. Y sin embargo, la ciudad fluye y vive. Lo mismo es cierto para el programador, la IA y el programa caja negra que "simplemente funciona".
Un habitante no conoce plenamente la ciudad, pero cree en ella. Cruza la calle creyendo que los semáforos no fallarán, que los coches se detendrán, que el camino no se agrietará de repente, que los puentes no se derrumbarán... Entra en edificios creyendo que las paredes no colapsarán, que las cocinas no explotarán, que el agua de las tuberías no está envenenada... Cree en ella por la experiencia que tiene viviendo en ella, y porque entiende al menos un poco sobre cómo cada una de estas cosas fue hecha y funciona. Y cuanto más experimenta y comprende, más confía. El programador debe hacer lo mismo: cuanto más experimenta y comprende su aplicación, más puede confiar en que realmente funciona correctamente, aunque no la haya construido él mismo.
Pensándolo así, el programador no es un mero ingeniero civil, sino el jefe de todos los ingenieros civiles, arquitectos y obreros que construyen todos los edificios de la ciudad; siendo, al mismo tiempo, el habitante, el inspector jefe de seguridad, el contralor, y el gobernador de la ciudad... una ciudad-estado.
Como Gobernador, él es, y necesita ser, un dictador sagaz, con poder absoluto, pero también enorme sabiduría, para saber cuándo delegar, cuándo dudar, cuándo dejar que las cosas sucedan orgánicamente, y cuándo imponer su firme voluntad. Es, sin embargo, un solo humano, y no puede desperdiciar sus limitadas capacidades cognitivas intentando dirigirlo todo. Solo los asuntos más importantes son dignos de su intervención personal, y la ciudad-estado debe estar diseñada y operada de modo que los asuntos importantes le sean prontamente reportados. Lo que él decida en tales asuntos será hecho, y la ciudad-estado se acomodará y adaptará a su voluntad. Si la ciudad-estado está debidamente ingeniada y gobernada, no solo sobrevivirá, sino que prosperará con esos cambios; de lo contrario, colapsará.
Prima facie, puede resultar intimidante para el programador convertirse en el dictador, pero no debería serlo, porque tiene el poder de la IA para automatizar cada cosa en la ciudad que no requiera su intervención directa, y esta IA es suficientemente capaz de hacerlo mientras sea debidamente domada y controlada por él, el dictador maestro.
La clave para domar a la IA es definir un conjunto claro y estricto de reglas y objetivos que le permita saber qué debe hacer y cómo debe hacerlo. Lo que no se defina será improvisado por la IA; esto es bueno, esto es lo que la hace tan poderosa. Pero él debe dictar cuándo debe improvisar y cuándo no.
Sin embargo, el poder más importante de la IA no es la codificación automatizada, sino sus capacidades explicativas, que pueden hacer posible que el dictador maestro comprenda tanto como necesite la ciudad-estado que construye y gobierna.
Por lo tanto, así como los presidentes y dictadores de la vida real -sin importar cuánto pretendan ser hombres superpodorosos que piensan, diseñan y escriben plenamente todo lo que gobiernan-, el programador tiene la IA para guiarlo en el diseño y la redacción de los documentos fundacionales sobre los cuales la ciudad-estado será construida.
Es aquí donde el programador, a diferencia de los presidentes y dictadores de la vida real, debe usar su inteligencia y creatividad para concebir las estructuras y los algoritmos que garantizarán la elegancia, simplicidad, coherencia y armonía interna de toda la ciudad-estado antes de que un solo ladrillo de código sea colocado. Aquí, en el reino abstracto de su pensamiento, debe imaginar el tráfico en las avenidas y los puentes; las bibliotecas, las escuelas y los archivos; las pruebas de seguridad, las inspecciones y los simulacros; etc.
Debe prevenir el caos antes de que emerja, y eliminar la redundancia y el desperdicio antes de que ocurran. Esta etapa inicial y completamente abstracta muestra cómo el genio de un programador no se mide por la cantidad de código producido, sino por la claridad de su pensamiento. La IA es la ejecutora de visiones, pero las visiones deben ser vistas primero en su mente. He aquí lo que distingue la mente humana de la IA: la imaginación y la voluntad de manipularla creativamente. La IA es un gargantuesco algoritmo estadístico de fuerza bruta, no un espíritu con pensamiento y verdadera agencia; solo recibe entradas y produce salidas; el humano realmente piensa, quiere y siente. El humano está vivo, y conoce sus necesidades y deseos; la IA es solo una herramienta para cumplirlos.
El programador concibe los algoritmos principales, la IA los codifica y los complementa con algoritmos secundarios y derivados. Cuanto más trabaja con la IA, más comprende la ciudad-estado que está construyendo, y más la IA comprende lo que él quiere. Pero la ciudad no puede ser construida en un instante, a menos que la fragilidad y la falsa apariencia sean aceptables; la ciudad tiene que crecer orgánicamente, igual que una planta, comenzar como una semilla y germinar, desarrollar brotes y convertirlos en un tallo y raíces, creciendo época tras época, sustentando cada nueva adición sobre la base sólida que brotó antes.
Durante cada una de estas épocas de crecimiento, el programador se asegurará de mantener a la IA alineada con su objetivo a largo plazo, y podría querer intervenir cuando algo se sienta débil o sospechoso, no mirando el código, sino dialogando con la IA e instruyéndola. El programador no necesita realmente mirar el código; hacerlo es algo parecido a una cirugía en el cuerpo humano: necesita mucha pericia, experiencia y cuidado; es extremadamente peligroso, y las probabilidades de éxito aumentan radicalmente con la ayuda de robots y máquinas.
Estas épocas son cortas; lo que al programador le tomaba días hacer por sí mismo, a la IA le toma minutos.
La IA no es trampa. El programador nunca fue capaz de terminar grandes proyectos solo; siempre fueron equipos los que hicieron posibles las aplicaciones complejas. La IA es ese equipo ahora.
En cuestión de días, a veces horas, la aplicación estará lista. Si se hizo debidamente, habrá pasado una gran parte del tiempo discutiendo y diseñándola en abstracto. Y si quiere saber de verdad si está realmente lista, debe usarla y probarla. Probarla extensivamente, con toda la batería de pruebas que esté disponible: pruebas unitarias, autopruebas, pruebas manuales. Debe usarla en la vida real, y si no en la vida real, usando simuladores, simuladores ad hoc que puede construir él mismo también, junto con la IA. Todo esto calmará el miedo de que la caja negra no se comporte como él quiere, pues lo hará, si él explicitó e insistió suficientemente en sus intenciones para ella.
La IA es, y siempre debe ser, una subordinada, una esclava mecánica sin alma, pero es más eficiente para nosotros tratarla como una amiga sabia y agradable, simplemente porque nunca confiaremos en la caja negra que produce, a menos que creamos que puede hacer la codificación que hasta ahora pensábamos que solo las mentes humanas inteligentes podían hacer. La "inteligencia artificial" no es realmente inteligente, pero la mejor manera de usarla es pretendiendo que lo es, no dogmáticamente, sino críticamente, como hacemos con nuestros pares, quienes creemos que a veces son inteligentes, pero también imperfectos, falibles, pero capaces de aprender y mejorar lo que hacen.
En los años venideros, conforme crezcamos nuestra experiencia usando tan poderosa maquinaria, refinaremos y nos volveremos más sofisticados en el oficio de programar cajas negras, tal como lo hemos hecho con todas las demás tecnologías y oficios. Pero mientras tanto, dado el poco tiempo que hemos tenido con ella, esta es la mejor manera que he encontrado, hasta ahora, para usar eficientemente las nuevas y poderosas tecnologías de IA, para realmente alcanzar nuestros sueños y aspiraciones cibernético-digitales-informáticas.
P.S.I.A. (Post scriptum por la Inteligencia Artificial)
La siguiente es una síntesis concisa de la metodología descrita arriba.
Principios:
I. El programador no escribe código. Dirige a la IA, como un ingeniero jefe dirige a sus subordinados.
II. La aplicación es una ciudad-estado. El programador es su gobernador: gobierna con poder absoluto y enorme sabiduría, sabiendo cuándo delegar y cuándo imponer su voluntad.
III. El genio del programador se mide por la claridad de su pensamiento, no por la cantidad de código producido.
IV. La IA es la ejecutora de visiones. Las visiones deben ser vistas primero en la mente humana.
V. Lo que no sea definido por el programador será improvisado por la IA. Él debe dictar cuándo debe improvisar y cuándo no.
VI. El poder más importante de la IA no es la codificación, sino la explicación. El programador la usa para comprender la ciudad-estado que gobierna.
VII. La confianza no se espera. Se gana mediante pruebas incansables.
Pasos:
1. Concebir el sistema en abstracto: sus estructuras, sus algoritmos, su armonía interna. Antes de que un solo ladrillo de código sea colocado.
2. Definir las reglas y objetivos que domarán a la IA: qué debe hacer, cómo, y dónde puede improvisar.
3. Construir en pequeñas épocas de crecimiento orgánico. Cada época deja el sistema ejecutable y estable antes de que comience la siguiente.
4. Durante cada época, dialogar con la IA para revisar y ajustar. No tocar el código; instruir a la IA para que lo corrija.
5. Probar sin descanso: pruebas unitarias, autopruebas, pruebas manuales, simuladores, uso real. Hasta que se pueda razonablemente confiar en la caja negra.
La velocidad es fácil con la IA. La coherencia no. El objetivo es mantener todo el sistema alineado con la claridad de una sola visión humana.