On November 11th, 2010 I had the pleasure of being asked to deliver my talk on Domain Driven Design Implementation Patterns in .NET to the Central NJ .NET User Group at the Infragistics offices in Cranberry, NJ. The talk started at 6:30pm and lasted until nearly 10:00pm – more of a free half-day of training and less of a user group talk .
Thanks to those 30+/- folks who stuck it out until the bitter end. Much to the credit of the attendees, only a very few of the meeting attendees had to leave before the talk was completed. I’m pretty certain that *I* didn’t want the talk to last 3.5 hours – I doubt most of the attendees did either, but I can assume that the level of interest, feedback, and participation of the attendees remaining high the entire time must have meant that people were getting good value out of the talk!
A Recurring Problem: Timing and Content Challenges
Delivering this talk for a user group presents an interesting challenge – its designed to be delivered as a 1.5 hour talk about considerations for implementing various DDD patterns in .NET but its heavily dependent on an important underlying assumption: that the audience is already familiar with DDD concepts and principles. Often the audience that tends to show up for this talk has a mixed experience with DDD – some are familiar with the concepts, others have heard of it, still more are actively trying to practice DDD, and still others are unfamiliar with the details of most of the concepts. This makes is hard to deliver the talk “as planned” because to do so usually means that some segment of the audience won’t really get the full value out fo the talk without my taking time to introduce some DDD “background” that explains most of the concepts.
I initially ran into this problem when I delivered this talk in February for the Philly ALT.NET user group. In that talk, I found that I had to back up a bit and provide some DDD context before proceeding to the code itself. Fortunately, I happened to have a DDD Concepts presentation on hand for that talk and was able to quickly pull it out and run through it to provide the needed background to the attendees before delivering the originally planned presentation.
I’ve since learned from that experience and have restructured the overall presentation to be more of a combination of concepts and code rather than the code-centric talk for which it was initially conceived. But front-loading the code-centric content with a primer on DDD Concepts and Theory tends to increase the overall length of the talk significantly. Fortunately, it seemed most of the NJDOTNET attendees were more than willing to sit through the entire length of the talk, despite its length.
From my quick perusal of the reviews I received from the attendees, it seems the talk went over well and people were able to get good value from the content so despite its length it seems people were able to remain engaged and interested in the topic. Based on the questions and discussion, it seems that a lot of the attendees were interested in the subject matter – its really great to see people latching onto the DDD concepts and working through some of the decision-points in deciding how to codify their domain knowledge in their software solutions.
Downloads and Samples
In case you missed the talk (or were in attendance and would like to review the code samples, etc.), here are both the slides and code for download: