Picking a Conference
So, my idea was to pick one technology conference – since technology is always cool – and one architecture conference. For the technology conference it was clear to me that I want to go to the SpringOne Platform in December. For the architecture conference I was not sure what I should do.
End of last year I joined a new project, our tasks were to integrate new related systems in our software – so especially changing the infrastructure. This was easy, since we started end of last year to migrate to the onion architecture (also known as hexagonal architecture) and before, it was already Domain-Driven.
This was the reason why I want to learn more about Domain Driven Design and started to read the well-known book from Eric Evans. Together with a college I decided to go to the DDD eXchange – a conference in London.
The DDD eXchange conference spanned two days. On the first day there were two parallel tracks and at the second day only one track. There were several interesting talks, obviously about DDD and some about other topics. I want to point out two interesting talks: the first one from Eric Evans, including a discussion about naming things and second, a talk by Jeff Patton.
Good Design is Imperfect Design, Eric Evans
The keynote on the first day was, for sure, from Eric Evans and the title was “Good Design is Imperfect Design”. And exactly that was the message, you can build a perfect system, but building software is a trade-off between perfectionism and time-to-market. If you are building the perfect software, you will never finish it.
And exactly this is, what I can see on my personal projects, I often start projects and then just stop them, because I think the design is not “perfect”. Eric Evans talk was about the famous Java library joda-time. He pointed out a naming problem from the method date.plus(period). The problem is, that plus is a mathematic operation and a user would expect associativity. When you now calculate for example the date 2017-01-31 + 1 month, what would you expect? When you add (2017-01-31 + 1 month) + 1 month, what is then the result? Is 2017-01-31 + (1 month + 1 month) the same?
Like Evan said in his talk, most of the questions you can find out if you are trying it out or reading the documentation. The conclusion of his talk was, that it is better to name the method honestly. But also for him, it was not easy to find a name which is satisfying. You can watch the talk online on the conference website.
Empathy Driven Design, Jeff Patton
There is a second talk I really enjoyed which was called “Empathy Driven Design”. I liked this talk because Jeff Patton was pointing out how he was visiting customers for several years to analyse what their needs are for their software. He told several stories and compared it with biology research. They are not inviting chimpanzees to their office to look at how they are working, they are visiting chimpanzees in their natural habitat. It is more expensive, but you have a better view if you are visiting the customer and especially the persons which are using your software. Just with the motto: “When have you last talked with a person which is using your software?”
For me, these two talks were one of the best talks. Furthermore, I enjoyed the party at the first day in the afternoon while discussing several projects and problems from other attendees and the “Unconferencing” of this conference. This was a format at the last day where it was possible for everyone to become a speaker. They made the possibility for everybody to present a 10-minute lightning-talk or join a round table to a specific topic.
Finally, it was the conference with the worst food for me until now. Please don’t get me wrong on this, the food was okay, but it was the worst – yet the conference with the best talks.