En desarrollo de software solemos hablar constantemente sobre velocidad, productividad y eficiencia. Nuevos frameworks, mejores arquitecturas, automatización, pipelines más rápidos, herramientas más inteligentes…
Pero rara vez hablamos del verdadero cuello de botella: la mente humana.
La realidad es que gran parte del trabajo diario de un desarrollador no consiste únicamente en resolver problemas complejos. También implica recordar comandos, navegar documentación infinita, entender sistemas heredados, cambiar constantemente de contexto y mantener una enorme cantidad de información activa en la cabeza.
Y eso tiene un coste.
En Team Topologies, Matthew Skelton y Manuel Pais hablan sobre la importancia de gestionar la carga cognitiva dentro de los equipos de desarrollo y cómo reducir especialmente la carga innecesaria:
“Reduce extraneous cognitive load, tasks that are superfluous, boring or repetitive with hard to remember commands.”
Y es difícil no leer esta frase hoy y pensar automáticamente en inteligencia artificial.
Porque gran parte de las herramientas de IA actuales encajan precisamente ahí: reduciendo tareas repetitivas, eliminando fricción mental y ayudando a los desarrolladores a no malgastar energía cognitiva en detalles superfluos.
No porque la IA vaya a reemplazar desarrolladores.
Sino porque puede ayudarnos a pensar mejor.
¿Qué es la carga cognitiva?
La carga cognitiva es la cantidad de esfuerzo mental que necesitamos para realizar una tarea.
Nuestro cerebro tiene una capacidad limitada. Cuantas más cosas debemos recordar, procesar o mantener activas simultáneamente, peor tomamos decisiones y más errores cometemos.
En ingeniería de software esto es especialmente importante, porque trabajamos continuamente con:
- Sistemas complejos
- Abstracciones
- Dependencias
- Context switching
- Reglas de negocio
- Herramientas cambiantes
Y no toda la carga cognitiva es igual.
Los 3 tipos de carga cognitiva
1. Intrinsic Cognitive Load
Es la carga inherente al propio problema.
Por ejemplo:
- Diseñar una arquitectura distribuida
- Entender concurrencia
- Resolver problemas complejos de dominio
- Diseñar sincronización offline-first
Esta carga no puede eliminarse fácilmente porque forma parte del verdadero trabajo intelectual.
Y está bien que exista.
Es donde los desarrolladores aportamos valor diferencial.
La IA puede ayudar parcialmente aquí:
- Explicando conceptos complejos
- Ayudando a visualizar arquitecturas
- Comparando enfoques técnicos
- Actuando como soporte de reasoning
Pero difícilmente eliminará esta carga por completo, porque resolver problemas complejos sigue requiriendo criterio humano.
2. Extraneous Cognitive Load
Es la carga innecesaria.
Aquí encontramos:
- Comandos difíciles de recordar
- Configuraciones complejas
- Tooling inconsistente
- Boilerplate repetitivo
- Navegar documentación constantemente
- Buscar errores en StackOverflow
- Tener que recordar sintaxis exactas
Y este es precisamente el tipo de carga del que habla Team Topologies.
No aporta valor real.
Solo consume energía mental.
Y aquí es donde la IA puede tener un impacto brutal.
Porque este tipo de carga es perfectamente delegable:
- Generar configuraciones
- Explicar errores
- Recordar comandos
- Crear boilerplate
- Navegar documentación
- Traducir entre tecnologías
- Entender APIs desconocidas
La IA no reemplaza el pensamiento.
Elimina fricción mental.
Y probablemente esta será una de las mayores mejoras de productividad que veremos en los próximos años.
3. Germane Cognitive Load
Es la carga relacionada con el aprendizaje y la construcción de modelos mentales.
Por ejemplo:
- Aprender Swift Concurrency
- Interiorizar Combine
- Comprender Clean Architecture
- Entender cómo funciona realmente SwiftUI
Esta carga es positiva porque fortalece nuestra experiencia y comprensión.
Curiosamente, la IA también puede ayudar aquí:
- Explicando conceptos adaptados a tu nivel
- Generando ejemplos contextualizados
- Respondiendo preguntas específicas sobre tu código
- Reduciendo la fricción de aprendizaje
El problema aparece cuando la carga extraneous consume tanto espacio mental que apenas queda capacidad para profundizar realmente.
El problema actual: demasiada fricción mental
El desarrollo moderno tiene una paradoja interesante.
Nunca hemos tenido tantas herramientas.
Y, al mismo tiempo, nunca ha sido tan difícil recordarlo todo.
Hoy un desarrollador puede trabajar en:
- Kubernetes
- CI/CD
- SwiftUI
- GraphQL
- Terraform
- Fastlane
- Firebase
- Analytics
- Feature flags
- Observabilidad
- AI tooling
Todo en la misma semana.
La consecuencia es clara: cada vez dedicamos más energía mental a recordar cómo hacer las cosas, y menos a pensar qué deberíamos construir.
La IA como capa de abstracción cognitiva
Quizás el verdadero valor de la IA no sea generar código automáticamente.
Quizás sea convertirse en una nueva capa de abstracción cognitiva.
Una especie de interfaz entre nosotros y la complejidad técnica.
Por ejemplo:
- Explicar errores crípticos
- Navegar sistemas legacy
- Recuperar conocimiento olvidado
- Entender dependencias desconocidas
- Generar scripts complejos
- Automatizar tareas repetitivas
La diferencia es enorme.
Pasamos de:
“Tengo que recordar exactamente cómo funciona esto”
a:
“Sé lo que quiero conseguir”
Y ese cambio altera completamente la experiencia de desarrollar software.
Un ejemplo simple, pero poderoso
Piensa en algo cotidiano.
Hace unos años, configurar Fastlane correctamente podía requerir:
- Leer documentación
- Buscar ejemplos
- Copiar snippets
- Ajustar certificados
- Probar comandos manualmente
Hoy puedes simplemente pedir:
“Configura Fastlane para distribuir builds beta con TestFlight y manejar certificados automáticamente.”
La IA no elimina la necesidad de entender el proceso.
Pero sí elimina gran parte de la fricción cognitiva innecesaria.
Y esto empieza a generar otro efecto muy interesante: el lenguaje o la tecnología dejan de ser un stopper tan grande como antes.
Hace años, cambiar de stack suponía:
- Semanas aprendiendo sintaxis
- Entender tooling nuevo
- Memorizar convenciones
- Leer toneladas de documentación
Hoy, gracias a la IA, un desarrollador puede moverse entre tecnologías con mucha menos fricción.
No porque la IA sustituya el conocimiento profundo, sino porque reduce enormemente el coste cognitivo inicial.
La barrera de entrada empieza a bajar.
Y eso puede cambiar radicalmente cómo evolucionan las carreras técnicas, los equipos y hasta las decisiones arquitectónicas.
La IA como “memoria externa”
Quizás la mejor forma de entenderlo es esta:
La IA se convertirá en una especie de memoria externa contextual.
Una capa capaz de:
- Recuperar conocimiento
- Explicar conceptos
- Adaptarse al contexto
- Reducir switching mental
- Recordar detalles técnicos por nosotros
Y esto es especialmente importante en sistemas grandes y organizaciones complejas.
Porque el verdadero problema no suele ser escribir código.
El verdadero problema es entender sistemas enormes sin colapsar mentalmente.
Pero cuidado: no toda carga cognitiva debe eliminarse
Aquí hay un matiz importante.
Reducir carga cognitiva no significa dejar de pensar.
Si delegamos completamente el razonamiento en la IA:
- Perdemos comprensión
- Perdemos criterio
- Perdemos intuición técnica
- Perdemos capacidad de diseño
La IA debería ayudarnos principalmente con la carga extraneous, no eliminar la intrinsic ni la germane.
Es decir:
- Menos energía recordando sintaxis
- Más energía entendiendo problemas reales
Ahí está el equilibrio.
Preguntas que todavía no sabemos responder
Y aquí es donde probablemente empieza la parte más interesante.
Porque si la IA reduce drásticamente el coste de escribir código… muchas decisiones tradicionales podrían cambiar.
Por ejemplo:
¿Seguirá teniendo sentido apostar por frameworks multiplataforma?
Si un agente puede generar código nativo rápidamente:
- ¿seguirá compensando sacrificar experiencia nativa?
- ¿o volveremos a múltiples codebases porque el coste de mantenerlas será menor?
¿Qué ocurrirá con la especialización tecnológica?
Si cambiar de lenguaje deja de ser tan costoso:
- ¿seguirá existiendo la figura del especialista ultra profundo?
- ¿o veremos perfiles más generalistas apoyados constantemente por IA?
¿La arquitectura volverá a ganar protagonismo?
Si escribir código es cada vez más barato:
- ¿el verdadero diferencial pasará a ser diseñar sistemas correctamente?
- ¿volverá el foco a negocio, dominio y arquitectura?
¿Cómo cambiará el onboarding?
Si una IA puede explicar el sistema, navegar el código y responder preguntas:
- ¿se reducirá drásticamente el tiempo de adaptación de nuevos desarrolladores?
- ¿cómo afectará eso a los equipos?
¿Qué ocurrirá con el conocimiento tribal?
Muchas organizaciones sobreviven gracias a personas que “saben cómo funciona todo”.
Pero si una IA puede acceder al contexto técnico completo:
- ¿desaparecerá parte de esa dependencia?
- ¿o aparecerán nuevos problemas de confianza y validación?
El futuro: menos fricción, más capacidad mental disponible
Probablemente estamos entrando en una etapa donde el desarrollo de software será menos mecánico y más estratégico.
Menos:
- Memorizar APIs
- Buscar comandos
- Copiar snippets
- Navegar documentación infinita
Y más:
- Diseñar sistemas
- Entender negocio
- Resolver problemas complejos
- Tomar decisiones arquitectónicas
La IA no hará desaparecer a los desarrolladores.
Pero sí puede reducir gran parte del ruido mental que llevamos años aceptando como normal.
Y quizás ese sea su verdadero potencial: no escribir software por nosotros, sino permitirnos dedicar nuestra capacidad mental a lo que realmente importa.
