『Web世代が知らないエンタープライズシステム設計』IT勉強宴会(著) を読んだので、書籍から得た知見をご紹介します。
自分がWeb世代で、エンタープライズシステム設計を学びたいため、この本を読みました。
以下、印象に残った箇所の引用とメモです。
適用分野の専門性について他人をアテにしてはいけない
この辺りに関して筆者が懸念しているのが、昨今のドメイン駆動設計( DDD)の盛り上がりである。エリック・エヴァンスが提唱した DDDはもともと、「適用分野に関する知識」を対象のソフトウエアに組み込むための、モデリングを核とする汎用的な枠組みだった。言ってみれば当たり前の指摘ではあったのだが、実装技術ばかりに注目しがちな技術者に良いアドバイスになると筆者も共感したものだ。ところが日本における DDDは、いつの間にか「オブジェクト指向プログラミングの現代的なスタイル」とみなされてしまう。その過程で「適用分野に関する知識」の重要性は、そういった知見を持つ「ドメインエキスパート」との協働の必要性にすり替えられた。 適用分野の専門性がなくても、それを有する専門家と協働すれば良いソフトウエアが出来上がる──こう考えているとしたら幻想である。創造的なソフトウエアというものは、専門家による構想と、その分野の専門性を一定以上持つ開発者の技能とが融合して初めて生み出される。
なぜなら専門家の構想はたいていあいまいで不定形で、場合によっては的外れだったりするからだ。これをまとまりのあるソフトウエアとして仕上げていくには、開発者にもその分野に関する一定以上の専門性が欠かせない。
もし、「適用分野に関する専門性は自分以外の誰かによって供給される。自分は実装技術を究めればいい」と考えるようになるなら、それは歪曲(わいきょく)された DDDであり、学びは害悪でしかない。プロダクトオーナーが持つ専門性をあてにしているという意味では、アジャイル手法の一種であるスクラムにも同様の危うさがある。
? 歪曲されたDDDは害悪
エンタープライズシステムにおける専門性は 3点ある
簿記を含む多業種向けの業務知識」「システム要件を具体的な設計仕様に落とし込むスキル」「システム開発に最適化された実装スキル」、これら 3点がエンタープライズシステムでの専門性だと筆者は考える。
以上、エンタープライズシステム設計を学びたい、現場からお送りしました。