Thursday, November 18, 2004

Why I Hate Domain-Driven Design

I was feeling pretty good about myself I have to admit. Having just delivered a system that took a year of a dozen developer's lives to complete with the full XP experience working like a treat, on time, on budget, happy customer, etc, etc, I thought I'd finally get my life back and start catching up on all the reading I don't do when it's head down, bum up on a project. High on my list was Domain-Driven Design by Eric Evans, as it had been highly recommended by people I respect a lot. So now I'm depressed. It is such a fine book, no, it's a truly mind-expanding, insightful, gee-now-I-feel-stupid kind of book that I now just want to go back and do the whole damn project again. And this time I'd do it properly. Dammit.

If you'd like to share the joy, as usual my recommendation is to get it on the cheap at Safari

2 comments:

  1. I just got a domain-driven design shot-down because it didn't have the architecture of an existing .NET app in place--one with a flawed architecture. I call it "first man in the door syndrome", which means the first guy to build an app with new technology sets the standards for all future apps, regardless of whether it's proper or not.
    So when I read that book I won't feel badly, because I know I wouldn't have been able to do it on this project anyway.

    ReplyDelete
  2. Before you actually start designing a business domain model, I highly recommend that you read "Streamlined Object Modeling" by Nicola, Mayfield, and Abney. Website at http://www.streamlinedmodeling.com/
    Evans' book does a good job of explaining WHY domain models are important, but his techniques for HOW to design a domain model leave a lot to be desired. For business domains, at least, the Streamlined Modeling technique is more comprehensive, more robust, and pleasantly straightforward.

    ReplyDelete