En los primeros días de la IA, cuando todavía no teníamos estas herramientas como Cursor, Claude Code o Codex, recuerdo que copiaba y pegaba código en una interfaz de chat web y obtenía los snippets de código para usarlos en mi editor.
Por aquel entonces no sabía cuánto podíamos confiar en la IA o no. Así que recuerdo que esto me hacía más rápido generando código. Pero la entrega real a producción se estaba volviendo más lenta porque tenía que iterar más en las code reviews.
Ahora tenemos modelos mucho mejores, ventanas de contexto más grandes, pero aun así… La mayor mejora no tuvo que ver con la herramienta. Tuvo que ver con el sistema que construí alrededor de generar y entregar código con IA.
En este artículo quiero hablar de la diferencia entre herramientas y sistemas y de por qué tenemos que centrarnos en lo segundo.
1. Encuentra el cuello de botella en tu workflow de desarrollo de software con IA
Hay una razón por la que la IA se ha apoderado del mundo de la ingeniería de software, y hay muchos otros trabajos en los que se siguen haciendo las cosas de la misma manera.
Nosotros, los ingenieros de software, ya tenemos un ciclo de vida paso a paso muy claro para generar software.
Empiezas por aclarar con el cliente qué quiere realmente y ponerlo por escrito en forma de requisitos. Luego haces un poco de diseño técnico, investigando cómo cumplir realmente estos requisitos y qué consecuencias tendrá cada una de las alternativas. Después escribes el código, lo revisas con tus compañeros si trabajas en un equipo, escribes tests que se aseguren de que no introduces regresiones ni incumples ningún requisito y, finalmente, lo pones en producción para que los clientes puedan usarlo.
Esto ya estaba ahí antes de la IA, y ahora tenemos un roadmap claro, así que solo necesitamos usar IA en cada una de estas fases para mejorarlo.
Por ejemplo, para recopilar requisitos, en vez de tener que ir yo solo a leer unos documentos que alguien ha preparado y encontrar los puntos de dolor y todo lo demás, puedo usar IA para simplemente recopilar muchas fuentes y que al final me dé una lista de requisitos que verifico y compruebo si tienen sentido.
Es como cuando la gente mucho mayor que yo iba a la biblioteca, y yo siempre iba a Google. Bueno, ahora tenemos IA, que es otro multiplicador de la velocidad a la que hacemos este trabajo.
Pero aquí tenemos que tener cuidado porque podemos generar muchos requisitos que no tienen ningún sentido, y somos más rápidos entregando las cosas que no necesitamos. Así que, siguiendo mi ejemplo de recopilar requisitos, la IA es una gran herramienta que está poniendo un multiplicador, pero seguimos necesitando el pensamiento crítico para saber si algo es lo correcto o no.
Y este pensamiento crítico se aplica a todo.
2. Integra la verificación y la revisión en el workflow
Cada modelo nuevo es mejor que el anterior. Tenemos ventanas de contexto más grandes. Son más inteligentes y consumen menos tokens para hacer lo mismo. Pero no podemos confiar solo en que el modelo llegue a ser lo suficientemente bueno como para compensar nuestro sistema descuidado.
Suelo entrevistar a candidatos y hacerles preguntas sobre su uso de la IA. Cada vez que un candidato me dice que no, que la IA era mala hasta que salió el modelo que sea, por ejemplo, Fable 5.1, y que ahora la IA es mejor. Eso pasa completamente por alto la cuestión. Al menos en una entrevista, ¿por qué me iba a importar contratarte a ti o contratar a otra persona si van a usar el mismo modelo?
Pero, volviendo a desarrollar buen software y crear un buen sistema, independientemente del modelo que tengamos disponible ahora mismo, veamos cómo podemos evitar ese proceso descuidado.
Tuve que escribir un servicio entero, yo solo y en un periodo de tiempo muy corto.
Mi equipo suele seguir una arquitectura por capas en la que cada capa habla con la capa de abajo. Y yo quería que la IA se ciñera a ella. Así que mi intuición al principio fue: vamos a poner todas esas reglas en unos archivos markdown, en un AGENTS.md, y la IA sabrá cómo hacer las cosas.
Bueno, si fuera así de fácil, entonces estaría escribiendo este artículo.
Después de frustrarme un par de veces porque la IA no seguía realmente aquello; lo entendía al principio, pero luego era como si se hubiera olvidado. Y cada vez que necesitaba una clase nueva, simplemente decidía crearla en cualquier package de Java al azar.
Así que lo que hice fue usar la librería ArchUnit para escribir tests que comprobaran dónde estaban los archivos.
Esta era una forma determinista de dar feedback a la IA más adelante en el desarrollo. Me daba igual que la IA se olvidara de las reglas de arquitectura. La IA recibía un mensaje de error si escribía algo donde no debía.
Seguía teniendo mi propia revisión humana y la revisión humana de mis compañeros. Pero al reducir todos estos comentarios de revisión más pequeños, todo era más rápido y pude entregar más código.
Esto es lo que considero un buen sistema porque me da igual qué modelo estaba usando. Y te he hablado de ArchUnit, pero me da igual si fuera otra librería. La cuestión es que haya alguna función de feedback para la IA cada vez que ejecuta el build.
Si también te interesa cómo estructurar el trabajo con IA, puedes consultar este otro artículo.
3. Haz que sea más fácil trabajar con el input y el output de los agentes
Ahora que la IA está haciendo que todo sea mucho más rápido, es como si estuviera aplicando un multiplicador a todo.
Bueno, o a casi todo, porque hay muchas otras cosas que la IA no está multiplicando como debería.
Por ejemplo, ¿la IA está haciendo que escribas código 10x más rápido? Sí.
¿La IA está haciendo que te sientas 10x más abrumado? No, probablemente sea algo así como 50x.
Así que entonces mi pregunta fue: ¿cómo interactuamos mejor con la IA? ¿La comunicación habitual basada en texto que hemos estado usando en el trabajo del conocimiento es la forma correcta de comunicarnos con la IA?
Aquí es donde creé otro de mis sistemas, y tiene que ver con la interfaz de input y de output con la IA.
Interfaz de input: Me estoy inclinando mucho más por dictar con la voz que por teclear. De hecho, este artículo está siendo hablado en vez de escrito.
Interfaz de output: Artefactos HTML que puedo anotar para dar feedback.
Con el ejemplo del artículo, podría ser tentador simplemente usar IA (herramienta) para escribir, pero eso pasaría por alto la cuestión porque la IA es una buena herramienta, pero tienes que usarla correctamente en tu sistema. Por ejemplo, para escribir artículos con un sistema que mantenga mi voz, soy yo quien piensa y habla en vez de simplemente publicar algo porque lo he escrito. Uso la herramienta (IA) para hacer la transcripción speech-to-text.
Así que ahora te voy a retar a preguntarte: ¿dónde estás usando mal la IA, la herramienta? ¿Estás intentando mantener el mismo sistema que funciona sin IA, pero simplemente forzando la IA dentro de ese sistema? ¿Alguna vez has pensado en cuál sería un buen sistema en el que introducir IA?
4. Elige las herramientas según el problema de entrega que resuelven
La realidad es que tienes que usar IA hoy en día en tu trabajo de ingeniería de software. De lo contrario, no te contratarán o te despedirán de donde sea que trabajes.
Pero, en vez de forzar la IA dentro de tus viejas formas de hacer las cosas, te reto a hacer una pequeña prueba. Estoy bastante seguro de que estás usando IA y, si no, empieza a usarla y encuentra un cuello de botella.
Una vez que encuentres el cuello de botella, prueba algunos cambios en el workflow. Puedes seguir usando IA o usar distintas herramientas de IA, pero la cuestión es que, ahora que tenemos que usar IA, diseñemos el sistema que haga que te potencie en vez de hacerte sentir miserable.
Puede que te encuentres en una situación como la mía cuando copiaba y pegaba código entre una interfaz de chat web y mi IDE. Programar era más rápido, pero la calidad estaba bajando y el tiempo de respuesta de las revisiones era peor.
Así que, una vez que identifiques ese cuello de botella, cambia algo para solucionarlo.
Recuerda: No se trata de cambiar la herramienta; se trata de cambiar tu sistema.
Si has encontrado valor en este post:
❤️ Haz clic en el corazón para ayudar a que otros lo encuentren.
✉️ Suscríbete para recibir el siguiente en tu bandeja de entrada.
💬 Deja un comentario con lo más importante que te llevas
♻️ Compártelo con tus compañeros

🗞️ Otros artículos que gustan a la gente










