Desarrollador, no ingeniero. Y por qué importa
El término 'ingeniería de software' se acuñó como una provocación deliberada en una conferencia de la OTAN en 1968. S...
10 min de lectura
14.02.2026, Por Stephan Schwab
La programación en parejas existe desde los días del ENIAC, pero sigue siendo incomprendida y subutilizada. Este artículo explora los estilos probados de codificación colaborativa—desde el emparejamiento tradicional hasta la programación en grupo—y examina cómo los asistentes de IA están cambiando la ecuación. No reemplazando la colaboración humana, sino introduciendo nuevas dinámicas que exigen un pensamiento fresco sobre la transferencia de conocimiento, el aprendizaje y la entrega sostenible.
La mitología del genio desarrollador solitario—encorvado sobre un teclado a las 3 de la mañana, entregando código milagroso por sí solo—persiste en nuestra industria. Hace una narración convincente. También es en gran medida ficción.
Jean Bartik, una de las programadoras del ENIAC, lo dijo claramente: “Betty Snyder y yo, desde el principio, éramos un equipo. Y creo que los mejores programas y diseños se hacen en parejas, porque pueden criticarse mutuamente, encontrar los errores del otro y usar las mejores ideas.” Esto fue en los años 1940. Antes de que la palabra “programa” estuviera siquiera establecida. Inventaron la programación misma como una práctica colaborativa.
Entonces, ¿por qué, ocho décadas después, tantas organizaciones todavía tratan la colaboración como opcional, costosa o una señal de que los desarrolladores carecen de independencia?
El trabajo exhaustivo de Birgitta Böckeler y Nina Siessegger en Thoughtworks documenta cómo se ve el emparejamiento efectivo en la práctica. No teoría. Práctica. Aquí están los estilos que funcionan:
El enfoque clásico. Una persona (el driver) escribe código mientras piensa tácticamente—enfocada en las líneas inmediatas, la sintaxis y los detalles. La otra (el navigator) piensa estratégicamente—observando patrones más amplios, obstáculos potenciales, decisiones próximas.
La clave es el cambio de roles. Regularmente. Si una persona conduce durante horas mientras la otra observa pasivamente, lo están haciendo mal. La energía proviene de que ambas personas participen activamente, cada una aportando un modo cognitivo diferente al trabajo.
Esto funciona brillantemente cuando tienes una tarea claramente definida que se presta al desarrollo guiado por pruebas. El desarrollador A escribe una prueba que falla. El desarrollador B escribe la implementación para que pase. Luego el desarrollador B escribe la siguiente prueba que falla, y el desarrollador A implementa. De ida y vuelta. Rojo-verde-refactorizar en un ritmo.
Obliga a un TDD disciplinado. Mantiene a ambas personas comprometidas. Y distribuye el conocimiento naturalmente porque ambos desarrolladores tocan tanto las pruebas como la implementación.
“Para que una idea pase de tu cabeza a la computadora DEBE pasar por las manos de otra persona.”
Este estilo es particularmente efectivo para la transferencia de conocimiento. La persona experimentada navega. El novato conduce. El navegador guía sin tomar el control. El conductor confía en el navegador incluso cuando la comprensión es incompleta, con preguntas diferidas hasta después de la implementación.
Roza el micromanagement, por lo que no debes usarlo en exceso. Pero para la incorporación inicial, para transferir conocimiento técnico específico, es notablemente efectivo. El objetivo es el aprendizaje activo haciendo, no la observación pasiva.
Esto es menos una técnica y más un cambio de mentalidad. El ciclo de vida de una historia de usuario incluye planificación, investigación, exploración, documentación—no solo escribir código. Emparejarse a través de todas esas actividades mantiene a ambas personas involucradas en el resultado.
Cuando te encuentras con incógnitas, divídanse para investigar diferentes ángulos. Definan las preguntas que necesitan responder, establezcan un límite de tiempo para la exploración, luego reúnanse para compartir hallazgos. Esto respeta diferentes ritmos de aprendizaje mientras mantiene la propiedad compartida.
A veces dos no son suficientes. A veces todo el equipo debería estar en la sala.
Mob programming (también llamado ensemble programming para evitar las connotaciones negativas de “mob”) extiende el concepto de emparejamiento: todos trabajan en lo mismo, al mismo tiempo, en la misma computadora. Una persona conduce. El resto navega.
Suena caótico. Bien hecho, es lo contrario.
Woody Zuill, quien fue pionero en este enfoque, lo describe como “Todas las personas brillantes trabajando en lo mismo, al mismo tiempo, en el mismo espacio, en la misma computadora.” El beneficio no es la velocidad—es la alineación. Las decisiones complejas se toman con todos presentes. El conocimiento se difunde instantáneamente. Nadie está bloqueado esperando que alguien más termine.
Úsalo para:
No lo uses para:
El artículo de Thoughtworks señala que las rotaciones cada 2-3 días en el emparejamiento regular ayudan a prevenir silos de conocimiento, pero rotaciones demasiado frecuentes crean cambios de contexto excesivos. El mismo principio aplica a las sesiones de mob. Úsalas intencionalmente, no como predeterminado.
Ahora llegamos a la parte que es genuinamente nueva. Asistentes de codificación impulsados por IA — aquellos que se integran directamente en el editor, ofreciendo sugerencias de código en tiempo real, autocompletado y refactorización — han introducido un tipo diferente de dinámica de colaboración.
Cuando un asistente de IA se sienta en tu entorno de desarrollo, maneja ciertas funciones de navegador automáticamente:
Esto es real. Los desarrolladores reportan ganancias de productividad medibles en tareas de codificación rutinarias. Pero esa no es la parte interesante.
La parte interesante es lo que esto libera al navegador humano para hacer.
Un compañero de emparejamiento humano proporciona cosas que la IA no puede:
Los asistentes de IA son excelentes en el reconocimiento de patrones. Están entrenados en millones de ejemplos de código. Pero no entienden tu estrategia de producto, los puntos de dolor de tus usuarios o las restricciones bajo las que opera tu equipo.
Aquí es donde se vuelve problemático.
Un desarrollador junior emparejándose con un desarrollador senior aprende no solo qué codificar, sino por qué ciertos enfoques funcionan y otros no. Ven la toma de decisiones en tiempo real. Hacen preguntas. Absorben conocimiento tácito sobre el dominio y la base de código.
Un desarrollador junior emparejándose con un asistente de IA obtiene respuestas rápidas. Obtiene código funcional. Pero se pierde el viaje de aprendizaje.
Si no tenemos cuidado, los asistentes de IA se convierten en una muleta que impide a los desarrolladores construir el juicio requerido para trabajo de nivel senior. GitHub Copilot puede sugerir una implementación correcta. No puede explicar las compensaciones, el contexto histórico o las alternativas que se consideraron y rechazaron.
Por eso el desarrollo asistido por IA funciona mejor cuando:
El marco que importa: los asistentes de IA son herramientas que amplifican lo que los desarrolladores capacitados pueden lograr. No reemplazan la necesidad de colaboración o mentoría.
Bien usados, manejan patrones repetitivos para que los humanos puedan enfocarse en problemas de nivel superior. Mal usados, crean una generación de desarrolladores que pueden entregar código pero no pueden explicar por qué funciona.
El artículo de Thoughtworks identifica algo crucial: el emparejamiento es difícil porque requiere mostrar que no sabes algo, que estás inseguro, que cometiste un error. En una industria obsesionada con el mito del desarrollador 10x, eso es incómodo.
Pero como muestra la investigación de Brené Brown, la vulnerabilidad es el lugar de nacimiento de la innovación y el cambio. Los equipos que pueden ser vulnerables entre sí—que pueden decir “No entiendo esto” o “Creo que vamos por el camino equivocado”—son los equipos que construyen gran software.
Medidas prácticas para que funcione:
Las organizaciones que lo hacen bien no tratan el emparejamiento como un proceso impuesto desde arriba. Lo tratan como una habilidad para aprender, practicar y mejorar continuamente.
Muchos equipos evitan el emparejamiento porque ya tienen revisión de código. Flujos de aprobación formales. Dos firmas requeridas. Proceso forzado.
Aquí está el problema: las revisiones de código después del hecho suelen ser superficiales. El codificador difiere algunas decisiones pensando que el revisor detectará problemas. El revisor confía en la diligencia del codificador y no mira muy de cerca. La falacia del costo hundido entra en juego—nadie quiere causar retrabajo en algo ya “terminado.”
El emparejamiento te da revisión de código en tiempo real, cuando todavía es barato cambiar de dirección. Cuatro ojos en el código mientras se escribe. Retroalimentación inmediata. Correcciones pequeñas continuas en lugar de grandes ciclos de retrabajo.
Para equipos que practican desarrollo basado en trunk e integración continua (como documentan los informes State of DevOps), las revisiones de código retrasadas socavan activamente el flujo. Quieres cambios pequeños integrados frecuentemente. El trabajo que espera días en colas de revisión crea fricción, no seguridad.
Los pull requests tienen su lugar—son esenciales para contribuciones de código abierto donde la confianza debe ganarse y la latencia de revisión es inevitable. Pero los equipos internos de empresa que trabajan desde un trunk compartido deben emparejar por defecto y hacer commit directamente.
Sé pragmático. Algunas tareas genuinamente no se benefician del emparejamiento:
Los desarrolladores junior particularmente necesitan algo de tiempo en solitario para construir confianza en que pueden resolver problemas independientemente. El emparejamiento constante sin descansos puede crear dependencia en lugar de crecimiento.
La clave es hacer del emparejamiento el predeterminado mientras se es intencional sobre las excepciones. No al revés.
Si eres desarrollador:
Si eres tech lead o manager:
Si eres ejecutivo:
Jean Bartik y Betty Snyder descubrieron esto en los años 1940. Ocho décadas después, la lección permanece: el mejor código viene de la colaboración, la crítica y la disposición a usar las mejores ideas del otro.
El mito del desarrollador solitario muere con dificultad. Pero es hora de dejarlo ir.
Hablemos de tu situación real. ¿Quieres acelerar la entrega, quitar bloqueos técnicos o validar si una idea merece más inversión? Escucho tu contexto y te doy 1-2 recomendaciones prácticas. Sin compromiso ni discurso comercial. Confidencial y directo.
Empecemos a trabajar juntos