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.
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:
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
stocken 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:
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 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:
- La persona define el comportamiento que necesita.
- Dirige a la IA para que explore el proyecto y proponga un plan.
- Solicita la generación de una función difícil de escribir.
- Programa manualmente una regla específica del negocio.
- Pide a la IA pruebas adicionales.
- 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:
- Escribís manualmente una función y comprobás su resultado con el depurador.
- Pedís en un chat una expresión regular y luego la copiás al proyecto.
- Solicitás a un agente que agregue una pantalla, respete el diseño existente y ejecute las pruebas.
- Modificás personalmente una validación que la IA había generado.
- 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.