DDDの疑問点

昨日に引き続いて、DDD。いくつか疑問に思っていることを。

DDDが有効なプロジェクトって?

DDDがうまく適用できるプロジェクトと、そうでないプロジェクトがあるんじゃなかろうか。

顧客、ドメイン専門家、設計者、そしてコーダーが密にコミュニケーションをとることが前提になっているので、10~20人くらいの規模までには良く適合しそう。

それ以上にプロジェクトの人数が増えるにしたがって、ドメインに関する知識を共有するのが難しくなるのではないだろうか。メンバーを「分割統治」しちゃった方が有効な場合だってあるだろうし。(コーダーにはコーディングに必要な範囲の知識しか教えない。インフラはインフラしか見ない。ロールにしたがってスコープをびっちり切っちゃう。むしろこのやり方がアメリカ的なのでは?)

100名以上参画したプロジェクトのことを思い出してみたのだけれど、DDDをやるイメージが沸かない・・・

DDDの実装

DDDはレイヤリングの重要性も説いている。

ところで、ドメイン・レイヤーはJ2EEではどう実装されることが多いんだろう。

例えばJPA使ってたとしたら、DDDのEntityは、JPAのEntityとほぼ一対一になる?

Agileの普及

ちょっと話は変わるが、平鍋さんがAgile Japan 2010で、「アジャイル開発は、10人規模のプロジェクトでは多くの成功例があるが、大規模開発の場合はそれほど成功例がない。」と語っていたそうだ。*1

何がAgileの普及を妨げているんだろう?1つにウォーターフォールがあまりに「わかりやすかった」ってのがあるんじゃなかろうか。色々非難されるウォーターフォールだけど、あの開発手法がわからない人に出会ったことが無い。やっぱり逐次作業っていうのは人間にとって自然だし、それは大きな利点だと思う。それに比べると、イテレーションやその他の考え方は、「自然さ」で劣るのでは。*2

*1http://jibun.atmarkit.co.jp/lcom01/special/agile2010/01.html参照。大規模Agileに関するセッションもあったそうだが、そのようなセッションが大きく取り上げられていること自体、やっぱり実績が少ないんだろうなあという印象が。

*2:今参画しているプロジェクト(4~5人規模)では、全体的にはAgileな手法のほうが適切とは感じる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です