Email the Author
You can use this page to email Rebecca Wirfs-Brock and Mathias Verraes about Design and Reality.
About the Book
This book bundles the following software design essays:
Design and Reality
— Reframing the problem through design.
Models and Metaphors
— When a complex technical domain isn’t easily captured in a model, look for metaphors that bring clarity.
Critically Engaging With Models
— Our worldviews are grown from other people’s models. How do we control what models we let in?
Splitting a Domain Across Multiple Bounded Contexts
— How designing for business opportunities and the rate of change may give you better contexts.
Surfacing Worldviews in Design
— Implicit worldviews underlie our design choices. Exposing them can generate better options.
Critical Software Redesign: Creating the Environment for Large Scale Change
— There’s a moment where it’s too soon to invest in a radical new software design for your system. And then you reach a moment where it’s too late, too expensive to change it. How to find the sweet spot?
More essays are being added over time.
“These essays from Mathias and Rebecca offer software creators a fast track to making an impact with their craft. Through well-curated real-world modelling stories, you get to appreciate the art of discovering powerful abstractions, that capture the soul of core domains, while freeing up cognitive capacity for crunching more complexity. Through design heuristics backed by examples, you learn how to evaluate yours and others’ models to guide software and organisational design decisions. You will be more confident in software designers’ superpower to not only model reality, but also give form to a changed reality.”
— Xin Yao
About the Author
Rebecca and Mathias met at the Domain-Driven Design Europe 2017 conference in Amsterdam, and started collaborating on these essays in 2021.
## Mathias Verraes
Mathias Verraes is the founder of Aardling, a software modelling & design consultancy, with a penchant for complex environments. His focus is on design strategy and messaging-centric domain modelling. Since leaving a lead developer job in 2011 and moving to consulting in 2011, Mathias has worked with clients in Finance, Government, Supply Chain, Mobility, Energy, E-Commerce, and more.
Mathias writes about software design at verraes.net since 2011. As a speaker, he's been at many major conferences such as NDC and Goto, and has been a keynote speaker DDD eXchange, ExploreDDD, KanDDDinsky, and others. Occasionally, he teaches courses on Domain-Driven Design & messaging architecture. Mathias is also the founder of the DDD Europe conference.
Mathias has a Masters in Music from the Royal Conservatory of Ghent, and is an autodidact on software. When he’s at home in Kortrijk, Belgium, he helps his two sons build crazy Lego contraptions.
## Rebecca Wirfs-Brock
Rebecca Wirfs-Brock is a software design pioneer who invented the set of object design practices known as Responsibility-Driven Design (RDD) and popularized the x-Driven Design meme (RDD, TDD, DDD, BDD). She is an internationally recognized leader in the development of effective software design and architecture techniques. Among her widely used innovations are use case conversations and object role stereotypes. She was the design columnist for IEEE Software and the author of two influential texts, Designing Object-Oriented Software, and Object Design: Roles, Responsibilities and Collaborations.
In her work, she helps teams hone their design and architecture skills, manage and reduce technical debt, and address architecture risks. Although best known as a software design guru, she is also known as an innovator of techniques for simply expressing complex requirements and effectively developing and communicating software architecture. Her research interests focus on the cognitive and social aspects of software development including: Naturalistic decision-making (NDM) and software architecture decisions; decision-making models for software architects; design heuristics and their relationships to software patterns, guidelines; values and practices for sustainable software architecture and its evolution; software design and development ethnography; practical software design methods; agile architecture and design practices; patterns and pattern languages; object-oriented design; software modeling; domain modeling; documenting complex software systems; and communicating design intentions.