Mathias Verraes Blog
621 FOLLOWERS
This blog is run by Mathias Verraes, founder of Domain-Driven Design Belgium. Mathias Verraes runs a boutique consultancy that advises organisations on designing and modelling software for complex environments, including architecture, analysis, testing, and refactoring "unmaintainable" systems.
Mathias Verraes Blog
9M ago
Here’s roughly how I fixed bugs early on in my career:
Browse around in the code.
Try stuff.
See if it works.
Below is my preferred way of doing it since about 2012:
Step 1. Pair / Ensemble
Find one or more people to collaborate with. Linus’ Law “Given enough eyeballs, all bugs are shallow” was formulated at least 25 years ago, and yet we do so much work in isolation.
Step 2. Test
Write a failing test (or multiple) that proves the existence of the bug. This test will make sure you don’t fix the wrong thing, or a perceived bug. The test will help to ensure that the bug doesn’t return later ..read more
Mathias Verraes Blog
11M ago
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. Is there a sweet spot in between, a point where pivoting the software design is the right choice, at the right time?
We’ve updated our book, “Design and Reality” with a new essay, “Critical Software Redesign: Creating the Environment for Large Scale Change”. It explores you technical leader can prepare for major design shifts. We use as a running example, the evolution of a product that calculates taxes on global shipments ..read more
Mathias Verraes Blog
1y ago
Design choices carry along the worldviews of the designer. This often is not apparent, especially when design ideas are for obvious technical improvements. Let’s look into a design challenge faced by a fictional Maker Lab.
In this Maker Lab, people in the community can come in and make all kinds of things such as metal work, robotics, furniture, glasswork, 3D printing, laser cutting, lighting, electronics, … The Lab provides tools, machines, and inventory that makers can use in the maker space. The makers are supposed to use the hand scanners, and scan the barcodes on equipment and materials a ..read more
Mathias Verraes Blog
1y ago
On the DevJourney podcast, Tim Bourguignon asked me to talk about my career.
Abstract
Mathias placed the start of his journey with both hands on a TRS-80 computer and no other games to play than a compiler and the BASIC language. But fast forward a few years, we spoke about his music studies, his work creating music for ads and movies, and how programming came back as a hobby, which finally took precedence. We then jumped with both feet into languages and modeling. We spent the rest of the interview talking about interactions and how models serve us programmers and help our domains innovate ..read more
Mathias Verraes Blog
1y ago
I was at Full Stack Europe 2022 in Antwerp, and one of the speakers had to cancel. So I offered to do an improvised talk on Parsers Combinators. (My Covid Lockdown hobby was creating an open source library to help you build parsers, so I have some experience.)
A parser is a function that takes some unstructured input and returns something more structured. One way to write them is using a lot of procedural code. But with parser combinators, you can create a parser declaratively by combining small composable parsers into larger ones.
$parser = between(char('{'), char('}'), atLeastOne(alphaChar ..read more
Mathias Verraes Blog
1y ago
The new DDD Australia user group just had its first meetup, and I was invited to speak. A major bottleneck for fast high quality software development is that people in the organisation don’t understand their systems and domains well enough. So I did a (mostly improvised) session on using Bounded Contexts to manage meaning and understandability.
Watch on YouTube
Abstract
From Parnas’ paper in the 1970’s to microservices in the 2010’s, we’ve always used modularisation as a way to manage complexity in software. And yet, we still end up with big balls of mud. Technical separation alone isn’t enou ..read more
Mathias Verraes Blog
1y ago
Software Captains is a organisation that helps startup CTOs through coaching, advice, and networking. In the interview, the founder Tom Klaassen and I discuss software design. We talk about challenges CTOs face, such making technical debt visible for non-technical colleagues, about how software quality is contextual, but still very important even for early stage startups.
The podcast was recorded in Dutch. On YouTube, you can turn on captions and set the autogenerated translation to your language of choice.
Or listen here:
Spotify
Apple
Amazon
Deezer
Libsyn
References:
Design & Realit ..read more
Mathias Verraes Blog
2y ago
Here’s the video of Rebecca Wirfs-Brock & my keynote at Domain-Driven Design Europe 2022, where we talk about the ideas presented in our essay “Critically Engaging with Models”, also available as an e-book on Leanpub.
Watch on YouTube
Abstract
Models, whether for a software system, a development process, diseases, political systems, or otherwise, are a way to look at (a part of) the world. They make a choice about what is important, what categories we classify things in, what we see, what’s invisible, what’s valued, or even what’s valid. They are reductionist, that is, they only show a se ..read more
Mathias Verraes Blog
2y ago
Rebecca Wirfs-Brock and I published a book last year called “Design & Reality” with essays on software design. It’s available on Leanpub.
Leanpub co-founder Len Epp interviewed me about my background, Domain-Driven Design, the book, the notion that your solution can influence your understanding of the problem, and at the end, we talk a bit about my experience as a self-published author.
Or listen on:
iTunes
Spotify
Stitcher
Google Podcasts
Player FM
TuneIn
Castbox
Podbay
References:
Design & Reality book
Source ..read more
Mathias Verraes Blog
2y ago
The Inverse Conway Manoeuvre is an organisational engineering device. It tells us to change our team and organisational structure to achieve the system design we want. More and more organisations reorganise based on this idea, and yet they don’t end up with the system they’d like. What are we missing?
There’s evidence of the Manoeuvre being applied. GitHub for example is a distributed company that built a tool for distributed collaboration using GitHub to build it. While systems do mimic their organisations’ structure, changing the organisation doesn’t seem to have the same effect. That’s beca ..read more