S04 Ep. 14. Barry O’Reilly Software architecture for a rapidly changing world
Description
Most software architects represent the environment in a very static way, and from that static representation, produce static software. As a result, the software structure they create is like a picture of a picture…used to describe what is actually a movie. This problem, rooted in a mechanistic worldview, is where Barry O'Reilly’s Residuality Theory was born.
Residuality Theory - in very few words - is a method of designing software architectures inspired by how the most talented architects do it: starting from the stress conditions that the system could eventually face as it operates.
Barry O'Reilly is a software architect with 25 years of experience in the IT industry. He has held leading roles at global software companies, has spent many years educating architects, and is currently pursuing a PhD in Complexity Science and Software Engineering at The Open University.
Residuality theory looks at the world not as a bunch of static things or still pictures, but as a constantly moving set of processes which we can't really see and grasp. It requires designers to move away from a static view of the system. By letting the architecture design be inspired by its “stressors,” O'Reilly believes that not only can we design more resilient systems but also more efficient ones.
In this episode, Barry also describes the philosophical background behind the theory and why Residuality can be a viable approach to designing organizations too.
Remember that you can always find transcripts and key highlights of the episode on our website: https://boundaryless.io/podcast/barry-oreilly
Key Highlights
👉 Static representation of reality as a practice of software architecture is embedded in Western philosophy and worldview.
👉 Software engineers should start asking themselves: “What is the underlying philosophy behind what I do and the frameworks that I use?”
👉 Residuality is a way to look at the world as a constantly shifting, moving set of processes that we can't really see and grasp.
👉 The residue is what remains from the system after it breaks down: it's the leftover of the system. And those leftovers will define the future of the software system.
👉 Criticality as an indication of the system’s ability to function across a wide range of attractors, which we may or may not even know about.
👉 It is known that software performing well in its environment is modular, but how to make structured decisions around such modularity remains unknown.
👉 The impossibility to separate organizational design from software architecture.
Topics (Chapters)
(00:00 ) Barry’s quote
(00:59 ) Introduction
(02:12 ) What residuality theory is
(12:59 ) Residuality: philosophical background
(18:24 ) Residuality: from software to organizations
(27:01 ) Residuality and microservices: is a match possible?
(36:13 ) Is residuality fit for the society we’re living in, or is it a next generation’s thing?
(43:03 ) How to (easily) adopt a residuality approach
(48:48 ) Barry’s breadcrumbs
To find out more about Barry’s work:
Twitter: https://twitter.com/technologytulip
LinkedIn: https://www.linkedin.com/in/barry-o-reilly-b924657
Website: https://www.blacktulip.se
Other references and mentions:
Nassim Nicholas Taleb: https://en.wikipedia.org/wiki/Nassim_Nicholas_Taleb
Antifragile (book): https://en.wikipedia.org/wiki/Antifragile_(book)
NK model: https://en.wikipedia.org/wiki/NK_model
Transcendental idealism: https://en.wikipedia.org/wiki/Transcendental_idealism
Post-structuralism: https://en.wikipedia.org/wiki/Post-structuralism
The Biological Reality of Organizing - with Alicia Juarrero: https://www.boundaryless.io/podcast/alicia-juarrero
Bezos’ famous API mandate: https://nordicapis.com/the-bezos-api-mandate-amazons-manifesto-for-externalization/
Characteristics of decision-making during coding: https://www.researchgate.net/publication/303515570_Characteristics_of_decision-making_during_coding
Promise Theory. Principles and Applications: http://markburgess.org/pr