かつて運営していて、今は放置しているブログにTOGAF関連の情報を求めてのアクセスがあることに気づきました。中途半端ではあるのですが、TOGAF関連の情報は次のwikiにまとめています。
seesaawiki.jp
このエントリーは、その放置しているブログから引き継いだものです。情報は2008年のもので、TOGAF 8の内容に基づいています。wikiはTOGAF 9のものです。wikiと併せてご参照ください。
The TOGAF ADM (Architecture Development Method)とは、TOGAFの核となる組織固有のアーキテクチャを開発するための手法で、ADMと略して呼ばれます。その特徴は、
1.実績があり信頼できる、アーキテクチャ開発手法
2.複雑に絡みああった要件を整理する、viewの組み合わせ
3.実践的なケース・スタディとの連携
4.アーキテクチャ開発用ツールのガイドライン
さらに付け加えると、
・他のフレームワークとも連携可能
・特定のツール、プロセスの使用を強制しない
・特定のアーキテクチャにとらわれない (framework-agnostic)
という特徴もあります。つまり、自分自身のやり方に固執しない柔軟性、すでにあるアーキテクチャも利用可能ということです。
ADMは反復プロセス(iterative process)で、Preliminary Phaseを振り出しに、Phase A-Hの8フェーズで構成されるサイクルで、Architecture Develoment Cycleを形成します。
Architecture Development Cycle
サイクルの真ん中に位置するフェーズはRequirements Managementと呼ばれるフェーズで、これはA-Hのすべてのフェーズで関連します。
それぞれのフェーズには
‐Objectives
‐Approach
‐Inputs
‐Steps
‐Outputs
があります。あるフェーズのOutputsは他のフェーズへ継承される、もしくはそこから参照されるInputsになることもあります。
ここで注意しなければならないことが3つ。
1.提示されたサイクルは、あくまでもrecommendationである。
組織の成熟度だったり諸々の事情から、必ずしもそのプロセスどおりにサイクルが回らないこともあるでしょう。
でも、問題ありません。むしろ、組織ごとにカスタマイズされるのが当然です。
2.Inputs/Outputsはあくまでもsuggestionである。
バカ正直に追従する必要はありません。こちらも、むしろ組織ごとにカスタマイズされる前提。
3.ADMはアーキテクチャのスコープを決定しない。
ADMはあくまでもアーキテクチャ開発手法です。何を開発するのか?その範囲は?などなど、スコープ定義にまつわる決定はその各組織の責任です。
そもそも、アーキテクチャ開発に利用可能なリソースだったり、それにまつわる制約というのは組織ごとに異なるのが、むしろ当たり前のことでしょう。
ちなみに、スコープに付きまといがちな制約ですが、TOGAFではこんな要素が挙げられています。
Enterprise scope or focus
どこからどこまでをEnterpriseとして、どれくらい重点的に取り組みますか?ということ。
Architecture domains
TOGAFでは
‐Business
‐Data
‐Applications
‐Technology
の4ドメインを取り扱います。アーキテクチャはこの4ドメインを包含する必要があるのですが、すべてに取り組むためのリソースは限られていますよね、ということ。
Vertical scope, or level of detail
どれくらい詳細なアーキテクチャにしましょうか?ということ。
アーキテクチャも実装されなければ意味がないので、システム開発など、他の関連作業とのバランスが必要なのです。
Time horizon
計画対象期間。どれくらい先を見越したアーキテクチャにするのか?ということ。
理想的なアーキテクチャ(Target Architecture)を作成すれば、即理想のシステムが実現できるわけはなく、理想到達までにはいくつものアーキテクチャ(Transitional Architectures)を経なければなりません。
どれくらいの期間、何個くらいのTransitionalで理想到達を目指すのか?そんなことを考ておく必要があります。
最後に、ADMを含むTOGAFのフォーカスは、成果物としてのアーキテクチャを生みだすこと以上に、その組織のビジネス・ゴールに重きを置いています。
ただアーキテクチャを作るだけが仕事なのではなく、そのアーキテクチャが組織へもたらす価値、その創造が主眼、本来の目的であることは覚えておいたほうが良いでしょう。