Enable javascript in your browser for better experience. Need to know to enable it? Go here.

¿Developers deben pensar menos con IA?

Reflexiones sobre el desarrollo asistido por IA y el mito del código sin esfuerzo

La promesa de las herramientas de desarrollo potenciadas por IA es seductora: escribe una descripción en lenguaje natural, obtén código funcional, avanza rápido y lanza nuevas funcionalidades. Herramientas como GitHub Copilot y Cursor ya son parte del flujo de trabajo de muchas personas developers, incluida la mía. Uso VS Code con Copilot como entorno principal y Cursor como plataforma secundaria para validar y refinar soluciones

 

Sin embargo, tras varias semanas probando distintos enfoques al desarrollo asistido por IA, llegué a una conclusión contraintuitiva: necesitamos pensar más cuando trabajamos con IA, no menos.

 

Mi enfoque inicial podría describirse como "lazy prompting": lanzar solicitudes vagas y mal formuladas a las herramientas de IA y esperar magia. Algunos ejemplos de prompts que usaba

  1. “Los recursos creados en el archivo rds.tf podrían ir en su propio módulo. ¿Cómo lo harías? ¿Qué variables y outputs son necesarios para que el módulo cumpla su función?”
  2. “Expón también la salida del módulo ECS para ecr_url en el archivo outputs.tf raíz.”

 

Aunque técnicamente eran claros, estos prompts pedían a la IA demasiadas decisiones arquitectónicas de una sola vez, sin el contexto adecuado. A pesar de tener reglas básicas establecidas para el desarrollo con IA, no las estaba aplicando de forma consistente.

 

Los resultados fueron decepcionantes de forma constante. Me enfrenté a:

 

  • Sobrecarga de información: la IA generaba enormes cantidades de código que funcionaban, pero eran difíciles de entender.
  • Reversiones constantes: cada 20 minutos, terminaba deshaciendo cambios y comenzando de nuevo.
  • Código no iterativo: el resultado era funcional pero rígido, dificultando las mejoras incrementales.
  • Desorden estructural: el código cumplía con los requisitos, pero carecía de una arquitectura coherente.

 

El código funcionaba, pero no era buen código. Más importante aún: no era código sobre el que pudiera construir.

Dos enfoques para que la asistencia con IA funcione

 

Ya había usado estos principios en desarrollos anteriores con IA, pero este experimento con "lazy prompting" confirmó lo esenciales que son para lograr buenos resultados.

 

Pequeños pasos

 

En lugar de pedirle a la IA que resuelva un problema grande y complejo de una sola vez, aprendí a dividir el trabajo en incrementos pequeños y enfocados. Esto se alinea con el principio de avanzar con pasos diminutos en el desarrollo de software. Este enfoque:

 

  • Mantiene el output de la IA manejable y fácil de revisar.
  • Permite corregir el rumbo antes de invertir demasiado tiempo.
  • Conserva la calidad del código y evita desviaciones arquitectónicas.
  • Facilita una mejor comprensión de cada componente.

 

Pair programming con AI

 

El cambio más importante fue tratar a la IA como una compañera de pair programming en lugar de una generadora automática de código. Esto se basa en los beneficios establecidos del pair programming adaptándolos a la colaboración con IA.

 

Esto implica:

 

  • Participación activa: revisar y cuestionar constantemente las sugerencias de la IA.
  • Iteración colaborativa: construir soluciones en conjunto, no aceptar el resultado tal como viene.
  • Mantener el control: seguir decidiendo sobre la arquitectura y la calidad del código.
  • Aprendizaje continuo: entender lo que produce la IA, no aceptarlo ciegamente.

 

Este enfoque refleja las ventajas del pair programming tradicional (mejor calidad del código, intercambio de conocimientos, menos bugs) mientras aprovecha las fortalezas de la IA en reconocimiento de patrones y prototipado rápido. Aunque hay riesgos: una IA no puede reemplazar totalmente el pair programming humano, que se basa en la interacción y la colaboración.

Una conexión inesperada con la Técnica Pomodoro

 

Un hallazgo interesante fue lo bien que la Técnica Pomodoro complementa el desarrollo asistido por IA. En el pair programming tradicional, hay pausas naturales cuando tu pareja va por café u otra cosa. Estas interrupciones, aunque molestas, ofrecen momentos valiosos para pensar.

 

Con IA, esas pausas desaparecen. La IA no se cansa, no necesita café ni sugiere tomar distancia. Esto puede generar fatiga mental y visión de túnel.

 

La Técnica Pomodoro introduce artificialmente esas pausas necesarias, permitiendo:

  • Reflexionar sobre el rumbo del trabajo.

  • Evaluar objetivamente la calidad del código.

  • Considerar enfoques alternativos.

  • Evitar la sobrecarga cognitiva de una interacción continua con IA.

     

(Si usas VS Code, extensiones como "Pomodoro Timer" pueden ayudarte a incorporar estos descansos al flujo de trabajo.)

 

La paradoja del pensamiento

 

La paradoja central del desarrollo con IA es esta: las herramientas que prometen reducir la carga cognitiva en realidad requieren mayor disciplina mental para usarse bien. Tener éxito con herramientas de desarrollo con IA depende de:

  • Articular bien el problema: mejores prompts producen mejores soluciones.

  • Tener conciencia arquitectónica: entender cómo encaja el código generado en el sistema completo.

  • Evaluar la calidad: revisar el output de la IA según estándares de ingeniería.

  • Pensamiento estratégico: saber cuándo aceptar, modificar o rechazar las sugerencias de la IA.

Avanzando con asistencia de IA

 

Las herramientas de IA para desarrollo son amplificadores potentes de nuestras capacidades humanas; no reemplazos del juicio humano. Son excelentes para generar código base, sugerir patrones y prototipar rápido, pero requieren una integración consciente en los flujos de trabajo.

 

El enfoque más efectivo que he encontrado combina la velocidad y el reconocimiento de patrones de la IA con el pensamiento arquitectónico y los estándares de calidad que aportan los developers con experiencia. No se trata de pensar menos, sino de pensar de forma diferente y más estratégica.

 

El futuro del desarrollo asistido por IA no está en reemplazar la inteligencia de las personas developers, sino en potenciarla. Quienes prosperen serán quienes aprendan a pensar con claridad sobre cómo dirigir estas herramientas para crear software mantenible, comprensible y robusto.

 

Como con cualquier herramienta poderosa, la clave no está en la herramienta en sí, sino en la sabiduría y disciplina de quien la usa.

Una versión anterior de este artículo fue publicada en el Substack de Nik.

Aviso legal: Las declaraciones y opiniones expresadas en este artículo son las del autor/a o autores y no reflejan necesariamente las posiciones de Thoughtworks.

Ayudamos a equipos de ingeniería a aprovechar la IA con éxito