これからの予測技術
大槻, 2014.01.01
主としてソフトウェア開発(システム構築)に関する見積り予測は、プロジェクトデータの蓄積に基づいて、予測対象のプロダクトの規模・品質などの特性に応じて、どのような工数、期間がかかるかを算出するものです。基礎になる理論は、ベイズ統計と非線形の多変量解析です[Kikuchi2008]。
データを採取して、そこから何らしかの予測をする理論らしきものがあるとすれば、統計学になるわけですが、多変量解析は複数の変量間の関係から方程式を得るものです[Matsubara2007]。この式が得られてしまえば、パラメタを入力したら、所望の予測値を得ることができるということになります。ところが、データが欠損していたり、観測できるデータが限られていたりと実践上の課題と向き合うことになります。
統計学は、複数の現象間の因果関係を直接は扱わないのですが、この関係を推定する原理を与えている統計学の中での唯一の理論がベイズ統計です[McGrayne2011]。
ソフトウェアの世界で、いくら定量化され、方程式が得られたとしても、予測技術の本質的な問題は、もう少々別のところにあります。
1.予測そのものが対象世界に影響を及ぼすこと
2.主観的な世界を扱うこと
3.戦略の影響を受けること
4.複雑系の振る舞いを扱うこと
1番目の予測が対象世界に影響を及ぼすことについては、自然現象ではなく、社会現象である限り避けがたいことです。特に、プロジェクト予測の場合には、予測が目標値として機能することが多いため、このことを織り込む必要がでてきます。
2番目の主観的な世界を扱うことは、近年の行動経済学に代表されるように、人の判断が合理的ではなく、感情や心理的要因を扱うようになってきたことと関連しています[Tomono2006]。
3番目の戦略の影響については、競争相手や協調関係について扱うゲーム理論の適用領域になります[Okada2011]。予測の種類には、プレーヤのうちの誰が勝つか、例えば、次の選挙の勝利者、都知事が誰になるかといったことも含まれます。その場合には、影響を及ぼすプレーヤを特定すること、各プレーヤの行動規範を推定すること、結果に及ぼす要因の優先度を分析すること、各プレーヤ間の影響度を推定することなどを、ゲーム理論を適用する前に正確に把握する必要があります[Mesquita2009]。
4番目の複雑系の問題は、単純な定式化ができる世界と、本質的に複雑な世界とを峻別する方法を確立するところから検討していく必要があります。複雑系については、あまり理論が整備されていないので、予測不能であることが分かった場合の実践的な対応策も決めておく必要があるかもしれません。当面は、複雑系の事例で、経済、情報ネットワーク、自然現象、生物の分野での成功例をソフトウェアの世界に適用できるかを検討していくレベルから始めることになると思われます。
よくよく考えてみると、予測は、ソフトウェア、もっと言うと、実行可能知識です。予測がどのように使われるか、予測するということがどのような影響を及ぼすかということを、あらかじめデザインしなくてはなりません。新ソフトウェア宣言で言うところの、数学、複雑系、知識論、進化、デザイン、経営・経済、言語ゲームなどの要素全てを含んでいます。
当面、予測技術が有効な領域は、ビジネス戦略です。「ビジネスアナリシス」の知識体系が整備され、用語や概念が定義されてきています[Ross2011]。ビジネスの目標、戦術、ポリシー、プロセス、ルールといったビジネスの構成要素の中で、的確な評価、判断を行っていくためには、予測技術とそれに基づく意思決定手法が必要になります。
ビジネス領域では、市場、ユーザ、競合他社、技術進歩といった不確実な要素、社会的な現象を扱わなくてはならず、多くの事項は未知です。この未知の事柄に対し、何らかの仮説、因果関係、定式化を可能な限り行い、意思決定に活かしていかなくてはなりません。
何らしかの相関関係がある現象から、因果関係を導きだし、それに基づいた物語をビジョンや戦略として語るといったことを進めていくためには、実世界の現象の観測方法、データの採取法、分析法、統計解析、仮説検証といった実践的な(予測)プロセスを構築していく必要があります。
広義のアジャイルプロセスでは、ビジネスプロセスと開発(ソフトウェア)プロセスとの連動が大切ですが、ビジネスプロセスをどのように作り、運用していくかを、その予測手法とともに設定していかなくてはなりません。この点で、ビジネスアナリシス、とりわけ、ビジネスルール[Ross2013]とその指標化は重要な役割を果たしていくことでしょう。一般のビジネスアナリシスの手法に対し、言語ゲームや本質的なアジャイルプロセスの考え方を取り入れたものにしていくとよいと考えています。