#Video

 The Definition Of Insanity

"The definition of insanity is doing the same thing over and over again” - this quote attributed to Einstein warns us of the danger of magical thinking, hoping that trying something just one more time will achieve success when before we failed. But is this really insanity? In this talk, I’ll argue that retrying things actually does make a lot of sense, and is in fact key to improving the resilience of a distributed system. Along the way, I’ll explain the importance of timeouts, retry limits and knowing when giving up does make sense. I’ll also show how retries can be made safe (and help avoid draining your bank account), and perhaps we’ll get to examine that Einstein quote in a bit more detail…

Architecture Disributed Systems Video

Mar 23 2025

 Design Discovery In Existing Systems

We all want the best design but often that is not directly obtainable. Our tools for understanding systems behaviour may lead us to the abstractions we would want to use in a rewrite but what about the abstractions that exist in the system now? Do they matter? What about the structure? Are there unnamed concepts we can see through the current cohesion and coupling in the system that will help us get to where we need to go? In this talk, Michael Feathers will describe cases where being aware of what currently exists leads to better solutions. We can often leverage what we have instead of building up a domain from a greenfield.

Abstraction Design Systems Video

Feb 18 2025

 Evolution of software architecture

Welcome to The Pragmatic Engineer! Today, I’m thrilled to be joined by Grady Booch, a true legend in software development. Grady is the Chief Scientist for Software Engineering at IBM, where he leads groundbreaking research in embodied cognition. He’s the mind behind several object-oriented design concepts, a co-author of the Unified Modeling Language, and a founding member of the Agile Alliance and the Hillside Group. Grady has authored six books, hundreds of articles, and holds prestigious titles as an IBM, ACM, and IEEE Fellow, as well as a recipient of the Lovelace Medal (an award for those with outstanding contributions to the advancement of computing). In this episode, we discuss: • What it means to be an IBM Fellow • The evolution of the field of software development • How UML was created, what its goals were, and why Grady disagrees with the direction of later versions of UML • Pivotal moments in software development history • How the software architect role changed over the last 50 years • Why Grady declined to be the Chief Architect of Microsoft – saying no to Bill Gates! • Grady’s take on large language models (LLMs) • Advice to less experienced software engineers • … and much more!

Architecture Philosophy Video

Dec 11 2024

 Shades of Conway's Law

In short, Conway's Law says any organisation that designs a system will come up with a system design that copies the organisational communication structures. Over the years, many individuals rephrased Conway's Law in various ways. Every paraphrase brings new insights and non-negligible consequences. Sometimes they give the impression of contradicting each other. However, in the end, they all come to the same conclusion. The organisation and the system keep each other in balance. Modifying the organisation will have an impact on the system. Modifying the system will have an impact on the organisation. Not considering that will cause friction in the organisation or the system with dramatic consequences. To be competitive as an organisation in the market, and to effectively design the right thing our customers expect us to deliver, we'd better understand and take advantage of this. About Thierry de Pauw: Thierry is a lean IT Engineer at the fintech startup Abbove. On the side, he founded ThinkingLabs, an advisory firm for optimising IT delivery while reducing stress, burnout and fatigue. From time to time he is asked to conduct technology due diligence for investors to review the technology capabilities of organisations. Thierry is a CI/CD advocate and jack-of-all-trades. Instead of balancing quality & delivery, he believes and practices that better quality is actually a way to more and better deliveries.

Conway's Law Design Video

Oct 14 2024

 A Philosophical Look at System Dynamics

Dartmouth College, Hanover, New Hampshire, Spring of 1977. In this lecture, Donella Meadows takes on a more philosophical concept. How can we bring ourselves to be aware of the assumptions we make as systems thinkers? She asserts that models are a set of assumptions. Donella Meadows defines some of these system dynamics assumptions (such as causal relationships and feedback loops) in this video.

Abstraction Philosophy Video

Apr 25 2024

 Designing Fault-Tolerant Software with Control System Transparency

GN&C Fault Protection Fundamentals by Robert Rasmussen, who works for the Jet Propulsion Laboratory, which is an organization that works closely with NASA on designing spacecraft. GN&C is guidance, navigation, and control. These are the main software systems here. This paper actually distills a ton of experience spent with really thinking through how to build really fault tolerant systems into some core principles.

Architecture Disributed Systems Video

Mar 5 2024

 Granularity & Communication for Microservice Architectures

Architects struggle in modern distributed architectures with two Hard Parts: finding the appropriate service granularity and determining the correct communication styles between services. This talk introduces a new technique for performing tradeoff analysis for microservices architectures around both static and dynamic coupling. Static coupling helps determine the proper granularity by applying integrators and disintegrators. Dynamic coupling helps architects understand the interplay between communication (synchronous versus asynchronous), consistency (atomic versus eventual), and coordination (orchestration versus choreography), along with guidelines on when to choose particular communication styles. In this talk, Neal provides architects with the nomenclature and patterns to understand these difficult aspects of microservices and related architectures.

Architecture Disributed Systems Microservices Video

Oct 5 2023

 The lost art of software design

“Big design up front is dumb. Doing no design up front is even dumber.” This quote epitomises what I’ve seen during our journey from “big design up front” in the 20th century, to “emergent design” and “evolutionary architecture” in the 21st. In their desire to become “agile”, many teams seem to have abandoned architectural thinking, upfront design, documentation, diagramming, and modelling. In many cases, this is a knee-jerk reaction to the heavy bloated processes of times past, and in others, it’s a misinterpretation and misapplication of the agile manifesto. As a result, many of the software design activities I witness these days are very high-level and superficial in nature. The resulting output, typically an ad hoc sketch on a whiteboard, is usually ambiguous and open to interpretation, leading to a situation where the underlying solution can’t be communicated, assessed, or reviewed. If you’re willing to consider that upfront design is about creating a sufficient starting point, rather than creating a perfect end-state, you soon realise that a large amount of the costly rework and “refactoring” seen on many software development teams can be avoided. Join me for a discussion about the lost art of software design, and how we can reintroduce it to help teams scale and move faster.

Design Video

Aug 13 2023

 I Made Everything Loosely Coupled. Does My App Fall Apart?

Integrating systems provides many benefits, from seamless user experiences, consolidated data for better insights, or interacting with partner ecosystems. And the modern cloud applications that we are building are fine-grained and thus inherently interconnected. Despite having connected systems for decades, some of the fundamental concepts of partial failure, eventual consistency, or idempotency still challenge many developers. This session tackles the nuances of integrated systems, such as messages vs. events, thinking in integration patterns, whether loose coupling is always better, and how cloud automation can change the way you think about integration.

Architecture Microservices Video

Feb 27 2023

 Software Architecture by Example

Where do architecture styles come from? Do architects retreat to an ivory tower to decide what the Next Big Thing will be? No–new capabilities constantly appear in the software development ecosystem, and clever architects figure out new ways to leverage the new building blocks, leading to new named architecture styles which are only named after they have existed for a while. This is similar to art and cultural movements, how Victorianism became Modernism. In this keynote, Neal traces the similarities between architecture styles and cultural movements, how each affect the other, and points towards how Metamodernism will inform architecture, corporations, and individual workers in a fundamental way. Note to organizers: This keynote covers technical details from both my books _Fundamentals of Software Architecture and Software Architecture: The Hard Parts to illustrate the larger observations about both software architecture and the profession of software engineer. This keynote is more philoshopical than the Software Architecture: The Hard Parts keynote, ending with a call to action that architects and developers must become aware of the impact of ethics in seemingly technical decisions and act accordingly to improve rather than degrade the world. Neal Ford Neal is Director, Software Architect, and Meme Wrangler at ThoughtWorks, a software company and a community of passionate, purpose-led individuals, delivering technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. He speaks at many conferences.

Architecture Microservices Video

Feb 15 2023