La falacia de sustituir a los ingenieros de software por AI
Hoy en día, los ingenieros de software se ven atormentados por el espectro de que la IA pueda usurpar sus puestos de trabajo. Los modelos de IA generativa como ChatGPT han generado una creciente preocupación sobre el fin del desarrollo de software centrado en el ser humano. Sin embargo, es fundamental reconocer que esos temores están lejos de ser nuevos. A lo largo de los años, varias tecnologías han pretendido "perturbar" la profesión de la codificación, pero ninguna ha logrado reemplazar a los desarrolladores humanos. Por el contrario, a menudo han hecho que los ingenieros de software sean aún más indispensables.
Los conceptos erróneos sobre la informática temprana y el desarrollo de software
Es instructivo mirar hacia atrás en la historia de la informática para comprender por qué las preocupaciones sobre que la IA se haga cargo de los trabajos de codificación pueden ser exageradas. Durante los primeros días de la informática, la arquitectura de sistemas y hardware se consideraba la cúspide del esfuerzo intelectual en este campo. El software fue una idea de último momento, a menudo relegado a un nivel inferior de importancia.
Los científicos informáticos pioneros como John Backus consideraban que los programadores realizaban un trabajo de baja categoría. La dinámica de género del período también influyó: muchos de los primeros programadores fueron mujeres, cuyas contribuciones fueron minimizadas debido al sexismo. A pesar de las actitudes despectivas, los programadores siguieron siendo indispensables. Asumieron el duro trabajo de codificar, depurar y probar, liberando a pioneros como Backus para centrarse en lo que consideraban asuntos más “significativos”.
Intentos evolutivos para 'eliminar' a los ingenieros de software
Con el tiempo, las innovaciones tecnológicas apuntaron a simplificar el papel de los codificadores o incluso eludirlos por completo. FORTRAN fue diseñado para permitir a los científicos escribir programas sin programadores. La sintaxis en inglés fácil de entender de COBOL tenía como objetivo capacitar a los administradores para codificar sin la ayuda de un desarrollador. El modelo de desarrollo Waterfall pretendía estandarizar los procesos de desarrollo de software, mientras que se suponía que la programación orientada a objetos simplificaría la codificación hasta el punto de que cualquiera pudiera hacerlo.
Curiosamente, los ingenieros de software a menudo se resistían a estos cambios, por temor a que se volvieran obsoletos. Sin embargo, estos temores resultaron infundados. Tecnologías como FORTRAN y COBOL agregaron nuevas capas de complejidad en lugar de simplificar las cosas. El modelo Waterfall provocó problemas burocráticos que obstaculizaron el desarrollo eficiente de software.
La importancia duradera de los codificadores humanos: una crisis en la ingeniería de software
A pesar de las innovaciones destinadas a eliminar o reducir la necesidad de codificadores humanos, surgió una paradoja: el mundo todavía necesitaba más ingenieros de software. En una conferencia de 1968 patrocinada por la OTAN, se utilizó el término “crisis” para describir la situación en la ingeniería de software. Los proyectos se estaban estancando o retrasando, no debido a que hubiera demasiados ingenieros de software, sino a causa de muy pocos.
ChatGPT y la realidad de la IA en el desarrollo de software
Hoy en día, el discurso sobre ChatGPT que reemplaza a los ingenieros de software humanos parece carecer de perspectiva histórica. El uso de IA para reemplazar a los ingenieros en el desarrollo de funciones complejas probablemente tendría resultados desastrosos, lo que haría inevitable la recontratación de ingenieros humanos. En una nota más práctica, los modelos de lenguaje grandes (LLM) como ChatGPT pueden automatizar tareas rutinarias, como proporcionar sugerencias de autocompletar u ordenar datos, pero estas tareas son solo una fracción de lo que implica el desarrollo de software.
Mejorar, no reemplazar, la productividad humana
En lugar de robar puestos de trabajo, ChatGPT y tecnologías similares podrían cambiar la naturaleza del trabajo de codificación, eliminando algunas de las tareas más mundanas y permitiendo a los ingenieros centrarse en los verdaderos desafíos intelectuales. Este escenario refleja cómo los compiladores eliminaron la necesidad de que los programadores trabajaran directamente con código binario. ¿El resultado? Los programadores se volvieron más valiosos, no menos, ya que podían dedicar más tiempo a la resolución de problemas complejos y al desarrollo de funciones.
La paradoja de la complejidad: por qué la IA no reemplazará a los ingenieros de software
Edsger Dijkstra señaló una vez que a medida que las computadoras se han vuelto más complejas, la programación ha pasado de ser un problema insignificante a convertirse en un desafío importante. Los esfuerzos para hacer que la programación sea tan simple que cualquiera pueda realizarla solo han resultado en agregar más capas de complejidad. Lejos de hacer obsoletos a los ingenieros de software, es probable que el auge de tecnologías avanzadas como ChatGPT las haga aún más integrales en el proceso de desarrollo de software.
Conclusión: la improbable extinción de los ingenieros de software
La idea de que la IA reemplazará por completo a los ingenieros de software humanos parece inverosímil cuando se la mira a través de la lente de la historia. Una y otra vez, las innovaciones destinadas a dejar de lado a los codificadores sólo han logrado hacerlos más indispensables. El potencial de los grandes modelos de lenguaje para ayudar en el desarrollo de software probablemente seguirá el mismo camino, aumentando en lugar de reemplazar la capacidad humana. Por lo tanto, los ingenieros de software pueden respirar aliviados; sus habilidades siguen siendo tan valiosas como siempre en nuestro mundo digital cada vez más complejo.