I was at the DDD Europe conference this year. I’m very interested in design oriented conference.
I have the feeling that the conference was not really about design, but about changing minds, point of view and improve ones understanding.
We make our own reality
It’s definitely the lesson I take away from this conference.
It started with Dave Snowden, “One model seeks to represent the world”. Later on, I came to “One model seeks to represent one system”.
The talk of Romeu Moura “The systemics of the Liskov Substituion Principle” was amazing. I hope I’ll have the opportunity to see it again.
I ended up reading “Thinking in systems” from Donella H. Meadows.
See what you can’t see
I also loved Avrahm Poupko’s keynote “The bandit, the housewife, the samouraï and the wood cutter: the importance of multiple perspectives when modeling software”.
I retain that we all enjoy lying. We love telling ourselves stories. So for a given system perspectives matters.
As a matter of fact the lies reveal a lot on the lier. The more lies/stories we get on a system, the more perspectives we get.
So listen to your user’s story about the domain. If everybody is telling the same story, the you probably missed the complexity of the domain ^^. Look for liers.
You should definitely watch the keynote video.
DDD and the real world
Tests are essential to any legacy refactoring. As a matter of fact the strategy was to cover business layer with unit tests, then use feature toggle to switch from legacy to clean code implementations.
I learned a new code smell. The more the complex is a feature the less it tend to be used.
On funny thing was that they encountered the “delusion of reusability” syndrom. A lot code was factorized in the legacy solution so whenever it was modified, everything has to be retested.
Antoher keypoint was that changing code was easy compared to changing people and practices. They encountered a DataCentric vs FeatureCentric mindset.
At the end an interesting question has been asked : “Is it all perfect ?”, the answer was “No, because we still call some legacy code. In some way you have to accept that everything will not be perfect.”.
The two speakers were truly passionate. It was very pleasant to hear their story.
This conference was not about technical stuff at all but how to think. It looks like a philosophs gathering around computer science.
We have to work with humans and analyze human systems to design proper software. Technical knowledge is like snow. It disapears during night. We need to constantly keep up with technology.
Learning how to think and behave will last much longer than a JS framework. Also good thinking and behaviour can be reuse in other languages and even day to day outside work hour.
C U next year DDD Europe ;)