Moda, Tendencias, Estilos. Compras y experiencias en la red

¿Perderán los programadores su empleo por culpa de la inteligencia artificial?

Para ver el cómo evolucionará el mundo del desarrollo software con la IA y cuáles serán las tareas donde los Ingenieros Software humanos seguirán siendo imprescindibles, veamos este gráfico de Kai-Fu Lee.

En su gráfico, Kai-Fu clasifica las tareas en dos dimensiones: empatía (es decir capacidad para entender a las personas y “conectar” con ellas) y creatividad, lo que nos da cuatro tipos de tareas:

  1. Tareas poco creativas sin necesidad de empatía: La IA toma el relevo
  2. Tareas poco creativas que necesitan empatía: La IA hace el análisis, el humano se ocupa de la interacción con la persona.
  3. Tareas creativas sin empatía: El humano está al mando, la IA le da soporte
  4. Tarea que necesita creatividad y empatía: El humano sobresale.

Relación entre el tipo de trabajo y su impacto por la IA

Los tipos de empleo que se verán más afectados por la IA

Fijaros que en un proyecto de desarrollo combinamos los cuatro tipos de tareas.

La creación de formularios tipo CRUD para entrar datos sería un ejemplo del tipo 1. Y el clásico ejemplo de tarea que se puede automatizar fácilmente (y para la cuál no hace falta tener bots muy inteligentes ). Muchos frameworks de programación actuales ya permiten justamente generar este tipo de interfaces (lo que normalmente llaman “scaffolding”) a partir de la definición de los datos del programa.

Cualquier tipo de interacción con el cliente, necesita obviamente de una capacidad de empatía y comunicación que la IA no puede proporcionar.

En línea con lo que decíamos antes, una vez entendido lo que quiere el cliente, el grado de soporte que nos podrá dar la IA ya dependerá de la complejidad del software a desarrollar. Si estamos ante una aplicación web estándar de entrada de datos, la IA podrá hacerlo todo ella solita. Si estamos hablando de sistemas de control donde la optimización juega un rol muy importante, ahí seguiremos necesitando un programador experimentado que sea capaz de dar con soluciones creativas al problema (asistido o no  por un motor de IA para, por ejemplo, simular y combinar soluciones parciales definidas por el programador).

Como ingeniero (o futuro ingeniero) software, creo que este marco os puede ser muy útil para ver la posible evolución de vuestra carrera profesional a largo plazo (las técnicas actuales de IA no están todavía preparadas para asumir su parte del desarrollo pero estoy seguro que es cuestión de tiempo).

Las iniciativas actuales que persiguen enseñar conocimientos de programación a todo el mundo me parecen excelentes como manera de enseñar conceptos de pensamiento computacional que van a ser útiles en muchos aspectos de la vida profesional de una persona, aunque no se dedique al mundo de la informática.

Pero está claro que nos estamos moviendo a un futuro en el qué la programación no será nunca más una opción profesional para personas con conocimientos de programación muy básicos.  No valdrá con hacer un par de cursillos de JavaScript (o el lenguaje que esté de moda en ese momento) y empezar a trabajar. Hay gente que opina lo contrario y ve la programación como un trabajo “blue-collar” (lo equivalente a los obreros y trabajos manuales de hoy en día) pero creo que se equivocan.

El resumen rápido sería: huir de las tareas de programación repetitivas y moveros a las que proporcionan más valor añadido. Cuanto más conocimiento y creatividad requiera una tarea, más apreciada será vuestra contribución. Y esto es así aún sin la Inteligencia Artificial. Si vuestro trabajo es poco importante para la empresa, tiene poco nivel cognitivo y lo puede hacer cualquiera, a lo mejor la empresa no os cambia por un robot pero sí por otro trabajador que cobre menos.

Ver más en Ingenieria de Software

Relacionado