El acoplamiento de cambios: por qué un cambio afecta a diez archivos

Fuentes: Change Coupling: Why One-Line Fixes Touch Ten Files

El acoplamiento de cambios es una herramienta de comprensión para arquitectos y equipos de desarrollo, no una métrica de calidad a optimizar. A diferencia de la acoplamiento física o lógica, este fenómeno revela cómo el código que cambia frecuentemente lo hace de manera conjunta, independientemente de su estructura de archivos o dependencias estáticas. Este artículo explica que el objetivo no es eliminar el acoplamiento, sino entender las fuerzas reales que unen el sistema para tomar decisiones arquitectónicas informadas.

El problema central es el 'acoplamiento disperso', donde un cambio menor en una función provoca modificaciones en múltiples archivos y directorios, aumentando la carga cognitiva y ralentizando el desarrollo. El texto distingue entre varios tipos de acoplamiento, destacando que el acoplamiento de cambios requiere analizar el historial de modificaciones, no solo el código actual. Se presenta una matriz de análisis que compara la ubicación física del código con su comportamiento de cambio conjunto, identificando cuatro escenarios: consolidar, acoplamiento simétrico, desacoplamiento simétrico y separación artificial.

Un caso práctico en un sistema de pagos ilustra cómo, aunque el diseño conceptual separa las transacciones, los cálculos de tarifas y la coordinación, el análisis de cambios muestra que estos tres módulos se modifican simultáneamente. Esto indica que existen dependencias ocultas, como reglas de cumplimiento, estructuras de datos para diferentes países o límites de comisiones, que vinculan lógicamente estos componentes. La conclusión es que el acoplamiento de cambios actúa como una brújula para identificar líneas de falla en el sistema, permitiendo a los equipos reestructurar el código para reducir la carga cognitiva y mejorar la mantenibilidad, sin caer en la simplificación excesiva que genera código monolítico.