読むのがホネな技術書やビジネス書を取り上げて2週間の読書期限を課して読んでアウトプットする仮想読書会「デッドライン読書会」の第65回。同僚と読書期限を約束することによって積読が確実に減るという仕組み。過去記事はこちら。
さて、今回は「データモデリングでドメインを駆動する──分散/疎結合な基幹系システムに向けて」である。今回は読書会メンバーで少しディスカッションをして選書。みんな、著者の杉本さんのシステム開発に関するXでのポストなどもよく見ていたので、読んでみようということになった。また目次を見る限りでは骨太のようなので、前後編に分けて読むことにしている。というわけでPart.1では 第1部と第2部を取り扱う。
「データモデリングでドメインを駆動する」とはどんな本か
さて、(まだ半分しか読んでいないけど)本書は概ねこのような本である
- 既存の基幹系システムを概観し、課題を指摘した上でよりよい基幹システム像を提言する(第1部)
- 基幹システム(SoR)を、活動のシステム(SoA)と経営管理のシステム(SoM)に大きく分離し、データアーキテクチャレベルで検討する(第2部)
- 横断的な関心事となりそうな重要要素について整理検討する(第3部)※まだ読んでない
- データモデリングの基礎を再考する(第4部)※まだ読んでない
類書だと次のようなものになるだろうか。
この3冊は既読であり、どれも非常に参考にしている。こちらの本は残念ながらまだ読めていない。読まねば……エンタープライズシステム開発におけるビジネスアーキテクト/システムアーキテクト必携の書
(まだ半分しか読んでいないけど)本書はいわゆるエンタープライズシステム開発における、ビジネスアーキテクトとかシステムアーキテクトにとっては必読本の一つになるだろう。
システムアーキテクトには疑問点がつくかもしれないが、いわゆるIPAの情報処理技術者試験が定義する「システムアーキテクト」は、ほぼ上流工程人材なので間違いではないだろう。
情報システム戦略を具体化するための情報システムの構造の設計や、開発に必要となる要件の定義、システム方式の設計及び情報システムを開発する業務に従事し、次の役割を主導的に果たすとともに、下位者を指導する。
- 情報システム戦略を具体化するために、全体最適の観点から、対象とする情報システムの構造を設計する。
- 全体システム化計画及び個別システム化構想・計画を具体化するために、対象とする情報システムの開発に必要となる要件を分析、整理し、取りまとめる。
- 対象とする情報システムの要件を実現し、情報セキュリティを確保できる、最適なシステム方式を設計する。
- 要件及び設計されたシステム方式に基づいて、要求された品質及び情報セキュリティを確保できるソフトウェアの設計・開発、テスト、運用及び保守についての検討を行い、対象とする情報システムを開発する。
- なお、ネットワーク、データベース、セキュリティなどの固有技術については、必要に応じて専門家の支援を受ける。
- 対象とする情報システム及びその効果を評価する。
(IPAのシステムアーキテクトが上流工程スキルを多くカバーしているのは意外と見落とされているポイントだと思う。上流工程力に課題感のあるエンジニアにはこの資格試験を割と積極的におすすめしている)
名前付けの素晴らしさ:SoAとSoM
本書で素晴らしいのはまず、企業の基幹システムつまりSoR(System of Record)を分解して、SoA(System of Activity)とSoM(System of Management)と名付けたことだと思う(SoAには別の意味がすでにあるけど)。おそらく類似のシステムアーキテクチャの整理は何度もされてきたはずだ。しかし名前がなければアーキテクチャの構造についての議論などはできない。基幹システムは対象業務や組織によって千差万別なのだからだ。そういう意味では本書、というかSoA/SoMの対置は流行ってほしい。
悩ましいのは移行の方法
おそらく未読の3章以降でも触れられていないようなのだけれども、悩ましいのは本書で論じられているアーキテクチャへの移行方法について触れられていないことだ。マイクロサービスアーキテクチャについては、ストラングラーパターンという移行方式についての議論がある。本書で論じられているSoA/SoMアーキテクチャへの移行については、このパターンに類似の方法を取ることになると思われるが、それでもかなり悩ましいだろう。しかし、基幹システムをビッグバンで再構築するのは現代ではかなり困難である。その点について、本書を起点にいろいろなところで議論が巻き起こったりすれば良いのではないだろうか。
あと2週間で残りを読んで、つづきの記事を執筆する予定である。さて後半にはどんなことが書いてあるのだろう