Big picture thoughts on software and other topics

May 14, 2010

Eric Evans’ DDD Immersion Course

by Brian Donahue

About a week ago, I had the opportunity to attend Eric Evans' four day "Domain Driven Design Hands-On ImmersionBroken Link: http://domainlanguage.com/training/ddd-hands-on-immersion.html" course.  It was a great experience - a well-designed course, and a very interactive environment where you really got a chance to get your questions answered.  Our group was only 8 people, and Eric mentioned that he limits every course to a maximum of 12 students to keep it as interactive as possible. 

Each day of the course is broken up into short segments. Typically, Eric would give a short lecture to introduce a topic, and then we would split off into groups to do some exercises that would help illuminate that topic.  There were frequent short breaks between segments, which really helped to keep us fresh and engaged, and gave some time for anyone with additional questions to speak with Eric or other students. 

The exercises are very effective - they never seemed too long or cumbersome that people got frustrated or stuck; but they were not obvious or tedious.  There was always some new insight to be gained, even if it was different for each group.  Eric actively assists the groups during exercises, whether helping us work through a coding exercise, or acting as "domain expert" when we were trying to brainstorm the domain model on a white board.  They are also carefully designed such that everyone starts at a common point for each exercise, even if they didn’t get as far as another group during a previous exercise.  Each code exercise, for example, was its own separate project with everyone starting from the same fresh code base, and only a small, focused change that each team needed to figure out.

The theme of the course follows the shipping industry example from Eric’s Domain Driven Design*.  The students act as DDD consultants who are trying to help "Peerless Shipping" work out a domain model for their systems.  We start with a very small bit of information, and through conversations, brainstorming, and code spikes, come up with a working model.  Throughout the course that model is challenged and changed as new information emerges or new scenarios expose weaknesses or gaps in the model. 

Eric has put a lot of work (and from what I gathered, incorporated a lot of feedback from others) into the course design, and it really makes for a great learning experience.  Eric is a great teacher as well - he is very easy to talk to and very thorough when answering questions or elaborating on a topic.  Unlike some trainings and courses I’ve experienced, I don’t think anyone left this course without a very solid understanding of how they can better pursue DDD in their own environments.

If you’ve seen the value in DDD, but struggled to fully understand and apply the concepts by reading the book (or let’s be honest, maybe you’ve struggled to make it through the book – it can be challenging) this class is a great way to really solidify the ideas in your mind, and learn some techniques for applying them in the real world.

Eric is holding another “Immersion” course in New York in late September 2010, with early bird pricing available until August 27th.  For more details, and information on other available training, check out the Domain Language websiteBroken Link: http://domainlanguage.com/training/index.html.

You can also find a very thorough review of the course materialBroken Link: http://www.virtual-genius.com/blog/post/Domain-Driven-Design-Immersion-Course-e28093-Part-1.aspx at Paul Rayner's blog.

* The cheapest way I’ve found to get Eric’s DDD book is to use Philly ALT.NET’s user group discountBroken Link: http://phillyalt.net/MainPage.ashx#books for Pearson Education.  As of today, that price is $45.49 compared to $54.59 on AmazonBroken Link: http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215.