A.I.D.D. Programar con IA
La integración de la IA en programación es cada vez más común y pronto será esencial. Conocer y usar esta tecnología marcará la diferencia entre profesionales y organizaciones.
En este sitio te ayudaré a usar las herramientas de IA más potentes junto con las mejores prácticas para que puedas cumplir el lema: code smarter, not harder.
🦻 Escucha Resumen del artículo como Audio Podcast
Generado con la IA de Google NotebookLM.
🚀 La IA en el mundo del código
La llegada de la Inteligencia Artificial al mundo del desarrollo de software ha generado una mezcla de entusiasmo y preocupación entre los desarrolladores.
Se está gestando una nueva manera de codificar, donde el ser humano y la máquina trabajan juntos en una relación simbiótica. Se trata de una nueva metodología de programación que requiere un cambio en la forma de pensar sobre el desarrollo.
Ante esta irrupción aparecen muchos comportamientos entusiastas, pero también bastantes preocupados y hasta algún que otro negacionista (o debería decir abolicionista). Y todos tienen su punto de razón.
🧑🚀 El entusiasmo por la IA
El entusiasmo por la IA en el desarrollo de software se manifiesta más con datos que con relatos. Herramientas como GitHub Copilot han visto una masiva adopción, con más de 1 millón de desarrolladores activamente utilizándolo. Otros, como Cursor o V0, experimentando un crecimiento exponencial, propio de más de redes sociales o juegos que de herramientas profesionales.
Si quieres un dato más abrumador, cambia usuarios por dólares, y pregunta por la inversión que está haciendo la industria tradicional, con empresas como Microsoft, Facebook, Oracle, Google y Amazon invirtiendo cifras astronómicas en soluciones de IA para el desarrollo. Solo para no quedarse atrás.
Para start-ups y corporate, aumentar la productividad parece ser el objetivo fundamental. Pero, los desarrolladores vemos la IA también como un catalizador para la innovación. Es decir, la posibilidad de hacer nuevas cosas y de hacerlas mejor. Y, si te dedicas a esto, ese entusiasmo por las tecnologías es lo que te ha traído aquí después de todo, ¿no?
👽 La preocupación por la IA
💼 Los puestos y condiciones de trabajo
Por otro lado, no es de extrañar que exista preocupación por que la IA podría reemplazar a los desarrolladores automatizando tareas que antes requerían habilidades especializadas. Muchos programadores nos preguntamos si esas habilidades permanecerán relevantes en un futuro en el que la IA puede escribir código más rápido y eficientemente que tu y yo.
Sin embargo, el verdadero desafío no es la sustitución, sino la adaptación. Los programadores enfrentamos el reto de evolucionar para trabajar en conjunto con la IA, en lugar de competir contra ella. Esto implica desarrollar nuevas habilidades, como el prompt-engineering, y adquirir una profunda comprensión de los modelos de IA y la capacidad de supervisar y refinar el código generado por la máquina.
🔎 La calidad y fiabilidad del código
Otros AI-concerned temen por la calidad del código, ya que no se ha escrito con el especial cuidado de un humano, o se ha generado de tal manera que sea difícil de mantener. Aquellos que piensan así, están escépticos de que la IA pueda ser realmente útil, y la miran con cierto desprecio.
🧑💻 Mi opinión: La responsabilidad humana sobre el trabajo de la IA
Tanto el entusiasmo como la preocupación están justificados. Pero muchos de estas emociones están ligadas a una visión a demasiado corto o excesivamente largo plazo. Nadie sabe qué nos deparará el futuro dentro de una década, y está claro que lo que hoy tenemos no es ni mucho menos definitivo.
Creo que debemos centrarnos en aprovechar al máximo la IA actual sin esperar soluciones mágicas o poco realistas, y a la vez alzar la mirada a uno o dos años vista. En este nuevo escenario, los programadores deben reinventarse como arquitectos y supervisores de sistemas de IA, manteniendo el control creativo y estratégico sobre el proceso de desarrollo. De esto va AIDD.
🤖 AIDD (Artificial Intelligence-Driven Development)
El Desarrollo Conducido por la Inteligencia Artificial (A.I.D.D., por sus siglas en inglés) emerge como una nueva metodología en la escritura de código. AIDD se define como un enfoque para el desarrollo de software que integra herramientas de IA en cada fase del ciclo de programación de aplicaciones, desde la concepción hasta el mantenimiento.
Las metodologías de desarrollo más exitosas, como el Desarrollo Dirigido por Pruebas (T.D.D. Test Driven Development) y el Desarrollo Dirigido por Comportamiento (B.D.D. Behavior Driven Development), sirven de inspiración en segundo plano. En el AI-DD, nos centraremos en aplicar técnicas de código limpio y pruebas automáticas para garantizar la comprensión, mantenimiento y calidad del software generado por IA.
📐 Herramientas y procedimientos
AIDD adapta dos componentes fundamentales del IA para programadores: herramientas y procedimientos.
🛠️ Herramientas
Las herramientas incluyen editores de código inteligentes, que ofrecen sugerencias y correcciones en tiempo real basadas en modelos de lenguaje avanzados capaces de generar y analizar código.
Pero también hay aplicaciones especializadas en generar aplicaciones completas. Y aplicaciones para generar prompts que generan aplicaciones. Y servicios que aceleran. Y servicios que unifican a otros servicios. Hay de todo: pagando o sin pagar, abierto o privativo, en tu casa o en la nube...
🧰 Procedimientos
Entre los procedimientos, destaca el ingeniería de prompt, que implica diseñar instrucciones precisas para obtener el mejor resultado. El diseño de instrucciones (system prompt
, user prompt
, rules
...) se refiere a establecer normas, preferencias y convenios claros para que la IA genere código que cumpla con los estándares y requisitos del proyecto.
Pero la IA se aplica a todo el proceso de desarrollo, desde la concepción hasta el mantenimiento. Y no solo en el desarrollo de software, sino en todo el proceso creativo.
🧑💻 Mi opinión: el desarrollo con IA requiere un nuevo paradigma, AIDD
AIDD representa un cambio de paradigma en el desarrollo de software que transformará la industria en los próximos años.
Conforme las herramientas de IA se vuelven más sofisticadas, es probable que veamos una integración aún más profunda de la IA en todas las fases del desarrollo.
Esto podría conducir a un futuro cercano en el que los desarrolladores actúen más como orquestadores, guiando y refinando las creaciones de la IA, en lugar de escribir cada línea de código.
Sin embargo, el juicio humano permanecerá esencial para asegurar que el software producido sea ético, relevante y de alta calidad.
📦 Conclusión
La IA se establecerá como complemento indispensable de los procesos de desarrollo, impactando en el mercado laboral y en la forma de trabajar.
El desarrollo con IA promete ser más eficiente, y redefinir al desarrollador con un papel más innovador y estratégico que mantenga la responsabilidad sobra la calidad del software.
El objetivo de este blog es difundir herramientas y procedimientos AIDD que ayuden a los profesionales y organizaciones a aumentar su productividad con la Inteligencia Artificial.
Code smarter, not harder.
Subscribe to my newsletter
Read articles from Alberto Basalo directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Alberto Basalo
Alberto Basalo
I am a full-stack developer with over 25 years of experience. I can help you with: Angular and Nest architecture. Testing with Cypress. Cleaning your code. AI Drive Development.