Read in English · Lire en français · Auf Deutsch lesen
Sección 3.7 de 3.8 · Intermedio · 22 min de lectura
La ley de Conway y la forma de las organizaciones
Videolección
5 min · narrado en inglés, con subtítulosSolo escuchar (audio)
Leer la transcripción
Cuando diseñas un sistema, también estás diseñando quién necesita hablar con quién. En esta lección aprenderás la ley de Conway, la evidencia que la respalda, la aritmética del tamaño de los equipos y cómo los arquitectos usan la ley a propósito.
Imagina cuatro grupos de constructores, cada uno construyendo una parte de una casa. Nunca hablan entre sí. Obtendrás cuatro partes que encajan mal, con las uniones justo donde se encontraron los grupos. El software funciona igual. Las partes de un sistema, y las conexiones entre ellas, tienden a copiar qué equipos hablan entre sí. Y lo contrario es igual de cierto.
En 1968, la revista Datamation publicó un artículo de Melvin Conway titulado How Do Committees Invent? Su conclusión se conoce hoy como ley de Conway: las organizaciones que diseñan sistemas están obligadas a producir diseños que copian sus estructuras de comunicación. El razonamiento es casi mecánico. Dos partes de un sistema se conectan mediante una interfaz, y una interfaz solo existe donde las personas que diseñan esas partes la negociaron. Así que la estructura del sistema refleja la de la organización. Su ejemplo: ocho personas tenían que escribir dos compiladores. Cinco se asignaron a COBOL y tres a ALGOL. El compilador de COBOL funcionaba en cinco fases, y el de ALGOL en tres.
Así se ve hoy. Los equipos de pago y de catálogo hablan entre sí, pero cada cambio de esquema pasa por un equipo de base de datos compartido. Así que el sistema que construyen se acopla a través de una base de datos compartida. Ambos servicios leen y escriben en tablas compartidas. Nadie lo planificó. Es lo que ocurre cuando las únicas uniones de un producto están donde las personas que lo construyen hablaron de verdad.
¿Es cierto? En 2012, MacCormack, Baldwin y Rusnak compararon pares equivalentes de productos, uno de una empresa fuertemente acoplada y otro de una comunidad de código abierto débilmente acoplada. En todos los pares, el producto de la organización débilmente acoplada era más modular. Un estudio de Microsoft Research sobre Windows Vista encontró que los datos sobre la organización que había detrás de cada parte predecían qué partes eran propensas a fallos mejor que las métricas de código convencionales. Pero una revisión de 2016 de ciento cuarenta y dos estudios encontró que el reflejo era común, pero no universal. Los estudios de proyectos abiertos a menudo no lo respaldan, quizá porque las herramientas compartidas y el debate abierto permiten a las personas coordinarse de todos modos. Es una tendencia fuerte, no una ley de la física.
El tamaño del equipo también importa. Un grupo de n personas tiene n por n menos uno, dividido entre dos, posibles vías de comunicación. Tres personas tienen tres. Cinco personas tienen diez. Y ocho personas tienen veintiocho. Las vías crecen aproximadamente con el cuadrado del grupo: duplica el equipo y cuadruplicarás las vías.
El producto de pedidos de una empresa de reparto de comida lo construye un equipo de ocho: veintiocho vías. Tiene previsto crecer hasta veinticuatro ingenieros. Como un solo equipo de veinticuatro, son doscientas setenta y seis vías: unas diez veces más, para el triple de personas. Como tres equipos de ocho, hay ochenta y cuatro vías dentro de los equipos. Si cada equipo tiene un punto de contacto con cada uno de los otros equipos, eso añade solo tres. Unas ochenta y siete en total. Pero si la propiedad no está clara y cada cambio necesita a todos los ingenieros, vuelves a las doscientas setenta y seis. Así que dividir a las personas en equipos solo ayuda si el sistema se divide de forma equivalente, de modo que la mayoría de los cambios solo necesiten a un equipo. La arquitectura es lo que hace posible el grafo más pequeño.
Si los sistemas reflejan las organizaciones, puedes aprovecharlo de forma deliberada. La maniobra inversa de Conway da forma a los equipos para la arquitectura que quieres: un equipo estable por cada límite previsto, propietario de su código, sus datos y su pipeline, que trabaja con los demás mediante API y eventos publicados. Tiene límites. Reorganizar los equipos no reestructura un código fuertemente acoplado. Y si trazas mal los límites, la ley de Conway reproducirá fielmente el error. La carga cognitiva del equipo limita cuánto puede poseer un equipo: el dominio, el código, la infraestructura y las guardias. Un equipo que posee doce servicios repartidos en cuatro dominios está sobrecargado, por limpio que sea el código de cada servicio. Así que da a cada módulo, servicio y almacén de datos un único equipo propietario. La propiedad compartida, en la práctica, significa ausencia de propiedad. Y recuerda: las reorganizaciones son decisiones de arquitectura.
La sección completa trata la investigación en detalle y qué hacer cuando el organigrama y la arquitectura no coinciden. A continuación, en la Sección tres punto ocho, veremos la simplicidad y la medición de la estructura. Nos vemos allí.
Lo que necesitas saber
- El artículo de Melvin Conway de 1968 en Datamation sostenía que las organizaciones que diseñan sistemas están obligadas a producir diseños que copian sus propias estructuras de comunicación.
- La razón es mecánica: una interfaz entre dos subsistemas solo existe donde sus diseñadores la negociaron, por lo que el grafo del sistema refleja el grafo de comunicación de la organización.
- MacCormack, Baldwin y Rusnak (2012) encontraron que los productos de organizaciones débilmente acopladas eran sistemáticamente más modulares que productos equivalentes de organizaciones fuertemente acopladas, aunque una revisión de 2016 halló que este reflejo es común, pero no universal.
- Un grupo de n personas tiene n(n-1)/2 vías de comunicación, así que el costo de coordinación crece aproximadamente con el cuadrado del tamaño del equipo, y los equipos pequeños que son dueños de partes equivalentes del sistema lo mantienen manejable.
- La maniobra inversa de Conway da forma a los equipos y a sus interacciones en función de la arquitectura que quieres, pero solo funciona lentamente frente a un código existente muy acoplado.
- La carga cognitiva del equipo limita cuánto de un sistema puede poseer un equipo; los límites deben dar a cada equipo una parte que pueda entender, construir y operar por completo.
Lo que Conway dijo realmente
En abril de 1968 la revista Datamation publicó "How Do Committees Invent?" de Melvin Conway, programador y consultor informático. Su conclusión es la frase conocida hoy como ley de Conway: las organizaciones que diseñan sistemas están obligadas a producir diseños que son copias de las estructuras de comunicación de esas organizaciones
. El nombre llegó después: Fred Brooks citó el artículo en The Mythical Man-Month (1975) y llamó a la idea ley de Conway.
El argumento de Conway es más preciso que el eslogan. Un sistema está formado por subsistemas conectados mediante interfaces. Para que dos subsistemas se conecten, las personas que los diseñan tienen que haber negociado y acordado esa interfaz, así que tienen que haberse comunicado. Si los diseñadores de dos subsistemas no se comunican, no hay ninguna interfaz que acordar. Existe, por tanto, una correspondencia que preserva la estructura (Conway usó el término matemático homomorfismo) entre el grafo del sistema y el grafo de la organización que lo diseñó. Su ejemplo: una organización de investigación por contrato tenía ocho personas para escribir un compilador de COBOL y otro de ALGOL. Cinco se asignaron a COBOL y tres a ALGOL. El compilador de COBOL funcionaba en cinco fases; el de ALGOL, en tres.
Dos puntos más del artículo suelen olvidarse. Primero, Conway dejó claro que "sistema" se entiende en sentido amplio: se aplica a cualquier cosa diseñada, no solo al software. Segundo, su conclusión práctica se refería a la flexibilidad. Como el primer diseño rara vez es el mejor, y como una organización tiende a fijar su estructura pronto (una vez formados los equipos, el diseño ya está decidido en parte), sostuvo que las organizaciones de diseño deben mantenerse ligeras y flexibles, y organizarse según la comunicación que el diseño realmente necesita.
El espejo
La evidencia: la hipótesis del espejo
Durante décadas, la ley de Conway se apoyó sobre todo en anécdotas. Desde la década de 2000 los investigadores la han puesto a prueba, normalmente con el nombre de hipótesis del espejo (mirroring hypothesis): las dependencias técnicas de un producto coincidirán con los vínculos organizativos (comunicación, ubicación compartida, relación laboral) entre las personas que lo construyen.
El estudio más conocido sobre software es el de Alan MacCormack, Carliss Baldwin y John Rusnak, publicado en Research Policy en 2012 como "Exploring the duality between product and organizational architectures: a test of the mirroring hypothesis". Compararon pares equivalentes de productos con funciones similares, uno construido por una organización fuertemente acoplada (una empresa comercial con un equipo en un mismo lugar) y otro por una organización débilmente acoplada (una comunidad de código abierto distribuida): por ejemplo, dos paquetes de gestión financiera, dos procesadores de texto, dos bases de datos, y Linux frente a núcleos de sistemas operativos comerciales. Midieron la modularidad mediante el costo de propagación, la proporción media de los archivos de un sistema a los que un cambio en un archivo puede afectar directa o indirectamente. En todos los pares, el producto de la organización débilmente acoplada era más modular, y en el par más extremo la diferencia era de varias veces. Los autores lo interpretan como evidencia de que los equipos distribuidos, que no pueden coordinarse con facilidad, se ven empujados hacia diseños que necesitan menos coordinación.
Un estudio de Microsoft Research sobre Windows Vista, de Nachiappan Nagappan, Brendan Murphy y Victor Basili (2008), abordó la cuestión desde el lado de la calidad. Las métricas que describían la organización que construyó cada binario (cuántos ingenieros lo tocaron, cuántos se habían ido, a qué distancia en la jerarquía de gestión estaban los contribuyentes) predecían qué binarios eran propensos a fallos mejor que las métricas de código convencionales, como la rotación de código (churn), la complejidad, la cobertura y las dependencias.
La evidencia no es unánime, y el resumen honesto importa. Una revisión de 2016 de 142 estudios empíricos, de Lyra Colfer y Carliss Baldwin, encontró que el reflejo era común en los estudios de industrias y empresas, pero no universal, y que los estudios de proyectos colaborativos abiertos a menudo no lo respaldaban, probablemente porque los repositorios de código compartidos, los gestores de incidencias y el debate abierto permiten a los contribuyentes distribuidos coordinarse sin los vínculos organizativos habituales. El reflejo es una tendencia fuerte, no una ley de la física, y unas buenas herramientas y prácticas pueden romperlo en parte.
Las vías de comunicación y por qué importa el tamaño del equipo
Un grupo de n personas tiene n(n − 1) / 2 posibles vías de comunicación de persona a persona. El número crece aproximadamente con el cuadrado del grupo: duplicar el equipo cuadruplica las vías. Brooks usó la misma aritmética para explicar por qué añadir personas a un proyecto retrasado lo retrasa aún más: cada recién llegado debe recibir formación y añade nuevas vías que todos deben mantener.
Desde el punto de vista arquitectónico, la aritmética explica dos cosas. Primero, un solo equipo no puede crecer indefinidamente y seguir manteniendo una comprensión compartida de su código; a partir de cierto tamaño se fragmenta en subgrupos informales y, por la ley de Conway, el código se fragmenta por las mismas líneas, tanto si alguien diseñó esas costuras como si no. Segundo, el número de vías entre equipos importa tanto como dentro de ellos: si cada equipo tiene que hablar con todos los demás para entregar un cambio, la estructura del sistema es, en la práctica, una única unidad grande y acoplada, por muchos servicios que tenga.
Las vías crecen mucho más deprisa que las personas
Ejemplo práctico
Ejemplo práctico: vías de comunicación en un grupo de producto que crece
El producto de pedidos de una empresa de reparto de comida lo construye un equipo de 8 ingenieros. Tiene previsto crecer hasta 24 ingenieros. Compara un equipo grande con tres equipos de 8 con una propiedad clara.
| Un equipo de 8 | 8 × 7 / 2 = 28 vías. |
|---|---|
| Un equipo de 24 | 24 × 23 / 2 = 276 vías: unas diez veces más para el triple de personas. |
| Tres equipos de 8, vías internas | 3 × 28 = 84 vías dentro de los equipos. |
| Tres equipos, vías entre equipos | Si cada equipo tiene un único punto de contacto con cada uno de los otros equipos (por ejemplo, el líder técnico), eso añade 3 × 2 / 2 = 3 vías entre equipos. Total: unas 87. |
| Tres equipos, todos se coordinan con todos | Si la propiedad no está clara y cada cambio necesita a todos los ingenieros, el grafo vuelve a ser, en la práctica, el grafo de 276 vías. |
| Lo que muestra | Dividir a las personas en equipos solo ayuda si el sistema se divide de forma equivalente, de modo que la mayoría de los cambios solo necesiten comunicación dentro del equipo. La arquitectura es lo que hace posible el grafo más pequeño. |
La fórmula da vías posibles, no conversaciones reales; lo importante es lo rápido que puede crecer el costo de coordinación, no una predicción precisa.
Team Topologies (Skelton y Pais) propone equipos estables de aproximadamente 5 a 9 personas, algo coherente con la aritmética: lo bastante pequeños para que las vías sigan siendo manejables.
La maniobra inversa de Conway
Si las organizaciones tienden a producir sistemas que reflejan su estructura, puedes usar esa tendencia de forma deliberada: diseña la estructura de equipos y las vías de comunicación para la arquitectura que quieres, y deja que el sistema crezca con esa forma. Jonny LeRoy y Matt Simons llamaron a esto maniobra inversa de Conway en un artículo del Cutter IT Journal de diciembre de 2010, y desde entonces se ha convertido en una técnica habitual en los programas de microservicios y de plataforma.
En la práctica, significa decidir primero los límites previstos (por ejemplo, pedidos, pagos, seguimiento de entregas y alta de restaurantes como servicios separados), después formar un equipo estable en torno a cada uno, darle la propiedad del código, los datos y el pipeline de despliegue, y hacer que los equipos interactúen principalmente mediante API y eventos publicados, en lugar de código compartido o bases de datos compartidas. Donde el contacto entre equipos sea realmente necesario, hazlo explícito: un equipo de plataforma que ofrece un producto de autoservicio, un equipo facilitador que ayuda durante un tiempo limitado.
La maniobra tiene límites. Solo funciona lentamente a favor de la veta de un sistema existente: reorganizar los equipos no reestructura un código fuertemente acoplado y, durante un tiempo, los nuevos equipos estarán luchando contra la arquitectura antigua. Martin Fowler señala que no puede arreglar rápidamente un sistema existente rígido. También supone que conoces los límites correctos; si los trazas mal y luego los consolidas en estructuras de equipo, la ley de Conway reproducirá fielmente el error y hará que sea caro cambiarlo. Por eso los equipos suelen empezar con un monolito modular y mover los límites antes de convertirlos en organizativos.
Carga cognitiva del equipo
La ley de Conway te dice que los límites de los equipos se convierten en límites del sistema. Una segunda restricción te dice qué tamaño puede tener la parte de cada equipo. La carga cognitiva del equipo, un concepto que Matthew Skelton y Manuel Pais llevaron al diseño de organizaciones de software en Team Topologies (2019; segunda edición en 2025), es la cantidad total que un equipo debe tener en la cabeza para construir, operar y cambiar lo que posee: el dominio de negocio, el código, la infraestructura, las herramientas, las guardias.
Toman de la psicología la distinción entre la carga intrínseca (la dificultad inherente de la tarea, como entender el dominio), la carga extrínseca (el esfuerzo que impone el entorno, como un procedimiento de despliegue manual o una compilación oscura) y la carga pertinente (el esfuerzo de aprendizaje que mejora el trabajo futuro). El objetivo de diseño es minimizar la carga extrínseca, por ejemplo mediante plataformas y automatización, para que la capacidad se dedique a las de tipo intrínseco y pertinente.
Para los arquitectos, la consecuencia es directa. El límite de un servicio o componente debe dar al equipo que lo posee una parte del sistema que pueda entender por completo. Si un equipo posee doce servicios repartidos en cuatro dominios, el equipo está sobrecargado y se resentirán la calidad, la velocidad o la salud de las guardias, por limpio que sea el código de cada servicio. A la inversa, un dominio tan complicado que ningún equipo alineado al flujo puede absorberlo (un motor de precios con modelos actuariales, un códec de video) puede justificar un equipo especializado y un límite claro en torno a su subsistema.
Dejar que la estructura de equipos dé forma a los límites
En conjunto, estas ideas ofrecen a los arquitectos un conjunto de reglas de trabajo:
Alinea los límites con la propiedad de los equipos. Cada módulo, servicio, almacén de datos y pipeline debe tener un único equipo propietario. La propiedad compartida, en la práctica, significa ausencia de propiedad, y el código reflejará lo que necesitara el último que contribuyó.
Minimiza la comunicación que necesita cada cambio. Un límite está en el lugar correcto si la mayoría de los cambios en una capacidad de negocio puede hacerlos, probarlos y desplegarlos un solo equipo. Vigila los cambios que habitualmente necesitan que se coordinen tres equipos: muestran que la estructura del sistema y la estructura de equipos no coinciden.
Haz que las interfaces entre equipos sean explícitas y estables. Las interfaces entre equipos merecen versionado, documentación y pruebas de contrato; las interfaces dentro de un equipo pueden seguir siendo informales y cambiar libremente.
Revisa ambas cosas a la vez. Las reorganizaciones son decisiones de arquitectura; las decisiones de arquitectura son decisiones organizativas. Un arquitecto al que no se consulta sobre los cambios de equipos, o un responsable que reorganiza sin tener en cuenta el código, está ignorando una fuerza que actuará de todos modos.
Los patrones de tipos de equipo y modos de interacción, y cómo hacerlos evolucionar, se tratan en Team Topologies y diseño sociotécnico.
Cuando el organigrama y la arquitectura no coinciden
| Situación | Lo que ves en el sistema | Remedio habitual |
|---|---|---|
| Equipos organizados por capa técnica (frontend, backend, base de datos) | Cada funcionalidad necesita tres equipos y tres traspasos; las capas desarrollan interfaces gruesas y genéricas; los lanzamientos se coordinan | Equipos multifuncionales alineados con las capacidades de negocio, cada uno propietario de una porción vertical |
| Microservicios con un equipo propietario por servicio, pero un equipo central de datos es dueño de todos los esquemas | Un sistema distribuido que se acopla a través de una base de datos compartida; los cambios de esquema esperan en cola durante semanas | Dar a cada equipo de servicio la propiedad de sus datos; el equipo de datos proporciona una plataforma y unos estándares |
| Dos equipos comparten la propiedad de un servicio | Convenciones contradictorias dentro de un mismo código, conflictos de fusión, nadie de guardia para las partes difíciles | Dividir el servicio según las inquietudes de cada equipo, o dárselo a un solo equipo |
| Un equipo es dueño de muchos servicios sin relación entre sí | Servicios descuidados, dependencias desactualizadas, respuesta lenta a incidentes: sobrecarga cognitiva | Consolidar servicios, pasar algunos a otros equipos o invertir en herramientas de plataforma |
| Un proveedor externo construye un subsistema con un contrato cerrado | Una interfaz rígida y muy especificada que es muy cara de cambiar | Tratar el límite como una puerta de un solo sentido; situarlo donde el cambio sea menos probable |
| Una reorganización traslada una capacidad a un nuevo equipo, pero el código se queda en el repositorio del equipo anterior | El nuevo equipo sortea código que no es suyo; erosión del límite previsto | Trasladar el código, los pipelines y las guardias junto con la responsabilidad |
Comprueba lo que has entendido
En el argumento de Conway, ¿por qué la estructura del sistema tiene que parecerse a la estructura de la organización?
Porque cada interfaz entre subsistemas tiene que ser negociada por las personas que los diseñan; donde las personas no se comunican no se diseña ninguna interfaz, así que las conexiones del sistema siguen a las conexiones entre personas.
¿Cuántas vías de comunicación tiene un equipo de 12 personas?
12 × 11 / 2 = 66.
Una empresa se reorganiza en un equipo por microservicio, pero mantiene una única base de datos compartida que todos los equipos modifican. ¿Qué predice la ley de Conway?
Los servicios seguirán acoplados a través de la base de datos y los cambios necesitarán coordinación entre todos los equipos, porque la estructura de comunicación (todos tocan el mismo esquema) no ha cambiado.
¿Qué es la carga cognitiva extrínseca y cómo puede reducirla la arquitectura?
El esfuerzo impuesto por el entorno y no por el problema, como los despliegues manuales o unas herramientas oscuras; las plataformas, la automatización y unos límites claros la reducen para que los equipos puedan centrarse en su dominio.
Fuentes y lecturas recomendadas
- Melvin Conway: How Do Committees Invent? (Datamation, April 1968)
- Martin Fowler: Conway's Law
- MacCormack, Baldwin and Rusnak: Exploring the duality between product and organizational architectures (Research Policy, 2012)
- Team Topologies: key concepts
- Thoughtworks Technology Radar: Inverse Conway Maneuver
¿Tienes una pregunta sobre esta sección? ArchitectBot, el asistente de estudio con IA del curso, responde primero a partir del curso.
Pregunta: “Estamos dividiendo nuestro monolito en servicios y además reorganizando a nuestros 40 ingenieros. ¿Qué debe ir primero y cómo uso la ley de Conway para decidir los límites de los equipos?”