Inteligencia artificial al servicio de los programadores

Recuerdo como si fuera ayer el 2009 en la Biblioteca de la Universidad tratando de obtener información para entender AJAX (joder que feo y difícil era hacer front antes) y lo frustrante que era pasar páginas enteras sin encontrar la información necesaria o el buscar horas en internet para encontrar algo de información. Hoy 2024 esto de buscar horas para encontrar algo de información se ve impensable gracias a la proliferación de la Inteligencia Artificial generativa, donde la respuesta a nuestras dudas pueden estar al alcance de nuestras manos ingresando un buen prompt.
Gracias a la llegada de la IA estamos viviendo en los tiempos donde los ingenieros no gastan sus esfuerzos en encontrar dudas circunstanciales y en su lugar utilizan la IA para llevar sus sistemas a un mejor nivel.

Sin embargo, la llegada de la IA generativa también ha despertado un sentimiento guardado de resentimiento hacia los ingenieros de software, en donde ahora creen que ingresando un buen prompt pueden llegar a reemplazarlos o incluso promocionan demos en internet donde salen “gurus” diciendo “el trabajo de los programadores se va a terminar, miren como he hecho esta aplicación con solo ingresar un prompt”. Para los que me han podido conocer y compartir conmigo sabrán que una de mis frases favoritas es “Hacer software es MUY fácil y mantenerlo es dificilísimo” y lo que siempre he querido transmitir es el no confiarse en: “¡oh logre sacar esto a producción, soy el mejor!”, esperen a que ese sistema madure y como al pasar de los meses/ años y que siga siendo igual de mantenible y extensible con las nuevas funcionalidades para realmente decir que son el mejor. La IA generativa por supuesto tiene y va a seguir incrementando sus capacidades para generar código e incluso para generar demos completas de un tema en específico, pero aún está a muy lejos de poder entender a los usuarios finales, de hacer preguntas para usuarios que aún no saben lo que quieren y mucho más lejos de poder evolucionar algo que ella misma haya construido.

Nuestra carrera de ingeniería de software es aquella en la que los desarrolladores pasan más tiempo leyendo código que escribiéndolo, incluso está percepción está respaldada  por estudios y literatura científica. Un trabajo clave es el de Robert C. Martin, un experto en ingeniería de software, quien en su libro Clean Code menciona que los desarrolladores pasan aproximadamente 10 veces más tiempo leyendo código que escribiéndolo. Además, estudios como el de V. B. Bendifallah y W. G. Scacchi en su artículo Understanding Software Maintenance Work (1987) sugieren que la mayor parte del tiempo dedicado al mantenimiento del software se invierte en actividades como la comprensión y lectura del código. Estos trabajos son un reflejo de la práctica común en la industria del software, donde el tiempo de lectura suele superar con creces el tiempo de escritura, especialmente en el contexto del mantenimiento y evolución de software, tema que aún la IA esta lejísimos de lograr.

Quiero que hagamos la siguiente reflexión: Con la llegada del tractor hace más de 150 años  no se acabó el trabajo para los obreros, simplemente cambio, el cambio es inevitable y es la única constante que tenemos en nuestras vidas. Por supuesto la IA generativa cambiará la forma en la que trabajamos pero no significa que extinguirá el trabajo de los programadores, más bien modificará las formas de trabajo así como el tractor cambió la forma en la que se trabaja en el campo hace ya muchos años.

Con lo anterior quiero expresar que ciertamente NO se extinguirá el trabajo de los programadores, sin embargo, si considero que será necesario menos fuerza de obra laboral debido a los incrementos de velocidad de desarrollo gracias a la IA. Lo que antes podíamos hacer con 5 ingenieros en 9 meses, estimo se pueda hacer con 3 ingenieros en 6 meses.

Ser profesor universitario me ha permitido ver el lado negativo de estas herramientas de IA en la educación. Lo que es una herramienta genial para algunos estudiantes que los habilita para profundizar en conocimiento también se ha vuelto en una herramienta de copiar y pegar sin entender absolutamente nada. Algunos estudiantes incluso se sienten orgullosos al decir que se hizo el trabajo sin esfuerzo (Que problema van a tener en un futuro) y otros optan por copiar y pegar cosas asi esten mal solo porque la IA dijo que era correcto. Esto ha provocado una generación de futuros ingenieros que no conocen siquiera lo que es un debug y no son capaces de vaticinar el daño que se están provocando al hacer los trabajos 100% con IA.

Conclusiones:

  • La llegada de software con IA debemos verlo como una herramienta que está a la disposición de nuestra carrera en ingeniería de software y abrazarla, hacerla parte de nuestra rutina diaria y por supuesto no temerle.
  • Seguiremos viendo a gente que en su vida ha programado profesionalmente, diciendo que el trabajo de los programadores se va acabar.
  • Usar herramientas de IA no es copiar y pegar, así como nunca lo fue copiar y pegar de stackoverflow.
  • Se debe comenzar un trabajo fuerte de concientización en la academia del uso de la IA en los estudiantes.

Deja un comentario