#Video

 Design Discovery In Existing Systems

Feb 18 2025

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

 Evolution of software architecture

Dec 11 2024

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. \r\n\r\nGrady 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). \r\n\r\nIn this episode, we discuss:\r\n• What it means to be an IBM Fellow\r\n• The evolution of the field of software development\r\n• How UML was created, what its goals were, and why Grady disagrees with the direction of later versions of UML\r\n• Pivotal moments in software development history\r\n• How the software architect role changed over the last 50 years\r\n• Why Grady declined to be the Chief Architect of Microsoft – saying no to Bill Gates!\r\n• Grady’s take on large language models (LLMs)\r\n• Advice to less experienced software engineers\r\n• … and much more!

Architecture Philosophy Video

 Shades of Conway's Law

Oct 14 2024

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.\r\n\r\nOver 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.\r\n\r\nTo 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.\r\n\r\nAbout Thierry de Pauw:\r\nThierry 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.\r\n\r\nFrom time to time he is asked to conduct technology due diligence for investors to review the technology capabilities of organisations.\r\n\r\nThierry 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

 A Philosophical Look at System Dynamics

Apr 25 2024

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

 Designing Fault-Tolerant Software with Control System Transparency

Mar 5 2024

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

 Granularity & Communication for Microservice Architectures

Oct 5 2023

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

 The lost art of software design

Aug 13 2023

“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

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

Feb 27 2023

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.\n\nThis 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

 Software Architecture by Example

Feb 15 2023

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.\n\nNote 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.\n\nNeal Ford\nNeal 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

 Strategic Domain Driven Design Tools for Non-DDD People

Feb 8 2023

DDD has a reputation for being esoteric and hard to grasp for newcomers. So the community has been working hard to simplify the user experience for people new to DDD by providing practical tools like the Bounded Context Canvas which even people with no prior DDD experience can benefit from to design loosely-coupled microservices.\n\nThese tools will provide you with instant value. You can use them right away on the systems you are building. The tools also help you on the path to mastery of DDD. And all of the tools are open source and creative commons, so nobody is trying to sell you anything.

DDD Video