Icebergs, bathtubs, and flows: Applying systems thinking to software architecture
Software systems have a dynamic nature that requires a design approach different from the architecture of physical structures. Systems thinking examines the structure and behavior of complex systems. Matt McLarty provides an introduction to systems thinking and explores how it can be applied to software architecture, particularly in the context of distributed systems and microservices.
Talk Title | Icebergs, bathtubs, and flows: Applying systems thinking to software architecture |
Speakers | Matthew McLarty (MuleSoft) |
Conference | O’Reilly Software Architecture Conference |
Conf Tag | Engineering the Future of Software |
Location | San Jose, California |
Date | June 11-13, 2019 |
URL | Talk Page |
Slides | Talk Slides |
Video | |
Software architecture is a young and curious discipline. While analogizing software architecture with building architecture and city planning can be useful, it can also be misleading. Physical structures benefit from up-front design to guide their development, but software systems have a more dynamic nature that requires additional foresight. Systems thinking is a maturing field that examines the structure and behavior of complex systems, how they develop, and how they may be influenced (but never controlled). Matt McLarty explores how systems thinking can be applied to software architecture. You’ll gain an introduction to systems thinking concepts and axioms, such as the iceberg model, the bathtub theorem, stock and flow diagrams, and more; an analysis of enterprise software ecosystems from a systems thinking perspective; and systems thinking–inspired techniques software architects can use when designing or evolving these software ecosystems through the use of microservice architecture and APIs.