You decide, will this concept stick?
Posted in Communication, Software on January 20th, 2009 by Jan Willem Tulp – 3 CommentsCurrently I am preparing a workshop on Domain-Driven Design to inspire my colleagues to have certain principles in their head when working on software projects. This is quite a challenge, since it is not just a set of steps to follow, but a way of thinking, a mindset. According to the definition of the Domain-Driven Design website, Domain-Driven Design is:
Over the last decade or two, a philosophy has developed as an undercurrent in the object community. The premise of domain-driven design is two-fold:
- For most software projects, the primary focus should be on the domain and domain logic; and
- Complex domain designs should be based on a model.
Domain-driven design is not a technology or a methodology. It is a way of thinking and a set of priorities, aimed at accelerating software projects that have to deal with complicated domains. To accomplish that goal, teams need an extensive set of design practices, techniques and principles.
The key concept of the workshop is: “focus on the Domain Model”. When software developers are developing a software application, I want them to remember this workshop, and be triggered of this core concept of Domain-Driven Design. According to Wikipedia, the definitions are:
- Domain: a field of study that defines a set of common requirements, terminology, and functionality for any software program constructed to solve a problem in that field.
- Model: a pattern, plan, representation (especially in miniature), or description designed to show the main object or workings of an object, system, or concept.
Now these definitions do cover the meaning quite well, but it is not very sticky. They’re rather abstract and conceptual. So, just giving these definitions is probably not enough to have a vibrant memory of the core concept of the workshop. It will stick much better if it is simple, unexpected, concrete, credible, emotional and has some story (I highly recommend you read Made to Stick).
Now, my idea does not necessarily comply with all of those, but do you think software developers will remember to think of the (Domain) Model when they see this?
