見出し画像

DMBOKのパターン言語化を試してみる

分析屋の下滝です。

いわゆるDMBOK(Data Management Body of Knowledge)と呼ばれるデータマネージメントが体系化された本をようやく読み始めました。

そのまま勉強していくのもつまらないので、この記事のシリーズでは、DMBOKの内容をパターン言語として表現できないのか、という観点から見ていきたいと思います。パターン言語の方が使いやすいんじゃないのか?という仮説もあります。

パターンとパターン言語

パターンの概念の話は、ソフトウェア開発業界では、デザインパターンをもとに広がりました。

もともとの概念は、建築業界で生まれました。

パターン(とパターン言語)の定義は、様々ありますが、本記事では、パターンとは、ある状況(コンテキスト)において繰り返し発生する問題に対して、その問題を解決することが繰り返し行われており、したがって有効性が確認されている解決方法であり、その解決方法に名前がついたもの、とします。

パターン言語は、あるモノは、様々なパターンを組み合わせて使うことで作ることができるという概念です。我々が、様々な単語を組み合わせて、さらにその組み合わせには有効な組み合わせとなる規則があり、その規則に基づいて、ある文を作っていると同じようなイメージです。

参考として、より深みのあるパターンの定義を参照しておきます(太字は私によるもの)。私はまだ理解しきれていませんので、参考としてです。

 パターンとは設計の要素であり、一般的には建築家のクリストファー・アレグザンダーに由来するとされる。アレグザンダーはパターンに基づくアプローチを用いて都市や地域、建物を作り上げた[Alexander, 1979:Alexander et. al., 1977]。各パターンはシステムに構造を付け加えることで問題を解決する。(中略)
 パターンの概念を理解するのは難しい。(中略)パターンの定義の中には直感的な側面もある。すなわち、「あるコンテキストにおける問題に対する解決法」である。だが、パターンはそれだけではない。本書を読めば、読者は用語「パターン」の意味に対する直感を用いることで、組織を構築したり修復したりできるようになっていく。しかし、パターンについてさらに深く知れば、自分自身のパターンを用いてパターン言語を容易に拡張できるようになり、さらには、組織を設計するという洞察に満ちた楽しい活動を自由に行えるようになるのだ。
 パターンとは何かを完全に理解するためには、まずパターン言語について理解しなければならない。パターン言語と切り離されてパターンが存在することはない。実際、パターンの第一の目的は、パターン言語内の他のパターンとのつながりを構築することなのだ([Alexander et. al., 1977]、xiiページ)。
 しかし、パターン言語を理解するためには、まずパターンとは何かを理解しなければならない。確かに、この概念は再帰的だ。そして再帰を理解するためには、まず再帰を理解しなければならない。つまり、どこかから始めなければならないということだ。我々はまずここからはじめよう。すなわち、パターンから。
 パターンについての短い、それゆえ必然的に不完全な定義を示そう。
  繰り返し発生する構造的な形で、あるコンテキストにおける問題解決するもの。なんらかの全体の全体性あるいはシステムに寄与し、美的あるいは文化的な価値を反映する。
 パターンの持つこうした側面のいくつかは、有名な書籍では触れられていない。そして、アレグザンダーの定義でもすべてが一ヶ所にまとまっていることはない。しかし、これらはパターンをパターンたらしめ、単なる規則とは異なるものにしている重要な要素なのだ。パターンは規則である。配置という言葉は「配置するための規則」と読み替えられる。しかし、パターンは規則に留まらない。パターンは特殊な規則で、システムの全体的な構造に寄与し、他のパターンと協力しあって創発的な構造やふるまいを作り出すのだ。

『組織パターン』, pp.4-5

パターンの記述の具体例は、日本語で良いのが見つからなかったので、引用した『組織パターン』の原文(書籍になる前のもの?なった後のもの?)と思われるものが英語であったのでリンクを紹介します。

このサイトから、パターンの例として「常に誰かが進捗させる」というパターンを紹介します(『組織パターン』からの直接の引用ではありません)。

...主要でないタスクがチームの時間を支配し、その主要な目標を進めることを妨げています。気が散るという一般的な不平があります。
                ✥ ✥ ✥
チームを前進させ続けること、そして障害に足を取られないようにすることは重要です。小さな迂回タスクを含むすべてのタスクに注意を払う必要があります。しかし、重要な日付までに主要なタスクを完了させる必要もあります。
それゆえ:
 何を試みるにせよ、チームの誰かが主要なタスクを進められるようにしよう
                
✥ ✥ ✥
もし主要なタスクを完了しなければ、他のことは何も意味を持たなくなります。だから、どんな犠牲を払ってもそれを完了させましょう。

具体的に解決すべきフォースに応じて、様々な特定の解決策や戦術を採用することができます。以下はこのパターンの具体的な例です:
・ペアで開発する - 常に一人がキーボードに触れられている
・一つのタスクに一つのチーム - タスクを関連するものでまとめる 
・誰か一人を犠牲にする - 余計な作業に誰か一人を割り当てる
・託児所 - ソフトウェアを作るタスクとトレーニングのタスクを分ける

しかし、どの場合でも、目標には常に近づいていることになります。これは、気が散ることを扱う時に常にそうであるわけではありません。

このパターンの心理的効果は過小評価されるべきではありません。もしプロジェクトが多くの気が散ることに見舞われた場合、仕事が停滞するのを見ることは士気を下げることがあります。しかし、目に見える進捗はチーム全体を集中させるのに役立ち、彼らがそれぞれの危機を乗り越えることを奨励し、再び進捗を遂げることができます。

このパターンを過度に取り入れると、気が散る問題を適切に対処しないためのトラブルに陥る可能性があります。しかし、多くの気が散ることは、通常、何らかの他の問題の症状であります。例えば、防火壁を参照してください。

http://www.orgpatterns.com/Organizational-Patterns-of-Agile-Software-Developm/bookoutline/thepatternlanguages/organizationdesignpatterns/projectmanagementpatternlanguage/someonealwaysmakesprogress

「それゆえ」の次の文章が「解決策」にあたるものです。その前の文章は、「コンテキスト」と「問題」が含まれる部分となります。

具体的にどのようにパターンを記述するのかには、様々な流派があります。『組織パターン』では次のように説明がされています。

我々はアレグザンドリアン形式を使っている。この形式はパターンの重要な構成要素をまとめるためのものだ。各パターンの本文は、そのパターンを適用するコンテキストを説明する文章から始まっている。そのコンテキストである問題が起きるかもしれない。そこで、その問題の記述が次に続く。問題を詳しく論じるために、その問題を定義するフォースについて説明する。最後に、様々な開発組織を通じて検証した解決策を提示する。その後でなぜパターンがうまくいくのか、その根拠を述べる。

『組織パターン』, p.23

続いてパターン言語に関しても引用します。

 パターンはパターン言語から生じる。ここで言語という言葉は比喩として使っている。英語は一つの言語だ。そして言語としての英語を構成するのは、いくつもの単語と、その単語を意味のあるやり方で組み合わせるための規則である。パターン言語を構成するのは、いくつものパターンと、それらを意味あるやり方で一定の順序で組み合わせるための規則である。パターン言語によって、ある全体、すなわちシステムを構築する方法がわかる。パターンには関連したフォースがカプセル化されているので、局所的に考えて、局所的なトレードオフに集中できる。パターン言語の対象は、システムにおける創発的なふるまいだ。
 実際のところ、パターン言語とは、パターンを組み合わせとして考えられる様々な方法について、概要を示したものなのだ。パターンをどのように組み合わせるのかはコンテキストによる。パターンを適用すると、コンテキストが変化する。誰かが組織に加わったり、組織が新しいプロダクトラインを作ることにしたりすれば、コンテキストは変わるだろう。ある瞬間のコンテキストによって、当てはまるパターンもあれば、当てはまらないパターンもある。

『組織パターン』, p.7

『組織パターン』で紹介されているパターン言語を参考として紹介しておきます。

『組織パターン』, 図4-1, p.35

「信頼で結ばれた共同体」や「スケジュールを小分けにする」といった四角で表されているものが一つのパターンに対応します。これらの個々のパターン同士の繋がりも含めて、全体としてパターン言語となります。なお、図をきれいに書くのが大変でしたので、パターン間の線がパターン上に重なっており、綺麗になっていません。書籍では綺麗に表現されています。

以上を踏まえて、次節では、DMBOKがどのようなものなのかを見ていきます。

DMBOKとデータマネージメント

まずは、(設計の)問題解決の知識を記述する観点から、DMBOKがどのようなものなのかを確認します。

DMBOKでは、DMBOKとは何か、に関わる記述として次のように書かれています。

データマネジメント・プロフェッショナルが上記の実務を遂行する一助として、DAMAインターナショナル(国際データマネジメント協会)はこのDAMAデータマネジメント知識体系 ガイドブック 第二版(DMBOK第二版)を出版した。

『データマネジメント知識体系ガイド 第二版』, p.40

「上記の実務」が何かは次回の記事以降で詳しく確認しますが、今回の記事では、データマネジメントという領域についての定義だけ確認しておきます。

データマネジメントとは、データとインフォメーションという資産の価値を提供し、管理し、守り、高めるために、それらのライフサイクルを通じて計画、方針、スケジュール、手順などを開発、実施、監督することである。

『データマネジメント知識体系ガイド 第二版』, p.40

これだけではさっぱりわかりませんが、続けます。

別の記述では、組織におけるデータマネジメントのゴールとは以下であると記述があります。

組織におけるデータマネジメントが目指すゴールは以下のとおり。
・自社や顧客・従業員・ビジネスパートナを含むステークホルダの情報ニーズを理解しサポートする
・データ資産を取得し、保管し、保護し、健全性を担保する
・データとインフォメーションの品質を担保する
・ステークホルダが保持するデータのプライバシーと機密性を確保する
・不正または不適切なデータとインフォメーションへのアクセス、操作・使用を防止する
・企業が付加価値を創造するためにデータを効果的に利用できるようにする

『データマネジメント知識体系ガイド 第二版』, p.41

ここでの私の解釈は、データ利用・活用自体のプロセスは、データマネジメントと関係しているとしてもデータマネジメントの知識体系の範囲ではないということです。

たとえば、マーケティングプロモーションにおけるデータ活用を考えてみます。施策例として、2回目の購入を促進するために、初回に購入した商品の購買データをもとに、次に購入しやすい傾向のある商品をクーポン付きでレコメンドするメール配信するといった施策が考えられます。別の言い方をするなら、DMBOKでは、このようなプロモーション施策と言った、具体的な活用施策に関わるような特定のパターンは存在しない、と思われます。

さて、最初の引用に戻りますが、DMBOKは「実務を遂行する一助」であるとありますが、DMBOKがそのためにどのように具体的に表現された内容なのかはそこからはわかりません。

他の記述を確認します。

データマネジメントには取り組むべき多くの課題があるが、課題として新しいものは殆どない。少なくとも1980年代以降、組織が成功するためにはデータを管理することが重要であると認識されてきた。データを生成し活用する能力や要求が高まるにつれ、信頼できるデータマネジメントを実践することが求められる。

DAMAはこれらの課題に対処するために設立された。DMBOKはデータマネジメント・プロフェッショナルが利用するために書かれた正式な参考書であり、DAMAの使命を達成するために以下の点で役立つはずである。

・機能的フレームワークの提供:企業のデータマネジメントを実践するために必要な機能的フレームワークを提供し、その中で、基本理念や広く受け入れられている手法、手段と技法、管理機能、役割、成果物、評価方法などを提供する
・共通語彙の確立:データマネジメントの概念を語る際に使われる共通語彙を確立し、データマネジメント・プロフェッショナルがベストプラクティスの基礎になるものとして利用する。
・基本的なリファレンスガイド:CDMP(Certified Data Management Professional)認定やその他の認定試験に役立つ基本的なリファレンスガイドとなる。

『データマネジメント知識体系ガイド 第二版』, pp.67-68

DMBOKとは、参考書であるとのことです。この抽象度では、どのような観点から表現され記述された参考書なのかはわかりません。

続いて、DMBOKが役立つ観点として、3点があげられています。
・機能的フレームワークの提供
・共通語彙の確立
・基本的なリファレンスガイド

それぞれを確認します。

「機能的フレームワークの提供」に関しては、フレームワークなので、フレームワークとしての表現があると考えられます。上記の記述からはどのフレームワークを指しているのか明確ではないように読めましたが、3.3節では、3つの図が紹介されています。
・DAMAホイール図
・環境要因ヘキサゴン図
・知識領域コンテキスト図
これら3つを指して、DAMAデータマネジメント・フレームワークと呼んでいるように読めました。したがって、このフレームワークを「機能的フレームワーク」と呼んでいるのかもしれません。

これらの図の中で、以下のDAMAホイール図は、よく見るものと思います。

DMBOK 2 Wheel, DAMA. Earley, S., & Henderson, D., Sebastian-Coleman, L (Eds.). The DAMA Guide to the Data Management Body of Knowledge (DAMA-DM BOK). Bradley Beach, NJ: Technics Publications, LLC. 2017.

DAMAホイール図に関係するものとして、さらに、従来の「データマネジメント・フレームワーク」では不足していた箇所があるとのことで、このフレームワークの再構築が行われたと書かれています。DAMAホイール図の発展形として、DAMAデータマネジメント・フレームワークが示されています(以下の図)。

DMBOK 2 Evolved Wheel, DAMA. Earley, S., & Henderson, D., Sebastian-Coleman, L (Eds.). The DAMA Guide to the Data Management Body of Knowledge (DAMA-DM BOK). Bradley Beach, NJ: Technics Publications, LLC. 2017.

続いて、「共通語彙の確立」に関してです。共通語彙が何を指すのかは具体的にはわかりませんが、「ベストプラクティスの基礎となる」とあるので、ベストプラクティス自体ではないと思われます。また、語彙とあるので、単語や用語レベルの粒度での表現であると思われます。

「基本的なリファレンスガイド」に関しては、今回の記事の関心とは関係がありません。

まとめると、パターンとパターン言語に関係がありそうなのは「機能的フレームワークの提供」のみと言えそうです。

続いて、前述のDMBOKの引用の続きを見ていきます。

DMBOKは、DAMA-DMBOKデータマネジメント・フレームワーク(DAMAホイール図とも呼ばれる。図5参照)に挙げた11の知識領域を中心に構成されている。3章から13章はこれらの知識領域に焦点を当てる。各知識領域の章は以下のような共通の構成をとる。
・1.イントロダクション
 ・ビジネス上の意義
 ・ゴールと原則
 ・本質的な概念
2.アクティビティ
3.ツール
4.技法
5.導入ガイドライン
6.データガバナンスとの関係
7.評価尺度
知識領域に関する章には、該当するデータマネジメント・アクティビティのスコープとその背景が記述されている。そこには、データマネジメントの基本的な目標と守るべき原則が反映されている。データは組織内で水平方法に移動するため、知識領域のアクティビティは相互に、または他の組織機能と交わることになる。

『データマネジメント知識体系ガイド 第二版』, p.68

データマネジメントには、11の知識領域があり、その領域の粒度で、データマネジメントの実践に関わる何らかの表現がされている、と読めそうです。表現方法は、11の領域で同じであり、引用した1~7の内容で構成されています。

なお、11の領域とは以下になります。
1.データガバナンス
2.データアーキテクチャ
3.データモデリングとデザイン
4.データストレージとオペレーション
5.データセキュリティ
6.データ統合と相互運用性
7.ドキュメントとコンテンツ管理
8.参照データとマスターデータ
9.データウェアハウジングとビジネスインテリジェンス
10.メタデータ
11.データ品質

パターンとパターン言語とDMBOK

さて、ここまでを踏まえて、パターンとパターン言語とDMBOKの表現との関係を考えてみます。

1つ目として、粒度は異なるということが言えそうです。パターンの記述において、このような幅広い一つの領域の粒度が一つのパターンとなることは通常無いためです。各領域が複数のパターンからなるあるパターン言語として整理できる可能性はあります。あるいは、領域を超えて、データマネジメントのパターン言語として一つの整理できる可能性もあります。

2つ目として、前述の各知識領域の以下の記述の構成の中に、個々のパターンとして現れるような記述が存在するかもしれません。とはいえ、パターンの主要な構成要素である「コンテキスト」、「問題」、「解決法」に対応する粒度ではなさそうです。1~7のどれかに、パターンの構成要素が含まれている可能性はあります。
・1.イントロダクション
 ・ビジネス上の意義
 ・ゴールと原則
 ・本質的な概念
2.アクティビティ
3.ツール
4.技法
5.導入ガイドライン
6.データガバナンスとの関係
7.評価尺度

今回は以上です。次回は、11の知識領域のどこかを見ていこうかと思います。

株式会社分析屋について

ホームページはこちら。

noteでの会社紹介記事はこちら。

【データ分析で日本を豊かに】
分析屋はシステム分野・ライフサイエンス分野・マーケティング分野の知見を生かし、多種多様な分野の企業様のデータ分析のご支援をさせていただいております。 「あなたの問題解決をする」をモットーに、お客様の抱える課題にあわせた解析・分析手法を用いて、問題解決へのお手伝いをいたします!
【マーケティング】
マーケティング戦略上の目的に向けて、各種のデータ統合及び加工ならびにPDCAサイクル運用全般を支援や高度なデータ分析技術により複雑な課題解決に向けての分析サービスを提供いたします。
【システム】
アプリケーション開発やデータベース構築、WEBサイト構築、運用保守業務などお客様の問題やご要望に沿ってご支援いたします。
【ライフサイエンス】
機械学習や各種アルゴリズムなどの解析アルゴリズム開発サービスを提供いたします。過去には医療系のバイタルデータを扱った解析が主でしたが、今後はそれらで培った経験・技術を工業など他の分野の企業様の問題解決にも役立てていく方針です。
【SES】
SESサービスも行っております。