BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ゲーム理論とアジャイルソフトウェア開発

ゲーム理論とアジャイルソフトウェア開発

原文(投稿日:2010/11/16)へのリンク

ゲーム理論 (Game theory) はもともと,経済学の分野で企業や市場,消費者の行動などを理解するために開発されたものだ。その後さまざまな分野に応用範囲を広げ,政治学や社会学,心理学,さらにはアジャイルソフトウェア開発にも適用されている。

最初に Alisair Cockburn 氏が,ソフトウェア開発とゲーム理論における協力ゲーム (Cooperative Game) との比較から,ソフトウェア開発を「発明とコミュニケーションの協力ゲーム」と定義付けた。氏によれば,すべてのプロジェクトはゲームであると同時に,企業戦略というより大規模なゲームの一部なのだ。

Victor Palau 氏は加えて,信頼を基本とするコラボレーションを伴う 協調的ソフトウェア開発において,ゲーム理論の適用が非常に明確なものになる とした上で,そこでの協力関係を 古典的な「囚人のジレンマ」 に例えている。「囚人のジレンマ」とは,2人の囚人が,お互いの最大の利益となる行動に対しても協力し合うことができない理由について論証したものだ。さらに氏は,アジャイル原則に適合するコラボレーションの達成手段について,次のような考えを示している。

  • 可能な限りゲームを反復せよ : コラボレーションが一度だけのイタレーションにならないようにします。最も簡単な方法は,ビッグバンアプローチに対抗して複数配信型の統合計画を立案することです。
  • 掛け金を上げよ: 囚人のジレンマは,裏切りの報酬が協力よりも遥かに大きい,という事実に基づいたものです。ですから,相互協力の掛け金を上げて,お互いにとって魅力的なものとすれば,状況を変えることができるのです。(要するに "密告さえしなければお互いが自由になれる" のなら,ジレンマは起こりません。)

Mike Griffiths 氏の推奨は,ゲーム理論の適用に PMO の協力を得る ことである。プロジェクトとは共同ゲームであり,その成功にはチームメンバの協力が必要である,というのがその趣旨だ。PMO には,このチームのゲームへのアプローチに対する支持体として活動することが望まれる。このレンズを通して見たとき,PMO の役割はさらに明確で有益なものとなる。PMO の果たすべき役割として氏が提案するのは次のとおりだ。

  • プロジェクトのパフォーマンス監視と管理 - 戦況はどうか,残り時間はどの程度か,プレイヤーは大丈夫か,など,ゲームの状況を監視する。
  • 標準的な方法論,プロセス,ツールの開発と実装 - ゲームをサポートし,設備の構築維持や用具の手配を行う。
  • プロジェクト要員に対するトレーニングやメンタリングなど能力開発 - プレーヤへのトレーニングとコーチングを実施し,将来のキャプテンを選び出す。
  • 複数プロジェクト管理。具体的にはプログラムとポートフォリオの管理と調整,およびプロジェクト間のリソース配分など - チームとトーナメント,リーグを管理し,すべてを調整された状態に維持する。
  • 戦略的管理,すなわち戦略計画への関与と利益管理 - ゲーム開発,新たなプレイルールとリーグ開発を行う。

Simon Bennett 氏は,アジャイル契約へのゲーム理論の適用 を提唱すると同時に,伝統的なソフトウェア開発における契約がアジャイルプロジェクトに適していないとも指摘する。「囚人のジレンマ」の例と同じように,契約の同意においても,最善の結果があるにも関わらず たいていの場合は考えられる最悪のシナリオにつながるものだ

Jurgen Appelo 氏は ゲーム理論を,ソフトウェア開発に最善の道が存在しないことの証明であると考えている 。氏によれば,

進化的安定戦略 (Evolutionary Stable Strategy / ESS ) とは,ある環境においてシステムの成功と生存を可能にするような,あらゆる実践の組み合わせを指す用語です。ESS はゲーム理論において定義された概念ですが,経済学,生物学,心理学,そしてソフトウェア開発にも適用されています。進化的安定戦略はその置かれる環境や,同じ環境にある他の ESS の影響を受けます。
しかし 適用性 (adaptability) という例外を除けば,すべての ESS が生存のために所持する必要のあるものは存在しません。つまりゲーム理論は,環境への参加者すべてに共通するような最高の戦略は存在しない,という事実を教えてくれているのです。

数々のアジャイル主義者たちが指摘するように,ゲーム理論とアジャイルのチームワークには強いつながりがある。そして開発ゲームを成功裏に完了させるキーは,個人の報酬に対するチーム目標を最大化することにある。Martin Proulx 氏の意見では,

アジャイル宣言にも記されている- "契約交渉よりも,顧客との協調を" は,ほとんどの場合,個人の報酬追求よりもよい結果をもたらすものです。残念ながら私たちの非合理的な (そして時には貪欲な) 気質のため,最大の成果に達することはできません。

この記事に星をつける

おすすめ度
スタイル

BT