勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

「エンタープライズ設計」を再読した #デッドライン読書会

読むのがホネな(積みがちな)技術書やビジネス書を取り上げて2週間の読書期限を課して読んでアウトプットする仮想読書会「デッドライン読書会」の第46回。常時、けっこうな量の積読があるのだけれども、知り合いと読書期日を約束することによって消化が捗るという仕組み。過去5回分のログはこんな感じ。ずっとパタヘネ読んでた。

さて、パタヘネの呪縛から解き放たれたところで、今回取り上げるのは「Web世代が知らないエンタープライズシステム設計」である。

実は5月頃に読了していたのだが、一緒にデッドライン読書会をやっている84zumeさんからの要望もあり再読したもの。いろいろな意見があると思うのだけれども、いろいろな意見を引き出してもらうような本だと思うので異論反論があるのは正しい読み方だと思っている。

エンタープライズ設計」とは

さて、本書が取り扱っているエンタープライズ設計とは何だろうか。本書の「はじめに」冒頭では以下のように説明されている。

エンタープライズシステム、つまり企業情報システムを設計、開発、運用するための本質的で枯れないノウハウがある。例えば要件定義を含む業務設計やデータベース設計、運用設計などだ。


Web世代が知らないエンタープライズシステム設計、はじめに より

抽象的~。

私の解釈ではあるが、

  • 試行錯誤の(アジャイル開発的な)アプローチが取れない、もしくは取りにくい
  • 設計等については(最適かは別として)正解が存在して、それを満たさなければソフトウェア開発の失敗と見なされる

というのが、「エンタープライズ設計」の問題の中心だろう。「作ってみました、動かしてみてダメだったら修正します」が通用しない、企業ソフトウェアの設計に関する話である。

ただ「エンタープライズ設計」の要所はまだ曖昧で、体系化されていないのも事実である。
というわけで本書は、このあいまいな「エンタープライズ設計」ということに対して、一家言あるエキスパートがあーだこーだ言うエッセイ集という構成になっている。

対話する本

さきほどエッセイ集という表現をしたが、一定以上複雑な問題に対して識者が様々な意見を表出するというのは技術書の一つの形式である。有名なものだと以下のようなものがある。

この種の書籍は「対話する本」である。ゆえに、読者は全ての内容について肯定する必要もないし、反論をしても良い。そういった反応をしながら読むのが良いだろうと思っている。そういう意味では「Web世代が知らないエンタープライズシステム設計」という本は「エンタープライズアーキテクトが知るべき16のこと」というタイトルの本だと思っても良いと思う。

感想:Web世代エンジニアの問題は何か

さて、本書の表題は「Web世代が知らないエンタープライズシステム設計」であるが、ではWeb世代エンジニアの問題とは何だろうか。
本書を読んで私が理解・共感したのは以下の点である。

  • ソフトウェア構造の抽象的な分析(モデリング)の軽視もしくは不足がある
  • ユーザー中心設計と、実装技術周辺に着目しすぎている

この辺りに関して筆者が懸念しているのが、昨今のドメイン駆動設計(DDD)の盛り上がりである。エリック・エヴァンスが提唱したDDDはもともと、「適用分野に関する知識」を対象のソフトウエアに組み込むための、モデリングを核とする汎用的な枠組みだった。言ってみれば当たり前の指摘ではあったのだが、実装技術ばかりに注目しがちな技術者に良いアドバイスになると筆者も共感したものだ。 ところが日本におけるDDDは、いつの間にか「オブジェクト指向プログラミングの現代的なスタイル」とみなされてしまう。その過程で「適用分野に関する知識」の重要性は、そういった知見を持つ「ドメインエキスパート」との協働の必要性にすり替えられた。 適用分野の専門性がなくても、それを有する専門家と協働すれば良いソフトウエアが出来上がる──こう考えているとしたら幻想である。


Web世代が知らないエンタープライズシステム設計、第2章 本当は怖い「プログラミングの学び過ぎ」、実装オジサンを避ける必須知識はこれだ より

ユーザーヒアリングは現場の生の意見を聞く場だが実社会は矛盾と不条理にまみれたカオスである。カオスをフィルタリングして語れるユーザーがいればよいが、真面目で有能なユーザーであればあるほど、あらん限りの例外事象をあげ、システム側の担当者はけむに巻かれてしまう。 そこに何事にも手を抜かないことを取り柄としているシステム開発会社のエンジニアが登場するとメリハリなくすべてをシステムに落とし込もうと頑張ることになる。さてどんなモンスターが出来上がるのだろうか


Web世代が知らないエンタープライズシステム設計、DX時代にUI偏重は危険、ユーザーヒアリングのまんま設計するな! より

このあたりの問題意識についての共感は多いのではないか。
また逆に、「オジサンはわかっていない」という反論もあるのだろう。ただ、そういった意見を考えることも重要だと思う。興味があったらぜひ手に取って読むとよいだろう。

関連記事

本書では技術継承についての言及もあるのだけれども、それについて興味があれば過去に書いた以下の記事をどうぞ。
agnozingdays.hatenablog.com