PHPNews

Design Heuristics

Video for my DDD eXchange 2018 keynote in London Abstract Software design principles aspire to be universal. And yet, when you create software, you sometimes intentionally violate principles. You might not be able to explain why this “wrong” design somehow “feels” better. You’re applying your own, …

Continue reading »

Written by Mathias Verraes - - Aggregated on Thursday April 26, 2018


Emergent Boundaries

Video of my DDD eXchange 2017 talk in London Video of my ExploreDDD 2017 talk in Denver Abstract Modelling is more than knowledge management. It’s complexity management. To reduce cognitive load, you split things up, whether at small scale, in code, or in the large, such as Bounded Contexts. But if …

Continue reading »

Written by Mathias Verraes - - Aggregated on Thursday April 27, 2017


On Being Explicit

Video of my talk at Agile Testing & BDD eXchange 2016 in London Video of my talk at the DDD London meetup Slides: Abstract “Make the implicit explicit” must be one of the most valuable advices I ever got about software modelling and design. Gather around for some tales from the trenches: stories from …

Continue reading »

Written by Mathias Verraes - - Aggregated on Wednesday November 9, 2016


Designed Stickiness

Video & slides for my NCrafts talk on software metaphors. Abstract When we model, we tend to do it for ourselves: gain understanding, capture the business language, and turn it into running code. But are we missing opportunities to do something more with our models? What if, instead of mirroring the …

Continue reading »

Written by Mathias Verraes - - Aggregated on Tuesday May 24, 2016


Lightning Talks

I submitted proposals to conferences for almost two years before getting accepted. When it finally happened, I found myself in front of a 250 head audience, realising I didn’t actually know how to do proper presentations . I wish I knew then that there are better ways. Lightning talks at meetups are ideal to …

Continue reading »

Written by Mathias Verraes - - Aggregated on Thursday May 5, 2016


Code Reviews and Blame Culture

Gated pre-merge code reviews are bad. Always refactor on master. Always do Pair Programming. Don’t use branches. Apply Continuous Integration. Best practices likes these are great. They encode experiences of many individuals and teams into memorable slogans, and help others to make decisions on how to run their …

Continue reading »

Written by Mathias Verraes - - Aggregated on Saturday April 9, 2016


Type Safety and Money

Below is an attempt at illustrating a design/redesign process I went through at a client, who’s started refactoring the core systems their business depends on. Design is the part of software development that is the most messy, the hardest to fit into rules or well-defined processes. In fact, while writing this post, I …

Continue reading »

Written by Mathias Verraes - - Aggregated on Monday February 29, 2016


Reading List

Here’s a bunch of books that I like, that seem to have a lasting influence on me, or that I talk about a lot when giving presentations or teaching workshops. They’re somewhat grouped and ordered, but don’t read too much into that. For a more complete(-ish) list of books I’ve read, my Kindle page is likely the most …

Continue reading »

Written by Mathias Verraes - - Aggregated on Wednesday December 16, 2015


Domain-Driven Design workshops

We’re bringing you some exciting workshops in the coming months. Register today to ensure your spot! Experiencing Domain-Driven Design The full three day advanced workshop, with lots of hands on modelling, Event Storming, Context Mapping, CQRS/ES, heuristics, and much more. Experiencing Domain-Driven …

Continue reading »

Written by Mathias Verraes - - Aggregated on Tuesday October 20, 2015


Towards Modelling Processes

The video & slides for my keynote at NCrafts 2015 in Paris. Watch the video on Vimeo See the slides on Speakerdeck I should probably blog about it… just pester me until I do :-) Abstract Processes are at the heart of how many businesses operate. The processes are governed by policies, agreed …

Continue reading »

Written by Mathias Verraes - - Aggregated on Friday May 22, 2015


Context Mapping: Life Expectancy

I was at a client recently, a large insurance and banking company. The organization is over 200 years old. Some of the software is only slightly younger: they first started automating some 40 years ago. Some of the people I spoke with, have been around almost as long. They have, depending on who you’re asking, 600 …

Continue reading »

Written by Mathias Verraes - - Aggregated on Sunday April 26, 2015


Event Storming, Storytelling, Visualisations

Visual storytelling through Event Storming Last week, my client’s Chief Product Owner announced to the team they would introduce a set of new requirements using Event Storming, “as Mathias has taught us”. (I’ve visited there regularly for the past half year or so). The session took about ten minutes, and included …

Continue reading »

Written by Mathias Verraes - - Aggregated on Saturday March 14, 2015


Form, Command, and Model Validation

Many of the frameworks I’ve worked with, promise to separate responsibilities with MVC. In practice, they end up coupling everything to everything. The forms are coupled to the models, and there’s a grand unified validation layer. This may be convenient at first, but it breaks down for larger systems, and creates …

Continue reading »

Written by Mathias Verraes - - Aggregated on Monday February 16, 2015


Messaging Flavours

A message is a unit of communication between systems. There are three flavours of messages: informational, interrogatory, and imperative . Imperative Messages Imperative messages represent the sender’s intention. They instruct the receiver to perform an action or make a change. Do this, change that. We can …

Continue reading »

Written by Mathias Verraes - - Aggregated on Friday January 9, 2015


Economy of Tests

Joint post with Konstantin Kudryashov . A common complaint with teams that first try their hand at automated testing, is that it is hard, costly, and not worth the effort. On the other hand, supporters say that it saves them time . In this post, we’ll try to add some nuance to the discussion. We’ll take a look …

Continue reading »

Written by Mathias Verraes - - Aggregated on Monday January 5, 2015


How Much Testing is Too Much?

Figuring out how much unit tests you need to write, can be tricky, especially if you are new to Test-Driven Development. Some teams strive for 100% code coverage. Some open source projects even announce their test coverage on their GitHub profiles – as if coverage is an indicator of quality. Coverage only measures the …

Continue reading »

Written by Mathias Verraes - - Aggregated on Monday December 29, 2014