プロセスゴール(デリバリー)

ディシプリンドアジャイル(DA)フレームワークは、ゴール駆動アプローチを採用している(人によっては、能力駆動アプローチまたはベクトル駆動アプローチと呼ぶ向きもある)。 DAのゴール駆動アプローチの目的は、プロセスに関わる意思決定に関するガイドを提供することで、人々が自身のアジャイル戦略をテーラリングしスケールさせ、直面する状況に対処できるよう導くことだ。これがとても重要なのは、すべてのチームが各々独自の状況に直面しているためだ。チームの規模は様々で、地理的にも組織的にも分散しており、ドメインや技術的な複雑さによっても異なる。また、チームは関連するコンプライアンスの問題によっても異なる。さらに、チームはユニークなスキルと経験を持つユニークな個人で構成されている。簡単に言えば、アジャイルチームは各々が独自の状況下にいることがわかっており、チームはその状況に最もうまく対処出来るやり方を効果的にテーラリングする方法を見つけなければならない。 DAのゴール駆動戦略は、そのようなプロセス・テーラリングの助言を提供する軽量なアプローチである。

この記事は次のトピックで構成されている。

  1. プロセスゴール
  2. プロセスゴール図
  3. ゴール駆動アプローチのベネフィット

プロセスゴール

図1は、DAプロセスディシジョンフレームワークにおけるデリバリー指向のプロセスゴールを、マインドマップで要約したものだ。合計22のゴールがあり、それぞれのゴールはプロセスゴール図(Process Goal Diagram)で記述されている(下の図2を参照)。DAチームは、直面している状況を反映して、それぞれのゴールにむけてどのように対処するかを検討する。時には、ゴールが非常に簡単に対処できることもあるだろう。例えば、すでに確立した開発チームは、ゴール「初期のチームを組織する」を達成するために何もやることがないと気付くだろう。非常に慣れ親しんだアーキテクチャを使ってソリューションを構築しているチームは、ゴール「アーキテクチャを早期に実証する 」を達成するための仕事はほとんどないが、新しいテクノロジを使用しているチームはかなりの労力を投入することになるだろう。異なる状況には、異なるアプローチが必要なのだ。

図1 ディシプリンドアジャイルデリバリーのプロセスゴール

lifecycle-goals-v1-5

 3つのデリバリーフェーズ(方向付け構築および移行)の各々は、それぞれ特定のゴールによって記述される。 「チームメンバーを育成する」や「リスクに対処する」などの一部のゴールは、ライフサイクル全体にわたって適用される。 以下の表1に示すリンクを介して、22の図表すべてをオンラインで入手可能である。

表1 ディシプリンドアジャイルデリバリーのプロセスゴール

時期 ゴール
方向付け
構築
移行
進行中

プロセスゴール図

ゴール図の表記法は、図2に要約されている。プロセスのゴールは丸みを帯びた四角形を使用し、ゴールに関連するプロセスファクターは、通常の四角形で示されている。プロセスゴールには、あなたが対応を検討する必要があるデシジョンポイント(以前はプロセスファクターまたはプロセスイシューと呼ばれていた)が1つあるいはそれ以上あり、ほとんどのゴールは4つまたは5つのデシジョンポイントを持つ(中には8〜9個持つものもある)。各デシジョンポイントは、2つあるいはそれ以上のテクニック/プラクティスによって対処される。多くのテクニックがあるので、太字の斜体で「デフォルト」テクニックを示す。これらのデフォルトは、アジャイルに慣れていないチームにとっては良い出発点になる。それらの大部分の戦略は、スクラム、XP、アジャイルモデリング由来のものに、RUP(Rational Unified Proces)からのアイデアをいくつか投入することで完成されている。ディシジョンポイントの中には、対処しないと決めたものもあるだろう。時にはオプションが”順序づけ”されていることがあり、それはテクニックのリストの左に、上向きの矢印で示される。これが意味するのは、リストの最上部に現れるテクニックは、アジャイルやリーン思考の観点から望ましいものであり、あまり望ましくないテクニックはスタックの最下部に置かれるということだ。あなたのチームはもちろん、自分達が直面している状況の文脈を考えれば、自身で実行できる最も効果的なテクニックを採用しようと努力すべきだ。図1では、最初のディシジョンポイントには、順序付けられたオプションの組があり、2番目のディシジョンポイントには、順序付けがない。通常、オプションが順序付けられた場合、それらのうちの1つだけが選択されるが、順序がない状況ではいくつかのオプションが選択される可能性がある。

図2 ゴール図表記法概要goal-notation-summary

図3は、「初期のスコープを探索する」のゴール図を示している。このゴールは、方向付けフェーズでのプロジェクトの開始時に取り組むべきゴールだ(DAは構築ライフサイクルだけでなく、完全なデリバリーライフサイクルを推進することに注意)。どのようなアジャイル手法でも、初期段階のユーザーストーリーを使ってプロダクトバックログを作るようアドバイスするが、図2のゴール図が示すのは、あなたのアプローチにもっと洗練させることが出来るかのしれないということだ。どのような詳細レベルで対象を捉える必要があるか(何枚かインデックスカードとホワイトボードでのスケッチで仕様を定義する簡易なアプローチは、まさにあなたが検討すべき選択肢のひとつだ)?どのようなビュータイプを検討すべきか(ユーザーストーリーは、利用法のモデリングに対するアプローチの1つだが、他のビューでデータやUIを調べるべきではない)。何らかの形で利用方法、基本的なドメインの概念(例えば、ハイレベルな概念図を使って)、非機能要件を明文化する方法をデフォルトにすることを推奨する。モデリングについては、検討してみたい様々な戦略がある。また、あなたの仕事を管理するアプローチについて考え始めるべきだ。 DAでは、アジャイルチームは単に新しい要求を実装するだけでなく、スクラムの単純なプロダクトバックログ戦略よりもワークアイテムスタックをデフォルトとして利用することを推奨している。最後に、図2では、作業の初期のスコープを探索する際には、非機能要求ー信頼性、可用性、セキュリティ要求(多くの場合など)などーを何らかの方法で明確に把握すべきであると謳っている。

図3 プロセスゴール「初期のスクープを探索する」goal-inception-explore-initial-scope
これらのゴール図に関する重要な点をいくつか説明しておこう:

  1. さらに多くのオプションがある。 これらの図は、利用可能なオプションを適切に表しているが、それ以外にも常により多くの戦略とプラクティスが日々見出されるだろう。
  2. オプションの中には、オプションの分類に相当するモノがある。 たとえば、視点のタイプという要因には、使用法のモデリング、ドメインモデリングなどのオプションがある。ユーザーストーリー、ユースケース、使用シナリオなど、使用法のモデリングにはいくつかのアプローチがある。ドメインモデリングには、データモデリング、概念モデリング、UMLクラス図作成など、いくつかのアプローチがある、といったように。
  3. 各オプションにはトレードオフがある。ベストプラクティスというものはありません。あらゆる練習には長所と短所があります。あらゆる練習はある状況ではうまく働き、他の状況ではうまく機能しません。 DADの本は、ゴール・ダイアグラムで特定された戦略と実践についての詳細なアドバイスを提供しています(書籍の印刷版が500ページを少し上回る主な理由です)。
  4. いくつかの選択肢は一般論として他の選択肢よりも優れている。オプションリストの左に矢印が表示されている場合、上向き矢印がついたオプションは、一般的に、アジャイルの観点からは、下向き矢印のついたオプションよりも効果的であることを示す。興味深いこととして、ゴール図には、BRUF(Big Requirements Up Front)アプローチなどの、避けた方が望ましい戦略が含まれることがある点だ。DAフレームワークはさまざまなオプションを含めることで、チームに選択肢があることを理解させるだけでなく、現在選択している方法よりも優れた戦略をチームに提供できるようになる。
  5. デフォルトは太字で。筆者達は、最初はゴール図が(その量で)読者を圧倒するものになる可能性があることをわかっている。これに対処するため、込み入った状況にはないチームが、最初の一歩を踏み出せるように、デフォルトの出発点を提示している。

ゴール駆動アプローチのベネフィット

これまでの経験から、アジャイルソリューションデリバリーに ゴール駆動アプローチを採ることには、複数の重要な基本となる利点があることがわかった。それを以下に列挙していこう:
  1. プロセステーラリングへのわかり易いガイドを提供する。 図2が明確にしているのは、DAによって人々がどのようにしてプロセス上の決定を知識に基づいて下すことが出来るかだ。これは、あなたが考慮する必要があるプロセスファクターが何かを明確にすることでなされ、それらのファクターに対処するために利用することで出来ると思われる戦略やプラクティスを提示している。場合によっては、これらの戦略が順序付け(矢印で示される)されていることもある。
  2. ふりかえりの効率を改善する。 ふりかえりの際に、チームは要件の探索やアーキテクチャの進化、またはソリューションのテストに関するアプローチを改善する必要があると認識することがある。ゴール図は、チームが他の点で気付いていなかった潜在的な改善点を特定するのに役立つクリックリファレンスとして機能する。
  3. 効果的なスケーリングを可能にする。 DAは、アジャイルなアプローチを拡張するための基盤を提供する。アジャイルのスケーリングにおける重要な部分は、直面しているスケーリングファクターの現実を反映するように戦略をテーラーリングすることだ。たとえば、あなたが初期のスコープを探索するアプローチを考えてみよう。大規模なチームまたは地理的に分散されたチームでは、小さな共同配置されたチームとは異なるテーラーリングの決定を下す。規制環境下で開発するチームは、規制外の環境にあるチームよりも、特にその詳細度という点で異なる意思決定を下すだろう。このゴールへの対処に関するより詳細な議論は、Exploring Initial Scope on Disciplined Agile Teams を参照されたい。
  4. プロセスにおけるオプションを非常に明確にする。 図1をより詳細なゴール図と組み合わせることで、チームが直面している固有の状況におけるニーズを満たすことができるよう自身のアジャイルソリューションのデリバリープロセスをテーラーリングするために何を考慮すべきかが明確に提示される。
  5. アジャイルメソッドを拡張する時に、推測を排除することができる。ゴール・ダイアグラムは、さまざまなオプションが用意されていることを非常に明確にしています.DADブックは、ダイアグラムをサポートする詳細な状況依存アドバイスを提供します。完全なデリバリーライフサイクルの推進、エンタープライズ対応ハイブリッドフレームワークの採用など、DAの他の側面は、企業レベルでのアジャイルを真にサポートするために必要な拡張機能もサポートします。
  6. あなたが取っているリスクを明確になる。プロセスにおける意思決定のオプションを明確にし、それらのオプションに関連するトレードオフを説明することにより、DAはどのリスクを取っているかをはっきりと明示する。あらかじめ早い段階で詳細な要件仕様を書き起こしたいと望むなら(そう、極々限られた状況であれば、これは実際にアジャイルチームにとって実行可能なオプションになるが)、DAは、そうすることによってどのようなリスクを取ったかを明確に提示する。 DAはまた、この決定がどのような場合に適切であるかを提示し、その結果読者がこのような状況にない場合には、アプローチを再考する必要がある。筆者達は、ウォータースクラムフォールアプローチ - 方向付けフェーズや移行フェーズに多くの規定が課せられた”重い”アプローチを採用し、構築フェーズのみアジャイル/スクラムを採用するアプローチ  - の採用を妨げることはできないが、この決定がもたらすであろうインパクトについてはかなり明確に提示することができる。DAD本が2012年の6月に世に出て以来、書籍内の意思決定表を使って自分達のプロジェクトには不適切なプロセスが採用されていると議論する人達と、会話を重ねてきた。多くの場合、「これはアジャイルじゃない」という議論は届かないが、「もっと時間がかかるだろうし、それがなぜ?と思う理由だ」「もっと高価になるだろうし、それがなぜ?と思う理由だ」「結果として利害関係者に対して、より価値の低いソリューションに終わってしまうし、それがなぜ?と思う理由だ」といって議論であれば、耳を傾けてもらえるだろう。
  7. プロセスのアセスメントができる。 多くのチームが「自分達はどう?(うまくいってる?)」という質問に答えることに関心がある。プロセスゴール図は、デリバリーチームレベル(「利害関係者のニーズの変化に対処する」参照)とITレベル(データ管理プロセスブレードなど)の両方で、簡単で包括的な「ルックアップ・チャート」を提供し、それによって、チームを評価することができる。
このゴール駆動アプローチは、チームが直面している状況を考慮して、どの戦略が彼らにとって最善のものかを判断するのに役立つ。これにより、プロセス関連の問題に費やす時間を短縮し、その労力を投資して利害関係者のために使用可能なソリューションを作成することができる。他に必要なモノは?
オリジナル Process Goals
http://www.disciplinedagiledelivery.com/process-goals/
翻訳:藤井智弘
LINEで送る
Pocket