Monday, May 07, 2007

Domain Driven Design.

I have recently been reading: "Domain-Driven Design, Tracking Complexity in the Heart of Software" by Eric Evans.

An Excellent book. The basic principle is that a "Ubiquitous Language" should be a core design element which is shared between all participants and extended, or refactored as the understanding of the problem domain matures.

This has echos of NLP for me. Isn't rapport learning to share the same language? It makes sense that the software built to satisfy a shared language will be much closer to what the customer needs than whatever an engineer can mind read. Evans wants us to spend time speaking the language, (multiple modes anyone?), because he believes that our mind will accept complicated models visually which we won't stand verbally. By mulling over how a model sounds, we are using a different partion of our mind to validate, and to insure that the model we have is succinct, and well structured.

As an NLP fan I would also be interested in looking for meta language issues with the language. The same deletions and generalizations we might look for while in conversation with a patient would also reveal weaknesses in the ubiquitous language, and help us identify areas where it should be expanded or modified.

I'm still reading the book, but it has triggered a lot of great ideas in my mind! Thank you Mr Evans!

No comments: