Complexity

Solving the Hard Problems • Dave Farley • GOTO 2024

Solving the Hard Problems • Dave Farley • GOTO 2024

Dave Farley argues that modern software development should be treated as an engineering discipline, emphasizing an evolutionary and iterative approach to architecture and design. He outlines key principles for tackling complexity, focusing on optimizing for learning and ease of change through techniques like working in small steps, prioritizing testability, and managing coupling.

Balancing Coupling in Software Design • Vlad Khononov & Sheen Brisals

Balancing Coupling in Software Design • Vlad Khononov & Sheen Brisals

Author Vlad Khononov discusses his book "Balancing Coupling in Software Design," explaining how a failed microservices project led him to rediscover timeless design principles from the 1970s. He explores the concepts of local vs. global complexity, the role of modularity as an antidote to complexity, and how managing coupling is crucial for building maintainable systems in any architectural style, from monoliths to cloud-native applications.