I am in complete agreement with Arnon.
Another important part of the decision should be based around the skill set of the development team. If your development team is not strong with OOAD then DDD is probably the wrong way to go. Let me tell you there is NOTHING worse than a poorly implemented domain model :D
Requirements also go a long way towards choosing an approach ... If this is code is for a small system ... often times the problems DDD helps solve are not too big of a deal (i.e. code duplication) if you only have 3000 lines of code total and could redo the entire app in a week or two ... isolating yourself from change is probably not a very good investment (chances are the application will never become a maintenance nightmare, and if it does it can simply be re-written.
Often times delivery schedules have alot to do with the choice as well ...
Cheers,
Greg |