I have been reading Domain-Driven Design by Eric Evans since last August. Although the book is interesting, it has been difficult to read—at least for me.
The author explains the concepts of domain models in great detail but provides few practical examples. As a developer primarily interested in implementation, I am forced to pause frequently in order to think how to write code based on his ideas. Coming to terms with the fact that DDD provides guidance only for modelling and not for implementation finally made the book more enjoyable.
Considering software development as an engineering discipline, we tend to be inflexible when we build applications; we think that our technical problems can be solved by science and maths alone. Writing software is, however, also creative. And like with art, abstract ideas – such as DDD – are sometimes all we need for inspiration.