Ingeniería Informática en pleno auge de la IA generativa

La Inteligencia Artificial generativa (IAGen) supone un salto de escala en la capacidad de automatización de tareas que comenzó con la división social del trabajo durante la Revolución Industrial. Resulta innegable que, en mayor o menor medida, permite delegar actividades que antes requerían intervención humana. Esto, unido a las prisas de los inversores por su despliegue masivo, ha generado un gran debate público sobre la influencia que esta puede tener sobre el empleo y la sociedad en general.

Mientras los apologistas hablan de reducción del trabajo sin esfuerzo y sin contrapartidas, los críticos advierten sobre la expropiación de contenidos necesaria para el entrenamiento de modelos, la pérdida y precarización de empleos, la reproducción y amplificación de sesgos, el aumento de la burocracia, la concentración de poder en unas pocas empresas, la falta de privacidad, el aumento exponencial de la desinformación o las campañas de acoso y, por encima de todo, el enorme coste ecológico.

Todas estas críticas han de ser abordadas con urgencia y con una respuesta a la altura de la situación. Sin embargo, me gustaría centrarme aquí en un aspecto más concreto: cómo el despliegue masivo de IAGen está impactando en la formación de ingenieras e ingenieros informáticos, así como en su autopercepción y sus expectativas sobre el trabajo que van a desempeñar en un futuro.

Existe una tendencia preocupante entre los estudiantes de ingeniería informática a considerar que su futuro pasa por "aprender" vibe coding e ingeniería de prompts. O, en otras palabras, que es desfasado y sin sentido conocer los fundamentos de la computación. Esta visión es, como mínimo, cortoplacista. En primer lugar, porque la descarga cognitiva en la IAGen lleva a la pereza metacognitiva, lo que limita fuertemente el desarrollo de habilidades y la capacidad de aprendizaje. Además, porque lleva a depender de una herramienta que en cualquier momento puede alterar sus condiciones de uso.

Si bien hay medidas que permiten limitar esta práctica como, en el plano individual, evitar recurrir a la IAGen para tareas de aprendizaje o, en el plano estructural, establecer métodos de enseñanza y evaluación que reduzcan o eliminen el impacto de la IAGen, estos no siempre implementan de manera efectiva. Y, aunque se hiciera, eso no evitaría el problema de la percepción del estudiantado sobre su propia formación y su futuro académico.

Por ello, me gustaría reflexionar aquí sobre cinco áreas de habilidades que pueden resultar fundamentales para la ingeniería informática en pleno auge de la IA generativa.

1. Competencias transversales: Pensamiento crítico, comunicación, gestión de proyectos y resolución de problemas.

Empiezo por las que, paradójicamente, se mencionan menos pese a constar en muchos planes de estudio. El pensamiento crítico es ser capaz de evaluar de manera rigurosa la calidad de una solución, identificar sus limitaciones y detectar problemas y sesgos. La mejor manera de aprender a evaluar código es empezar por programarlo tú mismo/a. Contribuir a proyectos de código abierto, revisar código de otros y escribir tus propias soluciones permite desarrollar esta habilidad1.

La comunicación también es crucial. Si no sabes explicar por qué una solución es buena o mala, o traducir un problema técnico a términos que entiendan personas no expertas, encontrarás limitaciones en cualquier área que intentes abordar. Cada vez que le pides a un LLM que te redacte el email estás perdiendo la oportunidad de ejercitar y desarrollar esta habilidad.

Íntimamente relacionado con la comunicación, la gestión de proyectos implica desarrollar la capacidad de priorizar tareas, asignar recursos de manera eficiente y organizar el trabajo para alcanzar soluciones efectivas. Es una habilidad que se desarrolla con la experiencia y que es difícil de automatizar, ya que requiere juicio humano para tomar decisiones estratégicas, preveer y solventar bloqueos y adaptarse a cambios imprevistos.

La resolución de problemas completa este grupo. Saber descomponer y resolver un problema complejo, muchas veces de manera novedosa, identificando elementos necesarios y sus relaciones de un modo que permita llegar a una solución. Es la capacidad de enfrentarse a un problema sin una solución predefinida, de analizarlo, generar hipótesis, probarlas y refinarlas hasta llegar a una solución efectiva. En el ámbito del desarrollo de software, esto se relaciona de manera directa con el diseño de arquitecturas y algoritmos.

2. Arquitectura de sistemas y diseño

Efectivamente, la capacidad de diseñar sistemas complejos con una visión de alto nivel es la principal tarea que define a un Ingeniero Informático. La IA puede ayudarte a implementar componentes individuales, pero encuentra dificultades para diseñar arquitecturas completas considerando requisitos de escalabilidad, disponibilidad, consistencia y mantenibilidad.

Entender los compromisos o trade-offs entre distintas arquitecturas, saber cuándo usar cada patrón de diseño, anticipar cuellos de botella y diseñar para la evolución a largo plazo son habilidades que requieren experiencia y criterio. Además, son decisiones que tienen consecuencias en el largo plazo y, por ello, demasiado críticas como para ser automatizadas.

3. Modelado de dominio: Conocimiento profundo y experiencia específica

Aquí es donde la experiencia y el conocimiento profundo de un dominio concreto marcan la diferencia. La IA puede generar código genérico, pero no entiende las particularidades de una industria, las regulaciones que debes cumplir, los casos límite que importan o las restricciones que enfrenta una propuesta.

El modelado de dominio no es solo conocer el vocabulario de tu sector, es entender los invariantes del sistema, las reglas de funcionamiento implícitas y las decisiones de diseño que tienen sentido en ese contexto específico. Esta comprensión profunda solo se adquiere con tiempo y experiencia, y es tremendamente difícil de automatizar.

Un buen modelo de dominio es la diferencia entre un sistema que funciona en el mundo real y uno que solo funciona en entornos controlados.

4. Diseño experimental, inferencia causal y razonamiento bayesiano

Esta es probablemente la habilidad más valiosa de una carrera académica. Saber diseñar experimentos controlados que aíslen el efecto de una intervención específica es fundamental para validar que las soluciones que implementas realmente funcionan.

No todo puede resolverse con A/B testing aleatorizado. En muchas situaciones del mundo real necesitas métodos cuasi-experimentales porque no puedes aleatorizar (diferencias en diferencias, controles sintéticos, variables instrumentales...). Entender cuándo puedes inferir causalidad y cuándo solo correlación.

El razonamiento bayesiano te permite cuantificar incertidumbre de manera rigurosa y actualizar tus creencias según llegan nuevos datos. Es el antídoto perfecto contra el exceso de confianza que a menudo generan los modelos de lenguaje.

5. Control de procesos: Supervisión, análisis estadístico y análisis de causas

Una cosa es poner un sistema en producción y otra muy distinta mantenerlo funcionando correctamente a lo largo del tiempo. El control estadístico de procesos (SPC por sus siglas en inglés) es una disciplina con décadas de desarrollo que nos enseña a monitorizar sistemas, detectar desviaciones significativas y diagnosticar causas raíz.

Los gráficos de control, el análisis de capacidad de proceso, la identificación de causas especiales versus causas comunes... es más relevante que nunca en un contexto de sistemas más complejos y opacos que requieren una supervisión más sofisticada.

Conclusiones

Corremos un riesgo real en formar a una generación que solo sepa usar herramientas de IA, sin entender los principios básicos de la ingeniería. Esas personas estarán en problemas cuando cambien las condiciones de servicio de los asistentes IA o cuando se enfrenten a problemas que esas herramientas no pueden resolver.

Las herramientas cambian constantemente pero los fundamentos permanecen. Si quieres ser un/a ingeniero/a de verdad, trata de desarrollar habilidades que realmente importan y que te permitirán seguir aportando con tu trabajo a la sociedad, independientemente de cómo evolucione la tecnología.


  1. El impacto de la IAGen sobre la comunidad de código abierto no es trivial. Algunos mantenedores están cerrando la posibilidad de realizar PR debido a la cantidad de aportaciones de baja calidad generadas por IAGen y la imposibilidad de revisar todas ellas.