16:20 - 17:20 (UTC±00)
Talk (60 min)
Good Fences Make Good Neighbours
Modularity is a key aspect of software and architectural design, setting explicit boundaries between different parts of the system. But we have been banging on about this since the 70s, and still we are creating balls of mud and now even distributed big balls of mud. Either modularity as a concept is insufficient or maybe there are aspects here we seem to get wrong? We know that good fences make good neighbours, but only when the boundaries are placed correctly. How can we create robust and sustainable modular designs when identifying those boundaries are so challenging? In this talk, you are going to see the best bits of modularity from SOA, microservices, DDD, Team Topologies, and more. You will see how microservices improved physical modularity compared to SOA, but lost the connection to business capabilities and the related team structure by its focus on size. And you will see how DDD's bounded contexts can help us retain the benefits of microservices while reintroducing the connection to the business that SOA once had. Modularity in architecture is sociotechnical - the shape of the software and the shape of the organisation are highly interdependent and coevolving. So we will also see how Team Topologies provides a blueprint for aligning teams and architecture using patterns for identifying teams, shaping their interactions, and minimising cognitive load. In summary, this talk will help you piece together all of these good practices and understand the theory behind them, improving your holistic system design skills and enabling you to create conceptual integrity in your designs. Maybe this will guard you against the dreaded distributed big ball of mud.