Introduction: what & how?
Implementing Domain-Driven Design is a book written by Vaughn Vernon, and you can consider it a practical guide to the blue book - a lot of people consider the blue book to be used as a reference, but it takes some persistence to read it -. Vaughn tried to solve exactly that problem with his book…
A little while ago, Vaughn Vernon was tweeting about how had given a free course about his book “Implementing domain driven design” while visiting Bogota, Columbia. This course was given for free to help start-ups there.
In the next few hours after this tweet, an idea emerged on twitter about a concept called the IDDDtour, where Vaughn would be teaching his book to larger classes and doing a tour through Europe, but at a fraction of the cost. As I am somebody who is more of a head first kind of guy, I decided to take ownership and figure out a way to make this a real thing…
…So I created a discussion group on Google
Next, Vaughn tweeted about the group I created.
… And the response was quite big: we had 68 messages in the first thread, and people wanted to organize IDDD classes all over Europe. But reading through all these posts, I noticed that this whole “organizing using a discussion board” was not really working, and as most of the people interested in DDD would probably be experienced in using Github, I decided to set up a repository there, and use the wiki and issues from github instead. I setup an initial landing page with some guidelines, posted a small message and tweeted about it.
The wiki turned out to work pretty good, and after only two days, we had reached a consensus about 4 locations in Europe, all with a self-organizing team!!!
I also opened up an issue on the github repo, to find out whether somebody would be willing to sponsor the venue and food in Belgium in exchange for free attendance, and the miracle happened: shortly after opening the issue Nordin from CeGeKa replied that they would be willing to sponsor… I assumed opening an issue would not have worked, but as we all know: in IT assumptions should not be considered valid or invalid before they are verified.
So now it was time to transfer the ownership to Vaughn , in order for him to be able to organize everything else. He setup a professional site, and we were good to go…
Fast forward to six months later… Day 1 of the event
The moment was finally there… I took my backpack early in the morning, got in my car, and drove to “de Brabanthal” in Leuven…
I arrived late due to underestimating the traffic jams, but eventually got there. As I was welcomed by somebody at the front desk providing me a name tag, it took me a while to realize that this was actually Nicole, Vaughn’s wife, basically helping us out where necessary and also providing some interesting discussions during the next four days… Thanks Nicole!!!
When I entered the room I was a bit flabbergasted: about 70 people were sitting there, and I was thinking “Yes, we did it!!!”
Still standing there, Vaughn interrupted the class, and asked whether I was Tom, as we had never met in real life before… So I replied that I was, apologized for being late in front of the whole class, so we could continue with the course. Well, that did have one advantage: everybody now knew who I was, even though arriving late for an event you co-organized is probably not the best first impression somebody can provide ;-) .
What followed was a really interesting journey about context mapping, bounded contexts and other things mentioned in the book (Yes, buy the book, you should, really). Everybody was soaking up the stories, and all things considered, the first day of the course everybody was probably still getting used to the big group of students.
What I consider a very good thing, is that a lot of interaction started to emerge: people were sharing stories and getting acquainted with each other during the breaks. There was a healthy buzz there, and people who know me in real life can probably understand why I was thrilled about that.
We did not have any evening sessions in the first day, so we finished before dinner.
Because of my experience with the traffic I decided not to commute, but booked a BnB on the first day for 3 nights, within a reasonable distance from where most of the others stayed. For the record, my airbnb host was a really great guy going by the unusual name of Idesbald, so, Idesbald, if you are reading this: thanks!
We arranged to meet up at the bar in hotel that night, and find a place to enjoy dinner. About half of the people during the dinner meetup on a regular basis having #CQRSBeers in Belgium, so the atmosphere was comparable: it is all about sharing and learning from each other in face to face conversations. I personally discovered a tremendous amount of new things picking my peers’ brains.
While we stayed up pretty late, I think I got back to the bnb on a reasonable time (about 1.00am’ish).
Day 2: Day of the rascals
Day 2 was a very interesting - but also exhausting - day; we were having really lively discussions and stepping up, even though questions/opinions were sometimes inapropriate and/or irrelevant (yes, me too, so I apologise). There were quite a lot of discussions going off-topic a bit to much (more about implementation details then about modeling), but it is great to see the crowd is engaged and people are passionate about their jobs. I can only imagine how hard it must have been for Vaughn to answer all these questions, still trying to be polite and keeping the class on track, but I assume everybody learned from it one way or another…
People were starting to mingle with other groups more and more, and I think I personally met about half of the attendees by then in person…
On the second day we had one presentation after dinner: Yves sharing his experiences about exploring his domain, and it was a very interesting talk.
After the last presentation, we met up once again in the bar of the hotel, and we actually spent the whole night there… I think it was probably around 3.00am’ish here before I got back to the hotel, let’s hope this pattern does not interpolate in a linear fashion ;-) !
Day 3: Let’s keep on track folks !!!
Day 3 was one of my favorite days, as we could get our hands dirty and really start implementing code… People who know me in real life will probably confirm that I am more of hands-on kind of practitioner, so I started coding… As I am currently doing something that you could consider “a bottom-up strategic consulting/devops” kind of thing, I have not been doing a lot of code, lately. Implementing the code, and working on a case that I would be able to show during the CQRS presentation, really reminded me how much I love writing code…
I assumed Yves was going to talk about CQRS, so I decided to do a talk on something different for the evening session. But, as always, assumptions are never valid until verified. As he had decided not to talk about CQRS, I decided I had to. So, in the evening session, I was going to give my first presentation over a timespan of 20 minutes (I had show a preview to Tomasz and his Parisian friends in about 5 minutes, so 20 minutes should have been doable), and then reuse my old talk I performed for the VISUG about a year ago.
However, as I started giving my presentation, I was noticing that there was a lot of feedback, people were really - and I mean really - engaged, and there was a lot of added value in the tips from the audience, so after a few minutes we decided to just have this talk, and postpone the CQRS talk.
I received a tremendous amount of tips from everyone during the talk, but there was one person who really popped in particular, and added a lot of practical tips and shared his experience: Tim Schraepen. So, thanks Tim, for all the extra info !!!.
Feedback after the talk was also great:”
Also, people came to me during the next day, saying my talk actually triggered them to start tweeting and/or blogging again or for the first time, which is exaclty what I was trying to achieve with my talk.
The reward for “best compliment during feedback” goes to Alberto Brandolini - yes, I became a fanboy during the IDDD days, and was constantly bugging him with questions and trying to peek in his mind -, who actually told me my talk was “An immersive experience”!!
For the record, you can find the slides for the talk here.
As usual, we met up at the hotel bar, but by now, the group had expanded to about 20-something, if I recall correctly… Things that happed in Leuven should probably stay in Leuven, but let us just state that my decision to drink only “Chimay bleu” during the whole night, was probably not the best decision ever. We did start of with the whole group on Marter’s square, but somehow this evolved in to something that might have been a little bit too much - but in a funny way, nevertheless - ;-).
I think it would be safe to say that the initial assumption about the hour of arriving home actually was a linear interpolation; you can do the math yourselves.
On thing that I did love, that gives a good indicator of the general atmosphere there, is this:
Day 4: wrapping it up
So, on with the final day… Even though some people looked a bit like “the walking dead” cough Jeroen cough, some bottles of sparkling water and a few litres of coffee managed to get us back on track… First Vaughn give us some interesting final insights, and then up next was Alberto with a workshop called “Event based modeling”.
Explaining the amazing results and the simplicity in this technique would make this blog post even longer, so I will not extrapolate further on this. You can find some slides in Italian from Alberto here, and I am confident we will hear more about this technique as people are discovering the huge amount of value there is in mapping your business process using simple post-its, starting from events, discovering commands & triggers, and finally modeling your domain….
I think it is also safe to say he is a really smart and creative guy that manages to think on a higher level, but translate it in a way that everybody understands it.
Next to this his cartoons are also really great ;-) .
We also had Tomasz Jaskula on the floor, and I have to say he gave a really great and brutally honest presentation about building his startup, LinkMyCV.pl.
One of the things he said that really struck me was what he called the architecture 2011 effect:
You can find his slides here…
Another thing on the todo list, was the partially improvised lightning talk from Marco & me about CQRS. As we were going through both of our presentations, we agreed that his one was actually better, so we decided to use mostly his structure, which also allowed me to delegate the speaking to him. Anyway, I think he did a great job, and really managed to add some value in the room.
One quote that stuck me in particular:
After 4 days of this really intensive workshop, we decided to call it a day, and went for a final drink - once again on Marter’s square -, where I met some more people I had not actually seen or talked to before, my apologies. Once again interesting discussions emerged, and we finally wrapped it all up over - once again - a few beers.
Wow! I was completely brainfried when I got home, and it actually took me about a week to get my brain back from hyper- to normal speed again. This has been - on both a personal and professional level - such an enriching experience that I would love doing this again. And again. And again.
The most odd thing that struck me when I was talking with Vaughn during the last day, was that all of this started with a simple tweet, which is, in effect, by definition less then 140 chars. Talk about empowerement people!!! But that is probably the subject for another blog post.
Thanks for sharing & caring everyone!!!