¿La IA acabará con el desarrollador de software? Esta es mi opinión
Soy desarrollador de software. Eso significa que hago software; software creado para resolver problemas o materializar ideas. Desde la llegada de la inteligencia artificial, muchos desarrolladores o ingenieros de software se han preocupado por la posibilidad de ser desplazados.
Desde GPT-3.5 hasta o4 hemos visto una evolución constante en estos modelos, capaces de generar webs, MVPs, imágenes, scripting, ingeniería inversa y prácticamente cualquier área de la programación. Sin embargo, el código generado por estos modelos aún no es perfecto: vulnerabilidades, problemas de escalabilidad, contexto limitado y entrenamiento con datos desactualizados siguen resultando en soluciones incompletas o poco efectivas.
Para muchos de nosotros esto ha sido un alivio, porque todavía somos necesarios para llevar el código a producción. Actualmente, la IA aún necesita ser supervisada para obtener resultados óptimos y alineados con los objetivos del proyecto. Pero, ¿hasta cuándo será así?
Hoy, se dice que la calidad de los resultados depende en gran medida del prompt. ¿Pero qué pasaría si la IA pudiera "promptearse" a sí misma, tener un contexto mucho mayor y ser considerablemente más rápida? ¿Si pudiera construir pruebas unitarias y validar objetivos al punto de que el desarrollador ya no necesite "aprobar" la solución? ¿O si existiera un agente capaz de revisar código, detectar problemas y proponer soluciones antes de pasar a producción?
Creo que estos desafíos ya están siendo abordados. Quizás hoy las limitantes sean tecnológicas, energéticas o incluso éticas, pero no hay duda de que ya se están buscando soluciones.
Imagino un futuro donde la IA pueda generar cinco versiones de un proyecto en segundos y elegir la mejor solución. Una IA que pueda revisar código de manera instantánea sin necesidad de descanso, cuyo único límite sea el costo operativo.
Esto me lleva a otra pregunta: ¿realmente importa a las empresas que el código sea "bonito", óptimo y siga las "mejores prácticas"? ¿O solo les interesa resolver el problema? Quizás en el futuro la IA termine escribiendo un patrón estándar (probablemente establecido por nosotros mismos), permitiéndole modificar código fácilmente, o incluso tener aplicaciones enteras en un solo archivo.
Entonces, como desarrolladores de software, todo el tiempo y esfuerzo invertido en aprender mejores prácticas, patrones y frameworks podría volverse irrelevante, a menos que terminemos manteniendo código legacy.
Desde pequeño amé el software y siempre lo vi como un superpoder: crear algo desde la nada y resolver problemas que impactan al mundo. Yo no escribo código simplemente por terminar una tarea en Jira; escribir código es mi manera de expresar soluciones, y cuanto más entiendo un problema, mejor es la solución que puedo ofrecer.
Muchos desarrolladores tienden a "casarse" con un lenguaje y defenderlo apasionadamente, especialmente si han trabajado con él durante años. En mi caso siempre he sido flexible, disfruto aprendiendo diferentes paradigmas, nuevos lenguajes, frameworks y librerías. Siempre he dedicado tiempo a investigar cuál sería la mejor solución antes de empezar a escribir código. Sentía que eso me hacía diferente y quizá un "mejor" desarrollador.
Es como ser guitarrista. El objetivo es que la gente disfrute tu música, pero ¿a quién realmente le importa el esfuerzo, el estudio y la técnica que se requiere para tocar ese instrumento?
Ahora tenemos (o tendremos pronto) una máquina que puede producir la misma "música" en menos tiempo, investigar profundamente en minutos y sin necesidad de descanso. Esto me lleva a preguntarme: si ambos escribimos código y resolvemos problemas, ¿en qué nos diferenciamos? ¿Qué puedo aportar yo que una máquina no pueda? Y si realmente existe eso, ¿estarían las empresas dispuestas a pagar por ello? Si no, ¿qué habilidades puedo llevar conmigo y transladarlas a este nuevo mundo laboral?
Cada día intento responder estas preguntas sin encontrar una respuesta clara. Pero sí estoy seguro de dos cosas: amo escribir código y amo resolver problemas.
Quizá nuestro nuevo rol como desarrolladores esté más ligado a administrar y gestionar diversas inteligencias artificiales, especializándonos en arquitectura y seguridad. Esto suena más a un manager de agentes, un rol más administrativo, algo que personalmente no me entusiasma demasiado.
Por ello, he empezado a invertir tiempo en mejorar mis bases de algoritmos, estructuras de datos y practicar programación competitiva como un hobby. Así como en su momento las máquinas superaron a los humanos en ajedrez, esto no impidió que las personas siguieran practicándolo, de hecho, ahora es más popular que nunca. Lo mismo sucede con el arte: aún existen pintores y artistas digitales, porque naturalmente perseguimos nuestras pasiones y buscamos expresarnos.
En mi caso, esa expresión siempre será a través del código.
Creo que entiendo muy bien a Hayao Miyazaki (cofundador de Studio Ghibli), aunque no estoy indignado con la creación de la IA. Considero que programar se volverá exclusivo para aquellos que realmente sientan pasión por expresar soluciones mediante código.
¿Qué opinan ustedes? ¿Están de acuerdo conmigo?
AI Architect, Agentic R&D | Building Agents & Commerce Solutions at Enterprise Scale
6 mesesI 100% agree, Luis. As AI begins to (and is already!) handle the repetitive, low-level tasks, having strong fundamentals and sound architectural practices will matter more than ever.
👏 👏 👏