3. Diferencias entre programar, generar código y dirigir una IA

Las tres actividades producen software, pero exigen acciones, niveles de control y formas de verificación diferentes. Comprenderlas permite utilizar la IA con mayor precisión.

3.1 Introducción

Cuando una aplicación fue creada con ayuda de inteligencia artificial suele decirse simplemente que “la IA programó”. Esa frase oculta distintas formas de trabajo. No es lo mismo escribir directamente una función, pedir un fragmento para copiarlo o delegar una tarea completa a un agente que puede modificar el proyecto.

Las diferencias no dependen únicamente de quién escribe los caracteres. También importan quién toma las decisiones, cuánto contexto recibe la herramienta, cómo se incorporan los cambios y quién comprueba que el resultado sea correcto.

Programar se concentra en construir la solución. Generar código se concentra en obtener una propuesta. Dirigir una IA se concentra en conducir y verificar un proceso.

3.2 Tres actividades relacionadas

Actividad Acción principal Resultado inmediato
Programar Traducir una solución a instrucciones precisas. Código escrito e integrado conscientemente.
Generar código Solicitar a una IA una propuesta textual. Un fragmento o archivo que todavía debe evaluarse.
Dirigir una IA Definir objetivos, contexto, límites y criterios. Cambios coordinados que deben supervisarse y validarse.

Estas actividades no son excluyentes. Una misma persona puede alternarlas varias veces durante una tarea.

3.3 ¿Qué significa programar?

Programar consiste en diseñar una solución y expresarla mediante instrucciones que la computadora pueda ejecutar. Incluye mucho más que escribir sintaxis.

  • Comprender el problema.
  • Dividirlo en pasos y definir reglas.
  • Elegir estructuras de datos y algoritmos.
  • Escribir e integrar el código.
  • Ejecutar pruebas y corregir errores.
  • Mantener la solución cuando cambian los requisitos.

Cuando una persona programa directamente, conserva una relación cercana con cada decisión implementada. Esto no garantiza que el programa sea correcto, pero facilita explicar por qué el código tiene determinada estructura.

3.4 ¿Qué significa generar código?

Generar código significa pedir a un modelo que produzca texto con forma de programa. La entrada puede ser una pregunta, una descripción, un comentario, una imagen o un fragmento incompleto.

Por ejemplo:

Escribí una función JavaScript que reciba una lista de productos y devuelva solamente los que tienen stock mayor que cero.

La IA puede devolver una función aparentemente adecuada, pero todavía quedan decisiones humanas:

  • ¿Los datos tienen realmente ese formato?
  • ¿Qué ocurre si la entrada no es una lista?
  • ¿El campo se llama stock en todo el proyecto?
  • ¿La función respeta las convenciones existentes?
  • ¿Se probó con listas vacías y valores incorrectos?

El código generado es una propuesta, no una demostración de que el problema quedó resuelto.

3.5 ¿Qué significa dirigir una IA?

Dirigir una IA consiste en conducir una tarea de desarrollo mediante objetivos, contexto, restricciones y verificaciones. La herramienta puede recibir permiso para explorar archivos, modificarlos o ejecutar comandos, pero la persona continúa estableciendo el marco del trabajo.

Una instrucción de dirección podría ser:

Incorporá un filtro de productos disponibles en la pantalla del catálogo. Primero revisá cómo se representa el stock y cómo se cargan los productos. Reutilizá los componentes existentes, no agregues dependencias y ejecutá las pruebas al finalizar. Informá qué archivos modificaste.

La solicitud no dicta cada línea. Define el objetivo, obliga a observar el proyecto, establece límites y especifica cómo debe comprobarse el resultado.

3.6 La misma tarea en tres modalidades

Supongamos que una tienda necesita ocultar productos sin existencias.

Modalidad Qué hace la persona Qué hace la IA
Programación directa Busca el componente, escribe el filtro, actualiza la interfaz y prueba. No participa o responde una consulta puntual.
Generación de código Pide una función, la adapta y la incorpora manualmente. Produce el fragmento solicitado sin conocer necesariamente todo el proyecto.
Dirección de una IA Explica el objetivo, fija restricciones, revisa las diferencias y valida. Localiza la implementación, modifica archivos y ejecuta verificaciones permitidas.

El requisito funcional es el mismo. Lo que cambia es la distribución del trabajo y, con ella, la forma de conservar el control.

3.7 Cambia el nivel de abstracción

Al programar directamente, muchas decisiones se expresan en un nivel detallado: variables, condiciones, llamadas y estructuras. Al dirigir una IA, la conversación suele comenzar en un nivel más alto: comportamiento, restricciones y criterios de aceptación.

Nivel detallado: “recorré el arreglo y filtrá por stock”.
Nivel funcional: “mostrá únicamente productos disponibles”.
Nivel de producto: “evitá que el cliente intente comprar artículos agotados”.

Una buena dirección conecta los tres niveles. El objetivo de producto explica por qué se realiza el cambio; el requisito funcional indica qué debe ocurrir; la revisión técnica comprueba cómo se implementó.

3.8 El contexto marca una diferencia

Una solicitud aislada para generar código puede funcionar sin conocer el resto de la aplicación. En cambio, dirigir cambios reales exige contexto.

  • Qué tecnologías y versiones utiliza el proyecto.
  • Cómo están organizados los archivos.
  • Qué convenciones deben respetarse.
  • Qué partes pueden modificarse.
  • Qué comandos ejecutan la aplicación y sus pruebas.
  • Qué comportamiento ya funciona y no debe romperse.

Sin ese contexto, una IA puede escribir código válido en términos generales pero incompatible con el sistema donde debe funcionar.

3.9 Autoría y responsabilidad

Que una IA produzca los caracteres no transfiere la responsabilidad. La persona o el equipo que incorpora el cambio debe poder justificar que cumple los requisitos y que fue revisado de manera proporcional a su riesgo.

Decisión Responsable final
Qué problema resolver La persona o el equipo responsable del producto.
Qué propuesta aceptar Quien revisa e integra el cambio.
Qué datos y permisos entregar Quien configura y utiliza la herramienta.
Cuándo publicar El equipo responsable de la aplicación.

La IA no asume consecuencias legales, económicas ni operativas. Por eso la supervisión no es un paso opcional.

3.10 Control directo y control por resultados

En la programación manual predominan el control directo y la comprensión local: la persona decide cada instrucción. En el trabajo con agentes aumenta el control por resultados: se establecen condiciones que la solución debe cumplir.

Algunos criterios verificables son:

  • Los productos sin stock no aparecen en el catálogo.
  • La carga de productos continúa funcionando.
  • No se agregaron dependencias.
  • Las pruebas existentes siguen aprobándose.
  • El cambio solo afecta los archivos necesarios.

Controlar por resultados no significa ignorar el código. En tareas sensibles también debe revisarse la implementación, la seguridad y la posibilidad de efectos secundarios.

3.11 Habilidades necesarias en cada modalidad

Programar Generar código Dirigir una IA
Lógica y algoritmos Formular una solicitud concreta Definir objetivos y alcance
Lenguajes y herramientas Evaluar la respuesta Proporcionar contexto relevante
Diseño y depuración Adaptar e integrar el fragmento Revisar cambios entre archivos
Pruebas y mantenimiento Detectar supuestos incorrectos Establecer y ejecutar verificaciones

Las habilidades se acumulan. Saber programar mejora la capacidad de evaluar código generado y de dirigir tareas complejas.

3.12 Cómo alternar las tres formas de trabajo

Un flujo real puede combinar las modalidades de esta manera:

  1. La persona define el comportamiento que necesita.
  2. Dirige a la IA para que explore el proyecto y proponga un plan.
  3. Solicita la generación de una función difícil de escribir.
  4. Programa manualmente una regla específica del negocio.
  5. Pide a la IA pruebas adicionales.
  6. Revisa el conjunto, ejecuta la aplicación y corrige lo necesario.

No existe obligación de elegir una única modalidad. Conviene utilizar en cada momento la que ofrezca el equilibrio adecuado entre velocidad, comprensión y riesgo.

3.13 Confusiones frecuentes

  • “Si la IA escribió el código, yo no necesito entenderlo”: comprenderlo es especialmente importante si la aplicación tendrá usuarios o datos reales.
  • “Un resultado extenso demuestra que la IA entendió”: la extensión no prueba corrección ni adecuación.
  • “Dirigir consiste en pedir todo de una sola vez”: las tareas pequeñas y verificables suelen producir mayor control.
  • “Programar manualmente siempre es mejor”: algunas tareas repetitivas pueden resolverse con ayuda de IA y revisión adecuada.
  • “Usar IA elimina la creatividad”: puede desplazarla hacia el diseño del producto, las restricciones y la evaluación de alternativas.

3.14 Actividad de comprensión

Clasificá cada situación como programación directa, generación de código o dirección de una IA:

  1. Escribís manualmente una función y comprobás su resultado con el depurador.
  2. Pedís en un chat una expresión regular y luego la copiás al proyecto.
  3. Solicitás a un agente que agregue una pantalla, respete el diseño existente y ejecute las pruebas.
  4. Modificás personalmente una validación que la IA había generado.
  5. Pedís tres alternativas para una consulta SQL antes de elegir una.

Respuestas: 1 y 4 corresponden a programación directa; 2 y 5, a generación de código; 3, a dirección de una IA. En un proyecto, todas pueden formar parte del mismo proceso.