Software Engineering Radio - the podcast for professional software developers

SE Radio 662: Vlad Khononov on Balancing Coupling in Software Design

Apr 1, 2025
In this engaging discussion, guest Vlad Khononov, a seasoned software architect and author, delves into the intricate world of coupling in software design. He introduces his concept of integration strength, aiming to simplify traditional coupling frameworks. The conversation covers the three dimensions of coupling: knowledge sharing, component distance, and volatility. Vlad emphasizes how mindful design decisions can either complicate or modularize systems, enhancing their adaptability and reducing cognitive load. He offers practical advice for applying these principles in real-world projects.
Ask episode
AI Snips
Chapters
Books
Transcript
Episode notes
INSIGHT

Complexity As Retrospective Knowledge

  • Complexity means outcomes can only be known in retrospect when you make a change and observe results.
  • Vlad Khononov frames managing coupling as the main way to control complexity in software design.
INSIGHT

Fractal Definition Of A Module

  • A module is defined by functionality, a public interface, and the potential to be independently compiled.
  • Modules are fractal: services, namespaces, classes, and methods can all be modules at different abstraction levels.
ADVICE

Enforce Independent Compilation Potential

  • Ensure potential independent compilation when defining module boundaries to expose hidden coupling.
  • If a component cannot be compiled independently, treat it as part of a larger module and refactor boundaries.
Get the Snipd Podcast app to discover more snips from this episode
Get the app