Sobreviviendo como desarrollador de software en la era de la IA

Un desarrollador de software en la actualidad se enfrenta a múltiples desafíos y presiones en su cotidianidad, entre ellos: mantener su trabajo amenazado por la IA, aprender nuevas herramientas de IA e incorporarlas a su trabajo, estar al día con cada nueva herramienta que sale el mercado, y en medio de todo esto lo esencial del día a día: desarrollar software correcto, eficiente y mantenible.

Sobreviviendo como desarrollador de software en la era de la IA
|13 marzo, 2025|13 min|

Entonces, ¿cómo hace un desarrollador de software contemporáneo para sobrevivir a esta tormenta de herramientas de IA que lo atormentan y, en varios casos, interfieren con su trabajo en lugar de colaborar? De eso se trata este artículo.

Relax

Como primera recomendación: relajate, tratá de no estresarte por tratar de usar todo lo que ofrece el mercado (porque siempre va a ser mucho, siempre va a haber algo nuevo que no estás usando) y enfocate en seguir haciendo tu trabajo. Podés incorporar herramientas basadas en IA donde lo sientas orgánico, natural y útil, pero forzarte a probar cada nueva herramienta que sale y tratar de usarla en cada feature que estés desarrollando es probablemente una receta para el desastre. La incorporación atropellada de IA y sin detenerse a entender y razonar lo que se está haciendo es seguramente perjudicial para tu trabajo y tu carrera.

Créditos: DALL·E 3 (https://openai.com/index/dall-e-3/)

La IA en el corto plazo no va a sacarte el trabajo, pero no incorporar herramientas de IA sí puede dejarte sin trabajo en el mediano plazo, de igual forma que puede hacerlo el no mantenerte actualizado con los nuevos lenguajes, frameworks y tendencias del mundo de desarrollo de software (o sea, lo que viene pasando desde hace 40 años). Pensá a las herramientas de IA como una nueva tecnología que apareció en el mercado y que deberías incorporar para mantenerte al día. Lo mejor que podés hacer es aprender a incorporar orgánicamente las herramientas de IA para hacer mejor tu trabajo de hoy.

Herramientas de IA para desarrolladores

Ahora bien, si te convencí hasta acá te estarás preguntando: ¿cuál de las cientos de herramientas de IA para asistir al desarrollo de software uso? La respuesta es, como en muchos casos: depende. ¿De qué? De tu seniority, del tipo de desarrollador que seas, de tus preferencias y de varios otros factores. Vamos a analizar algunos escenarios más adelante.

Pero antes, hagamos un paneo rápido del tipo de herramientas de IA de asistencia a desarrolladores que existen hoy en día en el mercado. A continuación resumimos de forma no exhaustiva las principales categorías de herramientas de asistencia a desarrolladores mediante IA con algunos ejemplos de cada una:

Chats
Aquí hablamos de chats interactivos donde uno puede conversar con un modelo de generación de texto (LLM), como el clásico y conocido ChatGPT. No son específicamente para desarrolladores pero las incluimos porque son las más utilizadas y casi todas están optimizadas para generar código.

Algunos ejemplos: ChatGPT, Claude, Gemini, Grok, Perplexity, Microsoft Copilot, Deepseek

Asistentes de autocompletado en IDEs
Estos son asistentes dentro de IDEs del mercado usualmente distribuidas como plugins que sugieren código mientras uno escribe el mismo. Algunas de ellas, como GitHub Copilot, evolucionaron en un chat embebido que permite ingresar prompts específicos, por lo que se solapan con la siguiente categoría.

Algunos ejemplos: GitHub Copilot, Supermaven, Codeium Supercomplete

IDEs con generación de código
En este caso hablamos de IDEs completas que traen embebidas características para generar código y/o aplicaciones completas.

Algunos ejemplos: Cursor, Windsurf, Trae

Webs/SaaS
Estas herramientas son similares a la categoría anterior pero en lugar de ser una aplicación instalable son páginas web donde uno puede generar aplicaciones completas mediante prompts, y en varios casos también hacer el deploy de las mismas.

Algunos ejemplos: v0 (de Vercel), Lovable, Replit, Bolt

APIs
Aquí hablamos de APIs de bajo nivel (usualmente REST) que permiten acceder programáticamente a LLMs.

Algunos ejemplos: OpenAI, Anthropic, Google/Gemini, Grok

Bibliotecas para crear agentes
Estas son bibliotecas de código para crear programáticamente agentes autónomos que pueden realizar tareas apoyados por IAs.

Algunos ejemplos: PydanticAI, LangChain, AutoGen, CrewAI, Agno

Una nota especial merece la categoría de “IDEs completas con generación de código”. Estas IDEs están muy de moda en estos momentos (marzo de 2025) ya que mucha gente las utiliza para el famoso “Vibe coding”, esto es: describir en forma de texto los requerimientos de un producto de software y dejar que la IDE genere el código entero, probarlo, modificar el prompt si es necesario y seguir iterando de esta forma, sin detenerse a mirar, entender o corregir el código generado, confiando en la IA y seguir “programando” según nos “vibre”. El término lo acuñó Andrej Karpathy, uno de los fundadores de OpenAI, en este post en X.

Si se preguntan cómo se ve un desarrollador “vibe codeando”, pueden imaginar algo así:

Créditos: Reddit

¿Entonces, qué uso?

Bien, si sos un desarrollador de software probablemente te estás preguntando, después de la montaña de herramientas que acabamos de resumir ¿entonces, qué de todo eso tengo que usar? Como dijimos antes, la respuesta es muy personal, pero a continuación vamos a dar algunas recomendaciones generales de herramientas sugeridas según el nivel de seniority que tengas. Todo es ajustable a tus preferencias, necesidades, tipo de proyecto, tecnologías utilizadas y varios factores más.

Créditos: Google ImageFX (https://labs.google/fx/tools/image-fx)

¿Qué me conviene usar si soy un desarrollador {seniority}?

Si {seniority} == “Junior/Trainee”

En este caso te recomendamos usar las herramientas de IA con mucha cautela y limitación. Tené en cuenta que probablemente estás aprendiendo al mismo tiempo: un lenguaje, un framework, teoría de programación y varias cosas más. Abusar de IAs en este momento puede perjudicar tu proceso de aprendizaje, pero hay buenas noticias: también puede empoderar y acelerar tu proceso de convertirte en un mejor programador.

Lo más conveniente en este punto es apoyarte principalmente en las herramientas de la categoría “Chats” y aprovechar las capacidades de conversación de estas herramientas para usarlas de mentores en el proceso de aprender a programar (no creemos que puedan reemplazar a un buen mentor humano, pero pueden complementarlo). Aprovechá la “memoria” de los chats para tener conversaciones largas indagando en todo lo que no entiendas o te genere dudas. En lugar de usar prompts como: “Generar un componente en React para hacer una lista de tareas” podés usar prompts que te permitan aprender como: “Por favor, explicame paso a paso cómo escribir un componente en React para hacer una lista de tareas. Explicame línea por línea qué hacer el código.” y luego de leer en detalle la respuesta hacer preguntas de seguimiento sobre las partes que te generen dudas. De esta forma podés usar a la IA como tu profesor de programación personal.

No es recomendable utilizar demasiado las otras herramientas, pero las que son de la categoría “Asistentes de autocompletado en IDEs” podrían ser usadas con buen criterio para escribir código autodocumentado en las IDEs. Por ejemplo, con GitHub Copilot, en un archivo nuevo podríamos escribir el siguiente comentario:

/* Traemos todos los usuarios de la base de datos y las ordenamos por apellido en memoria, luego los transformamos en un JSON, comentando línea por línea el código */

Luego de este comentario GitHub Copilot comenzará a escribir el código, esto es bastante cómodo porque no tenemos que salir de la IDE, y los comentarios pueden ayudar a entender el código generado. Sin embargo suele ser más eficiente utilizar chats para este tipo de tareas, porque permiten hacer preguntas de seguimiento.

A medida que avances en tu carrera podés empezar a incorporar las otras herramientas cuando sientas que ya sos capaz de entender el código que los chats generan.

Si {seniority} == “Semi Senior”

En este caso, naturalmente aplican las recomendaciones anteriores, y también es recomendable comenzar a activar herramientas de autocompletado en la IDE de tu preferencia, pero siempre prestando atención a leer, entender y validar el código generado sin aceptar ciegamente el código. La idea es poder aprovechar las herramientas de IA para acelerar tu velocidad de desarrollo, pero sin dejar de seguir aprendiendo e incorporando nuevos conocimientos.

También es recomendable comenzar a utilizar chats para generar pequeños componentes, funciones o clases necesarias, esas típicas cosas que podrías escribir de memoria o leyendo un poco de documentación y que una LLM es capaz de escribir más rápido.

De nuevo, nunca te olvides de leer el código, entenderlo, testearlo y documentar lo que no es evidente. Las LLMs se equivocan y deliran, y es posible introducir bugs sin darse cuenta.

Otra forma interesante de usar las IAs en este estadío de tu carrera es pedirles que revisen el código que escribiste y te hagan recomendaciones antes de enviar un Pull/Merge Request, esto podés hacerlo copiando y pegando el código en algún chat o mediante herramientas embebidas en alguna IDE. De forma similar podés pedirle a estas herramientas que escriban tests unitarios para tu código, o incluso podés describir el problema y pedirle que solamente te escriban los tests para vos completar el código validando que los tests pasen (TDD guiado por una IA), es una forma interesante de desafiarte a tener un manejo más hábil del lenguaje o framework que estás usando.

Si {seniority} == “Senior”

En este punto asumimos que tenés un manejo fluido de los lenguajes, bibliotecas y frameworks en los que estás programando, por lo que podrías utilizar libremente cualquiera de las herramientas que comentamos. En particular, las IDEs que generan código pueden acelerar muchísimo tu velocidad y convertirte en un “10x Engineer”, pero ojo: es recomendable revisar el código generado, no sólo para asegurarte de que cumple lo que le pediste, si no también para seguir teniendo un conocimiento del codebase que estás creando, y validar la robustez y calidad del mismo. Cuanto menos conocimiento tengas del código que estás escribiendo, más cerca del “vibe coding” estás, y los riesgos son mayores (hablamos un poco más de esto hacia el final del artículo).

Como ya comentamos, las preferencias son muy personales, por ejemplo: el autor de este artículo prefiere escribir los encabezados de las funciones/clases/componentes y dejar que las herramientas de autocompletado de código empiecen a escribir el código, e ir aceptando lo que coincida con la idea en mente y si no lo hace escribir a mano lo que corresponda y luego seguir dejando que la IA escriba. Es una forma de programar apoyado en IAs pero “guiando” la estructura, forma y estilo del código según las preferencias propias. Aunque también para casos puntuales es más cómodo pedirle directamente a un chat lo que necesitás, y copiarlo y pegarlo en tu código, por ejemplo: escribir una expresión regular para validar un email.

Como recomendación general para cualquier desarrollador Senior diríamos que es buena idea probar al menos un rato una herramienta de cada categoría para entender si nos sentimos cómodos con ellas y en qué extensión preferimos usarlas. La idea es encontrar el mejor set de herramientas para poder resolver tu trabajo diario de la forma más eficiente posible y en el camino seguir disfrutando de programar.

Riesgos

Como comentamos a lo largo del artículo el sobreúso de herramientas de IA para desarrollar puede conllevar algunos riesgos. A continuación comentamos algunos de ellos:

  • Riesgos de crear código con errores/bugs no evidentes a simple vista
  • Posibilidad de crear código poco eficiente o con alto acoplamiento
  • Alta probabilidad de crear código difícil de mantener y/o debuggear
  • Posibilidad de introducir vulnerabilidades de seguridad, o peor aún: de ser víctima de inyección de código malicioso por parte de las LLMs utilizadas (esto sucede cuando el código generado por la LLM tiene elementos maliciosos que podrían filtrar información sensible de nuestra aplicación a terceros)
  • Es muy probable que en proyectos grandes con mucho código generado por IA terminemos con una solución poco homogénea en cuanto a criterios de diseño, porque las IAs suelen trabajar con un contexto muy local al/los archivo(s) creados o editados, debido a las limitaciones de ventanas de trabajo de las LLMs y ahorro de costos.

Con respecto al riesgo de problemas de mantenibilidad, es válido pensar de la siguiente manera: no voy a necesitar mantener el código porque la IA siempre puede hacerlo por mí, es decir, no necesito entender el código si la IA lo entiende por mí. Esto es correcto hasta cierto punto y podría funcionar si uno está dispuesto a utilizar IAs con intensidad, pero a medida que un producto crece se vuelve cada vez más difícil de sostener y obtener buenos resultados, por lo que en este caso se recomienda documentar las decisiones de diseño, funcionales y de arquitectura de la solución, y alimentar a los modelos con estos archivos; se suele utilizar archivos .MD para escribir esta documentación dentro del proyecto, junto con archivos de configuración específicos como .cursorrules en Cursor que indican dónde está la documentación y templates para archivos estándar. Este artículo profundiza en este tipo de estrategias. Esta forma de desarrollo es posible pero aún muy incipiente y la mantenibilidad a largo plazo del código generado es a día de hoy dudosa. También es incierto si las ventanas de memoria con las que trabajan las LLMs son capaces de considerar bases de código grandes y a medida que el volumen de código crece son más proclives a cometer errores.

Como recomendación general para evitar estos riesgos aconsejamos usar las herramientas con criterio, tratando de revisar y entender el código generado, usándolas como un apoyo a tu trabajo y no como un reemplazo del mismo. Demostremosle a la IAs que nosotros las podemos usar para ser mejores en nuestro trabajo.

Outro

Como palabras finales queremos aclarar que todas las opiniones expresadas en este artículo son puntos de vista personales del autor y cada lector es libre de disentir, abrazar el vibe coding y desear ser reemplazado por IAs en el futuro 😉.

Finalmente, queremos comentar que desde Teamcubation nos dedicamos desde hace más de 3 años a acompañar a desarrolladores junior/trainee en sus caminos de aprendizaje con un mentoreo personalizado. Recientemente agregamos programas específicos para acelerar la adopción de IA en equipos de desarrollo, si sos desarrollador o trabajás con desarrolladores te invitamos a conocer más de nuestros servicios por acá: https://teamcubation.com/.

Disclaimer: el texto de este artículo fue completamente escrito por un humano, palabra por palabra, letra por letra, sin ninguna asistencia de IAs, ¿lo podés creer? ¡Qué cosa extraña!

Suscríbete a nuestro Newsletter mensual

Accede a conocimientos, tendencias y estrategias sobre Onboarding, desarrollo de Talento y Tecnología para impulsar el crecimiento de tu empresa.