A conference talk presenting a mental framework for evaluating software design through the lens of coupling, cohesion, and change. The speaker, a staff engineer, introduces a formula where pain equals changes multiplied by structural properties (spaghettification). Cohesion is broken down into accidental, logical, model, and functional grouping types, with degradation mechanisms like scope inflation, level conflation, and misalignment. Coupling is analyzed by depth (intrusive, functional, model, contract) and breadth (distance, path topology, communication fan). The framework is then applied to explain SOLID principles, hexagonal architecture, and team topologies, showing how most best practices trade internal cohesion for increased path topology complexity.

41m watch time

Sort: