Uno de los aspectos más controvertidos de la Inteligencia Artificial es la pérdida de puestos de trabajo por culpa de la automatización de los procesos productivos que la IA está acelerando. Las discusiones acerca de si los robots van a quitarnos el trabajo abundan. Y el argumento típico: “los robots van a quitar el trabajo a mucha gente pero van a crear nuevos empleos” parece que no se sustenta. O, como mínimo, que los nuevos empleos generados por la IA no van a compensar los que se pierden. Aunque esto no tiene porque ser malo (podríamos todos pasar a trabajar menos horas…).
En todo caso, la discusión que nos interesa no es si la IA va a eliminar o no empleos en general si no como la Inteligencia Artificial va a afectar el trabajo en nuestro sector. ¿Como debe prepararse un programador o un ingeniero software para la automatización del proceso de desarrollo?. Ya dije que muchas de las apps del futuro las van a desarrollar bots inteligente. Solos o con la participación de los usuarios finales que van a poder interactuar con los bots, usando entornos de programación inteligentes, para implementar la app.
¿Significa esto que la programación dejará de ser una carrera profesional prometedora en el futuro? Rotundamente, NO.
Ahora mismo los profesionales informáticos son uno de los perfiles más buscados en el mercado de trabajo (algunos datos recientes del mercado español y del mercado norteamericano, pero podéis encontrar mucho más estudios online). Y seguirá siendo así. Eso sí, cambiará el perfil de desarrollador que se busque y el tipo de tareas que se van a llevar a cabo.
Ser informático en Barcelona es ahora mismo casi un chollo. En la ciudad sobran las ofertas de perfil técnico y faltan profesionales para cubrirlas – El Periódico
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 (que ha estudiado en profundidad la relación entre la IA y la evolución de al sociedad en su último libro).
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:
- Tareas poco creativas sin necesidad de empatía: La IA toma el relevo
- Tareas poco creativas que necesitan empatía: La IA hace el análisis, el humano se ocupa de la interacción con la persona.
- Tareas creativas sin empatía: El humano está al mando, la IA le da soporte
- Tarea que necesita creatividad y empatía: El humano sobresale.
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: huid 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.
Imagen de cabecera por Qniksefat [CC BY-SA 4.0], en Wikimedia Commons
Hola.
Muy interesante el artículo.
Como estudiante de HTML5 y posicionamiento web en motores de busqueda. Que me podrías aconsejar para poder seguir trabajando en un futuro de desarrollador?
Gracias.
Hola Fran,
Como explica el artículo, cuanto más cerca estés del cliente mejor. Todo lo que sea entender lo que necesita, diseñar la solución,… está muy lejos de lo que la IA puede hacer hoy en día. Y al contrario, la parte de transformar el diseño aprobado por el cliente de, por ejemplo, PSD a HTML pues sí que es algo con más riesgo.