Jim Coplien, Eric Evans, Kevlin Henney and Randy Stafford were on a panel about DDD. Here are a few glimpses of what was said.
Why do you think design is so hard?
Randy: Because software development is fundamentally a social activity. Getting people to agree on what is to be built is the difficult part.
Eric: There are so many things you have to be good at: Both people and computer stuff at the same time. Plus you need some experience behind you. And the list could be longer. You need to be reasonably good at all of these things.
Jim: The act of design changes the problem. All you can do is capture what worked before. That’s why patterns are useful.
What are the main obstacles to adopting DDD: To get started at all and what are the problems along the way.
Kevlin: To get people to think and to get them to continue thinking.
Jim: People have tremendous problems leveraging abstractions. DLSs have extremely low success ratio (1/10) while DDD has about 70-80% success ratio.
There was a lot more and the video will be posted. Well worth a view.
Is DDD BDUF or not?
Randy: You can’t write for example a test before you have given it at least enough thought to know the name of the method to test and what class it is on. Some design must be done up front.
Kevlin: To use another word here: Thinking! How much thinking must be done up front? How much notion do you need to have about something before you can say anything about it? You can call that up front conversation. It does not have to be big but it has to exist.
Jim: Design does not take a big time up front if you get everyone together who are involved and put them in the same room to work together. Architecture means form not structure. You can do six months of BDUF in a week if you do it right.
Eric: I like to have an initial brain storming session looking at the problem and look at model alternatives that can arrange all the things we need. That’s one thing I do up front. You don’t want to create too specific models and define everything so that you cannot fit it together with the other parts. The time at which you are the most ignorant about a design is at the beginning of a project and BDUF is a good way of locking in that ignorance in the project for all time!"
Cheers,
M.
posted @ Wednesday, November 19, 2008 6:00 PM