Comments
Description
Transcript
ソフトウェア経済学 - 埼玉学園大学情報メディアセンター
ソフトウェア経済学 ─ プロセスモデルとコスト ─ Software Economics Process Model and Cost 永 嶋 浩 NAGASHIMA, Hiroshi ノ作りの分野にも何らかの経済理論モデルを 1.はじめに 適用してコスト管理を行わせようとするとこ ソフトウェア経済学(Software Economics) ろが目指せることになる。本論でイメージし とはソフトウェアの世界で明確に定着してい ているソフトウェア経済学は、その中のプロ る用語ではないが、1960年代頃から取り扱わ セスモデルとコストの関係を例として取り扱 れてきたコストの絡む内容の総称になる。こ うことにする。今回、プロセスモデルとコス の用語はベーム(Barry Boehm) が自らの トの関係をランチェスター法則(Lanchester’s 論文に用い、情報経済学の流れを汲み、プロ law)から導き、さらに経済的に数量化で把 ダクト、プロセス、プログラム、ポリシーな 握するプロジェクトのコストを考えることに ど経済的な面でソフトウェア設計、ソフト す る。 コ ス ト に 関 し て は 正 味 現 在 価 値 ウェア工学の改善を探求する分野に使われて (NPV:Net Present Value) 、伊藤のレンマ (Ito’s 1) きている。 Lemma)を使いプロセスモデルとコストの関 コストはモノ作りにおいては見積りに使わ 係を明らかにする。 れるし、IT投資の指標にもなり、成果物の代 価に関係してくる。このため実際のソフト 2.ソフトウェア経済学の位置づけ ウェアプロジェクトにおけるプログラムの複 モノ作りで重要になるのは品質、コスト、 雑度は、ある程度作り手側で把握しておく必 納期(QCD)の三要素になる。このQCDは互 要があり、プログラム開発の工数やリリース いに密接に絡んでおり、納期遅れはコスト増 時 期 の 目 安 に 用 い ら れ メ ト リック ス あるいは利益減につながり、コストは成果物 (Metrics)い わ ば 測 度 と し て 使 わ れ て い る。 の対価として品質を保証するものであり、品 一 方、 経 済 分 野 に は エ コ ノ メ ト リック ス 質が悪ければ信頼を失い以後の商談が成立し (Econometrics)として観測データを統計的 ないことにもなりかねないものになる。とり 方法を用いて経済理論モデルを検証したり分 わけコストの把握は、作り手の利益に絡むも 析したりする分野がある。このことによりモ のであり見積りの精度に関わってくる。従来 キーワード :プロセスモデル、ランチェスター法則、NPV、リアルオプション Key words :process model, lanchester’s law, net present value, real option ― 173 ― 埼玉学園大学紀要(経営学部篇) 第12号 のソフトウェア工学における見積り技術は 本論ではとりわけプロセスモデルとコスト ファンクションポイントや COCOMO の活用 の関係を論じる。プロセスモデルは技術の変 を考えればよいものであったが、今日におけ 遷とともに多くのモデルが提唱されてきてい る開発では複雑に絡む経営面、経済面、コス る。50年代では芸術的職人的プログラミング ト面をカバーするもう少し統一的な視点が求 の風潮、60年代前半ではコンパイラを使うも められ、理論として扱えるようなものになら ののプログラム規模の大型化という困難さを ないものだろうかという期待もある。つまり 生み、60年代後半~70年代前半では開発費高 経営には経営理論が、経済には経済理論がそ 騰を対策するためにソフトウェア工学の出現、 れぞれあるように少なくともソフトウェア開 ウォータフォールモデルと呼ばれるソフト 発のコストにも何とか理論というものの位置 ウェアライフサイクルの提案、70年代後半~ づけが求められる。 80年代ではソフトウェアライフサイクルの本 ソフトウェア経済学とは既にベームが自ら 格的運用、CASE 導入、90年代ではオブジェ の論文の中で使っており、コストに関わる見 クト指向モデリング、XPの登場、2000年代 積りやプロジェクト管理に対し経済理論を応 ではアジャイルプロセスの普及などになる。 用して理論展開を試みる分野と定義できる。 ここではウォータフォールモデルとアジャイ つまりシステム開発には規模の大小はあるも ルプロセスを取り上げてプロジェクトの進捗 ののそのプロジェクトに従事するメンバーに 度を比較する。まずウォータフォールモデル 対する人材管理やプロジェクトそのもののプ とアジャイルプロセスの特徴を示しておく。 ロジェクト管理や見積り手法、分析、設計、 ウォータフォールモデルでは各工程間の引き 実装、テスト、運用・保守の各工程をどのよ 継ぎをドキュメント引き渡しで行い、手戻り うな開発手順で行うかを定めるプロセスモデ しないように心掛ける必要がある。このモデ ル、経済理論モデルの形で扱われる経済理論、 ルは滝の水が流れ落ちるように工程を進めて プロジェクトに絡むコスト管理に使うデータ、 行くが下流工程、特にテスト工程に全工程コ 数量的再現性の追求に用いる統計学や数学の ストの約40%が費やされる傾向があり、コス 理論などが複雑に絡む体系で構成されるもの ト管理・スケジュール管理の面でコスト増や になる。つまりソフトウェア経済学を支援す 納期遅れの状況をもたらす要因になっている。 る学術分野にはソフトウェア工学を中心に経 アジャイルプロセスではその中からXPを取 済学、統計学、心理学、経営学、組織学、数 り上げる。XPではまず開発の作業分担計画 学などが関与する。ソフトウェア経済学の適 を定めて顧客要求には俊敏に対応することが 用領域の中には物流から製品開発、製造、販 求められる。そこにはXP特有のテストファー 売、サービスなど一連のビジネスシステムの ストのコード作成、小さなリリース、顧客も 中におけるとりわけ製品開発の価値のポジ 開発メンバーの一員と考えるオンサイト顧客、 ショニング、ビジネスの価値を測定するROI リファクタリングなどが実践される。常に前 やNPV、統計学の計量的手法、心理面を考慮 倒しで物事が進められて行くことが要求され、 した開発投資の判断、さらにリアルオプショ バグの洗い出し、リリースを早めに行うこと ン等の活用も含まれる。 を信条にした反復型で組み立てられている。 ― 174 ― ソフトウェア経済学 こ の こ と か ら 進 捗 度 を 考 え る と ウォ ータ てはめてみるわけである。作り手側は正規軍 フォールモデルの方がアジャイルプロセスに の立ち位置を占め、バグ側はゲリラ軍で対応 比べて遅れる傾向が推察できる。 するものとする。当初バグ側は作り手側に とって見えない状況での戦闘形態になる。つ 3.ランチェスター法則の適用 まりこの種の戦闘は正規軍対ゲリラ軍の構図 QCDに影響を及ぼすプロジェクト上の深 とみなすことができる。ゲリラ軍をx、正規 刻な問題にバグの存在がある。バグ修復に関 軍をyとしたとき戦闘モデルは式(1)で表 してもウォータフォールモデルの方がアジャ せる。但し、tは戦闘開始日からの経過日数、 イルプロセスに比べて修復度合いの劣る傾向 cとdは敵軍の戦闘効率係数、f(t)とg がある。バグは成果物においては潜在バグと (t)はそれぞれゲリラ軍や正規軍の補強率 いう欠陥を引き起こしたり、開発途中ではバ を示すものとする。 グ発見、バグ修復に伴う非情な時間を費やし dx = −cxy + f (t) dt dy = −dx + g(t) dt たりする。このバグはソフトウェアの世界で は不確定な要素であり、開発につきまとう存 在になる。このため作り手側は各工程におい て程度の差はあるが常にバグとの闘いになる と捉えることもできる。このような視点で考 えると作り手側とバグとの関係を戦闘モデル としてシステム的に扱えるのではないかと仮 定する。 時々刻々変化する戦闘を微分方程式の形で 表した戦闘モデル式のアイデアにランチェス ター法則というものがある。ランチェスター 法 則 は ラ ン チェスター(F.W.Lanchester)が 戦闘を数学的モデル2)にした法則であり、戦 闘結果の予測を可能にしているものである。 数学的モデルに用いられる戦闘モデルは、正 規軍対正規軍、正規軍対ゲリラ軍、ゲリラ軍 対ゲリラ軍の闘いに分けられる。ここでソフ トウェアの開発が行われるプロジェクトが組 まれているものとする。このときソフトウェ ア開発分野のみならず開発工程には予期しな いことがよく発生する。よく考えられたプロ セスモデルを採用していても開発が思わぬ状 況に陥り、時にはバグ取りに専念することが よくある。このような状況を戦闘モデルに当 (1) 戦闘損害率に相当するバグの洗い出し、バ dx dt 能力が高く、人員も多ければ戦闘犠牲者に相 (2) dy = −dxy + g(t) 当する多くのバグ除去をすることが可能にな dt dx る。式では-cxyで表せる。これら正規軍対ゲ = −cxy + f (t) dt リラ軍の戦闘はウォータフォールモデルに適 (1) dy 用する。一方ゲリラ軍対ゲリラ軍の戦闘は式 dx = −dx + g(t) dt = −cxy (2)で表せアジャイルプロセスに適用する。 dt (3) dy dx = −dx + G dt = −cxy + f (t) dt (2) dy = −dxy + g(t) 1 dy c 2 C dt + 1 = C1 log x + + y = 2G G dt 2G = −cxy + f (t) グ取りは作り手の能力に比例する。作り手の 式(1)は非線形な連立微分方程式であり、 (4) その扱いを簡単にするために次のように取り dx = −cxy dy c 2 (3) とおき一定として考え式(3)から式(4) dy + y = GC 1 (5) dt = −dx 2 +G を得る。さらに式(4)を単純化するために dt 扱う。補強率をf(t)=0、g(t)=G dt x=1とおいてから式(5)を解くことにす る(C、C1、C2、C3は積分定数)。 ― 175 ― 1 dy c 2 C log x + + y = + 1 = C1 G dte 2cGC 2G1 (t +C 2 ) −1 2G 2GC 1 y= (4) (6) c e 2cGC1 (t +C 2 ) + 1 dx = −cxy f (t)+ f (t) dx =+−cxy dt = −cxy + f (t) dt dt (2)(2) dy dy = −dxy + g(t) (2) = −dxy dy + g(t) dt = −dxy + g(t) dt dt C 1 dy c log x +1 dy +c y 2 =C + 1 = C1 + 1 = C1 log x + G dt+ 2Gy 2 = 2G 2G G dt 2G (4) (4) 埼玉学園大学紀要(経営学部篇) 第12号 dy c 2 高めて行く傾向となって行く。さらにこのy + y = GC dx dx = −cxy = −cxy dx dt = −cxy dt dt (3) dy dy = −dx(3) = −dx dy + G + G (3) dt = −dx + G dt dt dy c dt+ 2y = GC1 とxの差をとり、且つyが負の時は値をゼロ (5) dt 2 にしてグラフ化するとウォータフォールモデ 1 2 (5) ルを用いたモノ作りの進捗率表現が得られる。 2cGC1 (t +C 2 ) (t +C ) 2GC1e e2cGC 1 dy c C2 C −1−1 2GC 1 dy c y = 2 1 2cGC1 (t +C 2 ) log x +log x + +1 dy y+ =c y 2 +=1 = C C+1 1 = C1 y = dt + 2G2G log y = 2G + 1 = C1 c c e e2cGC (t +C ) + 1+ 1 G xdt+ G2G 2G G dt 2G (4)(4) (4) dy cdy2+ c y 2 = GC + dy y = cGC21 1 (5) (5) dt 2dt + 2 y = GC 1 (5) dt 2 式(6) 、式(7)はそれぞれ正規軍とゲ リラ軍の解になる。それは戦闘開始からt日 目の正規軍とゲリラ軍の兵力を表す式になる。 2GC e 2GC e cc e e e e −1 −1 +1 +1 1 2 1 2 (6) (6) 2cGC1 2cGC 1 1 1 C xx==eeC 3 3 cGC cGC cGC cGC 1 1 1 (t +C (t2+C ) − − 1 (t +C (t +C ) 2 ) 2)2 2 2 (7) e e 2 2 (7) ++ ee dx dx(2)は式(1)と同様に単純化を施し、 式 ==−cxy −cxy dtdt f (t)=0、g(t)=0とおいて式(8)を dy dy= −dxy = −dxy dtdt 2cGC 1 (t +C 2 ) (8) 2cGC1 (t +C 2) (8) 1 2cGC1 (t +C 2 ) 解く(C1、C2 は積分定数)。式(9)、式(10) これらの式でウォータフォールモデルを用い 1 2cGC (t +C ) 1 2 2cGC1 (t +C 2 ) 1 (6)(6)はそれぞれゲリラ軍とゲリラ軍の戦闘におけ た開発がどのように進展して行くかの視点で 2cGC1 (t +C 2 ) (6) y= 2GC y= y c= −1 +1 照らし合わせて考えて行くと、モノ作りの進 る解になり、これらの式でバグは悪意のある 2cGC 1 行動をするゲリラ軍xに相当するものと見な 11 + 1 y 1= C1 2cGC +1 (9) y = C1 cC t− cCcCC1C 2 1 し、作り手は早期の段階で成果物を生み出す C 3 1 規軍は作り手であり、ゲリラ軍はバグとして (9) e cC1 t− d d −1 x = eC 3x = ecGC 1 C 3 cGC cGC1 1 cGC1 − 1 (t +C (t +C ) ) −1 e x = e 2 考える。式(6)と式(7)を表した図1か ような反復作業を得意とするゲリラ軍yと見 (t +C 2 2) (t +C 2 2) −2 1 2 e − cGC (te+C 2 ) + (t +C 2 ) (7) e 2 e cGC 1 (7) + 2 2 らバグxは時間の経過とともに減少する傾向 なす考え方でアジャイルプロセスにおける開 e (7) +e 捗率の表現に相当して扱うことができる。正 2cGC1 1 が見られ、作り手であるyは徐々に完成度を dx dx = −cxy = −cxy dx dt = −cxy dt dt (8)(8) dy dy = −dxy (8) = −dxy dy dt = −dxy dt dt 1 2 発の進捗率を表す。図2に示すグラフ化の際 cC 1 1 x = cC 1 1C 2 x = d 1 cC1 t− cCcC d 1C 2 e −1 cC t− d 1 e d −1 (10) (10) 1 1 + 1 + 1 y = C1 y = C1cC 1 cC 1C 2 (9) C 1 y =cC1Ct−1 1 cC2 1 t− cCd1C 2 + (9) (9) −1 ed cC1−1 t− e d e −1 x= 1 cCx1 = cC1 1 cC1cC1CcC2 t− cC11C 2 (10)(10) d x =cC1dt− ed 1 cCd1C 2 −1 (10) t− e d cC1−1 d e −1 図1 ウォータフォールの仕組み ― 176 ― 図2 アジャイルプロセスの仕組み + 1 = C1 + y = 2G dt 2G 1Gdy c 2 C log x + + 1 dyy = c + 1 =CC1 + 1 = C1 logdtx + 2G + 2Gy 2 = (4) G 2G G dt 2G (4) log x + (4) dy c 2 ソフトウェア経済学 + y = GC1 (5) dt c2 2 dy + ydy= GC c にはゲリラ軍xの絶対値をとりゲリラ軍同士 100%になる傾向が見られることである。こ + y1 2 =(5) GC1 dt 2 (5) dt 2 の戦闘の差異が表現できるように加工する。 れは実際の経験上からの感覚と同じ結果を示 アジャイルプロセスの進捗率はyと|x|の差 していることになる。 をとって表現する。アジャイルプロセスは開 2cGC1 (t +C 2 ) −1 2GC1 e 4.プロセスモデルとコストの評価 2) c 1 ee 2cGC1 1(t +C 22cGC +11(t +C 2 ) (6) −1 2GC 早い段階でグラフ上フラットになり開発の完 図3よりウォータフォールモデルとアジャ y= −1 e 2GC ) y = e 2cGC11(t +C 22cGC (6) c + 11 (t +C 2 ) 成を見ることが予想できる。図1のwaterfall イルプロセスの進捗率からシステム完成の工 c e + 1 2cGC(6) 1 agile ラインを合成するため ラインと図2の 期 を 推 測 す る と、 ア ジャイ ル プ ロ セ ス は 1 C3 2cGC1 時間軸tと進捗率 Progress のスケール調整を ウォータフォールモデルの1/3から1/2ほ x = e cGC 2cGC1 cGC1 1 (t +C 2 ) 1 − (t +C 2 ) C 2 2 すると図3のように表せる どの工期短縮で完成するのがわかる。この工 。この図の意味 3 (7) x =e +e e C3 1 x =cGC e 1 (t +C 2 )cGC − cGC1 (t +C 2 )cGC 期の差は、当然費用に絡んでくるため、以下 する所はアジャイルプロセスの場合はウォー 1 1 2 2 (t +C 2 ) e +2 e(t +C 2 ) − 2(7) (7) + e e のようなIT投資のコスト管理が考えられる。 タ フォ dxール モ デ ル に 比 べ て 早 期 に 進 捗 率 = −cxy 4.1 キャッシュフローの視点 dt dx = −cxy dx (8) アジャイルプロセスの工期をTとすると、 dy = −cxy dt = −dxy dt ウォータフォールモデルの工期tはt=2T dt (8) dy (8) = −dxy dy からt=3Tの範囲になる。さらに工期は費 = −dxy dt dt 用つまりコストに比例してくるため、これに 1 よりもしウォータフォールモデルで100の投 + 1 y = C1 (9) cC1 t−1cC1C 2 資をした場合には、アジャイルプロセスでは y = C1 e cC1Cd 2 −1+1 1 (9) ycC=1 t−C1 +1 cC1C 2 (9)0.5t と0.333t の 平 均0.4165t( ≒0.4t )を d cC−1 e 1 t− d e −1 とり40の投資とみなすことができる。このた y= 発当初から何らかの進捗が得られ、t日目の 2cGC (t +C ) 3) cC 1 x= 1 cC1C 2 (10) cCd cC1 t−1 d −1 x = 1 e cC 1 (10) =1 t− cC1d1C 2 d x cC cC1C 2 (10) e d cC−1 1 t− d e −1 めプロセスモデルとコスト(システム開発の 開発費用あるいはシステム維持のための保守 費用)の関係は図4に示すようなキャッシュ フローの視点4)を用いて表現することができ る。縦軸のマイナス側を占めるキャッシュア ウトフロー(cash outflow)には開発費用と保 守費用を、縦軸のプラス側を占めるキャッ シュインフロー(cash inflow)には営業効果 を、ネットキャッシュフロー(net cash flow) と し て は0年、 1年~5年 の キャ ッシュフ ローを各々割り当てる。図4に示す4タイプ の表現はネットキャッシュフローが単調増加 (inc)の形状となるか、単調減少(dec)の形 状となるか、ルート(sqrt)の形状となるか、 図3 プロセスモデルの比較 定数(const)の形状となるかで分けている。 ― 177 ― 埼玉学園大学紀要(経営学部篇) 第12号 incは徐々に利益を得る状況のケース、sqrtは どのプロセスモデルを使えばよいかはシス 長期投資向けのケース、decは短期投資向け テム開発を開始する前には決定しておかなけ のケース、constはトライアル投資のケース ればならない事項である。この視点で図4を に該当する。ディスカウントレートを10%と 見るとdecのタイプで40の投資とした場合は し たNPVを 求 め る とincはNPV=31.5、decは NPV=135.4に な り、 ア ジャイ ル プ ロ セ ス は NPV=75. 4、sqrtは NPV=113. 7、constは ウォータフォールモデルより有利な結論が得 NPV=51.6となり、注目すべきネットキャッ られる。 シュフローの形状はdecとsqrtになる。しか 4.2 ROIの視点 し実際の投資案件を評価するときには、早期 図5には、 4タイプのinc、dec、sqrt、const の投資回収の実現が求められたり、あるいは に お け る Σ( キャ ッシュイ ン フ ロー)– Σ 運用年数が経過するればするほどシステムも ( キャ ッシュア ウ ト フ ロー)を Σ( キャ ッ 技術も陳腐化をきたしてくるため、この状況 シュアウトフロー)で割る計算を0年目、1 ではdecの形状というものが現状を反映した 年目、2年目、3年目、4年目、5年目で締めた 形になるものと考えられる。 各期間毎に実施しグラフが示されている。こ の計算で得られた値は縦軸にプロットしてい 図4 4タイプのキャッシュフロー ― 178 ― ソフトウェア経済学 るが、投資収益率(ROI:Return on Investment) できる限り少ないかどうかで見ると、この傾 に相当する値の%表現はしないで小数値だけ 向は図4で得られた結論と同じ40の投資がよ の表現にしている。各期間ごとのROIは、投 いということになる。 資金額に対する収益の比率を示し、4タイプ の内どのプロジェクトが最も高い収益を上げ 5.利潤の特性 るのか等の指標になる。ここでもdecとsqrt 利潤πは収入(revenue)-費用(cost)で が投資金額に対してどのようなROIの傾向が あるため、利潤関数(profit function)とし 高い収益となるかを考える上で検討の対象に ては式(11)5)のように表せる。右辺の各項 なる。予想外の保守費用の増加がキャッシュ はそれぞれコブ-ダグラス生産関数(但し、 フローに影響を及ぼすことが考えられるもの Lは労働、Kは資本)、変動費用(但し、w のその中でもシステムの運用開始後年々収益 は賃金、Lは労働)、固定費用(但し、Fは が高くなるという傾向はまれであり、一般的 固定)である。尚、pは生産物価格(以後、 には運用開始の早期から高い収益が得られ次 価格という) 、αとβはα+β≦1の関係を 第に減少していく傾向となることが考えられ 持つパラメータとする。 るためdecの形状というものが現状を反映し π = pLα K β − wL − F たROIになるものと考えられる。しかも100、 (11) 70、40、30からなる4種類の投資金額の中か 次に利潤最大化条件を使い、式(12)のよ ら短期的なROIでは高い収益率があるかどう うにπをLで微分してゼロとおきLを求める。 か、長期的なROIでは収益率の減少度合いが 式(13)のLを式(11)に代入して式(14)を ∂π = pαLα−1K β − w = 0 ∂L (12) 1 ⎛ w ⎞ α−1 L =⎜ β ⎟ ⎝ pαK ⎠ (13) β 1 ⎞ −α 1 ⎛ α π = ⎜α 1−α − α 1−α ⎟w 1−α p1−α K 1−α − F ⎝ ⎠ (14) 1 ⎞ −α ⎛ α 1 φ ( w,α ) = ⎜α 1−α − α 1−α ⎟w 1−α ,γ = 1− α ⎝ ⎠ (15) 図5 4タイプのROIフロー(100,70,40,30の投資) π p,t = φ w,α pγ K βγ ( ) ( ) ― 179 ― ∂π = γφ ( w,α ) pγ −1K βγ −F (16) π = pLα K β − wL − F ∂π ∂p 2= 0 ∂t (11) αα β β π π= =pLpL KK − −wL wL− −FF (17) ∂π =0 ∂t (11) (11) (17) 埼玉学園大学紀要(経営学部篇) 第12号 dp = μpdt + σpdW (18) 得る。ここでφとγをそれぞれ式(15)のよ φと置く。 うに置き式(16)の形を得る。 dp = μpdt + σpdW ∂π = pαLα−1K β − w = 0 ∂L (12) (19) ⎛ ∂π ∂π ∂π 1 ∂ 2π 2 2 ⎞ dt + σpdW σ p dπ = ⎜ μp + + ⎟ ∂p ∂p 2 ∂t 2を代入して整理すると ⎝ ∂p へ式(17) ⎠ 式(19) ∂π∂π 1 α−1 KKβ β− −ww= =0 0 (12) pαL ⎛ =w=pαL ⎞ α−1α−1 (12) L =∂L (13) ⎜∂L β ⎟ ⎝ pαK ⎠ ⎡⎧ ⎤ ⎫ 1 dπ = φpγが得られる。 K βγ ⎢⎨μγ + γ (γ −1)σ 2 ⎬ dt + σγdW ⎥ (19) 式 (20) ⎭ 2 ⎣⎩ ⎦ (20) 1 1 ⎡⎧ ⎤ ⎫ 1 dπ = φp K ⎢⎨μγ + γ (γ −1)σ 2 ⎬ dt + σγdW ⎥ ⎭ 2 ⎣⎩ ⎦ ⎛ ⎛ w ⎞ α−1 ⎞ α−1 β L⎛L= =⎜α⎜ wβ 1⎟ ⎞⎟ −α 1(13) (13) π = ⎜α ⎝1−α⎝pαK − α 1−α⎠β ⎟⎠w 1−α p1−α K 1−α − F pαK ⎝ ⎠ γ β β 1 1⎞ −α−α 1 1 ⎛⎛ αα ⎞ 1−α 1−α 1−α 1−α 1−α 1−α 1−α 1−α 1−α α 1 −α π π= =⎜α⎜α ⎛ − −αα ⎟w ⎟⎞w 1−αp p KK 1−α1− −FF 1−α 1−α ⎝ ⎠ φ ( w,α ) =⎝ ⎜α − α ⎠⎟w ,γ = 1−(14) α ⎠ ⎝ (14) ⎛⎛ ⎞⎞ 11 φ (φw,α = α − α ) ⎜ w,α = α − α ( ) ⎜ γ βγ ⎟w⎟w ,γ,γ= =1− α π ( p,t ) = φ ( w,α ⎝ ⎝) p K − F⎠ ⎠ (16) 1− α −α−α 1−α 1−α (15) (15) 事前の準備として式(17)のようにπをp γ βγ ∂ππ ( p,t ) = φ ( w,α ( ) (γ −1 )βγp) Kγ βγ− F ∂p =πγφp,t K p K − F (16) で1階の偏微分、2階の偏微分を施し、πを (w,α=)φp w,α (16) tで1階の偏微分をしておく。 ∂ 2π = γ (γ −1)φ ( w,α ) pγ −2K βγ 2 ∂p∂π γ −1 ∂π γ −1 βγ βγ = =γφγφ (w,α (w,α) p) p KK ∂p∂p ∂π (17) =2 02 γ −2 βγ ∂t ∂ ∂π π= =γ (γγ γ−1 )φ)(φw,α ( −1 ( w,α) p) pγ −2KK βγ 2 2 ∂p∂p ∂π∂π = =0 0 ∂t∂t dp = μpdt + σpdW βγ (20) (14) α α (15) 1 1 1−α 1−α 1−α 1−α (18) ⎛ ∂π ∂π ∂π 1 ∂ 2π 2 2 ⎞ dπ = ⎜ μp + + σ p ⎟ dt + σpdW ∂p ∂t 2 ∂p 2 ⎝ ∂p ⎠ φpγ K βγ >> F γ φpを式 K βγ >> で割ると F φpγ K βγ >> F の 式(20) (11) 条件のもとでは式(21)を得ることができる。 dπ 1 dπ 1 ≅ µγ + γ (γ −1)σ 2 dt +≅σγdW µγ + γ (γ −1)σ 2 dt + σγd 1 2 π π dπ 2 ≅ µγ + γ (γ −1)σ 2 dt + σγdW ( (21) π 2 (21) γ=1の近傍では以下の関係の式(22)が dπ dp 成り立つ。 = π p dπ dp = dπ dp π p = π p dπ dp =1 π pdπ dp =1 π p (22) (22) dπ dp =1 π (22) p (23) (23) (23) dS = µSdt + σSdW この式は利潤の変化率は価格の変化率に等 (24) しいことを意味し、式(23)のように表すと (17) (17) 利潤の価格弾力性として扱うことができる。 Π = f (S,t) − ∆S dS = µSdt + σSdW (24) 価格の変化率はモノ作りにおけるプロセスモ (18) さらに価格pは、伊藤過程の式(18)の確 (25) dS = µSdt + σSdW (24) デルの選定に関わるし、IT投資の開発費用の 影響を受ける。利潤の変化率の式(22)は式 率微分方程式に従っているものとする。 dΠ = df − ∆dS の形からdπ/πやdp / pの時系列における変 (26) Π = f (S,t) − ∆S (25) ⎛ ∂π ⎞ ∂π ∂π 1 ∂ 2π 2 (18) 2 化量として捉えることができる。 = μpdt + σpdW dt + σpdW σ p dπdp =dp μp + + = μpdt + σpdW (18) ⎜ ⎟ 2 Π = f (S,t) − ∆S (25) ∂p ∂t 2 ∂p ⎝ ∂p ⎠ 5.1 ブラウン運動に従う動き df = ∂f µS + ∂f 1 ∂2 f 2 2 σ S d + ∂t 2 ∂S 2 ∂S (19) 2 式(21)は傾き{μγ+1/2γ(γ-1)σ } ここで伊藤のレンマを用いて式(19)のπ (p,t)の微分を導く。但し、 表記上は単にπ、 2 の直線とσγの係数を持つブラウン運動に従 dΠ = ∆f − ∆dS ⎛ ∂π ⎛ ∂π ∂π∂π 1 1∂ ∂π2π 2 2 2 ⎞2 ⎞ ∂π∂π ⎡ ⎤ dt + σpdW dπdπ= = σ p ⎧μp+ + 1 + + ⎫ ⎟ dt + σpdW σ p γ⎜ ⎜ βγ μp 2 ⎟ ∂p dΠ = df − ∆dS (26) dπ = φp ⎝K∂p )σ2 2⎬ dt +⎠σγdW 2∂p∂p ― ⎝ ∂p⎢⎣⎨⎩μγ +∂t2∂tγ (γ2−1 ⎠― 180⎥⎦∂p ∂f ⎭ ∂f ∆f =(26) µS + dΠ = df − ∆dS (19) (20) (19) ∂f ∂f 1∂ f 2 2 ∂S ∂t 2 ∂f (28) + 1 ∂2 f 2 2 σ S ∆ 2 ∂S 2 ソフトウェア経済学 う時系列の合成とみなせる。いまここである t]を限定すると仮定したときに適用される。 ブラウン運動(あるいはウィーナー過程とい このことからモノ作りを行うときはコスト増 う)を図6に示す。このブラウン運動にσ= 加の傾向に注意をしておく必要がある。この 1、μ= 0.5、γ=1の条件下、傾きを0.5とし ほかのブラウン運動の活用については5.3の た直線を合成すると図7のようなグラフにな 所で取り上げる。ブラウン運動そのものは る。このことによりdπ/πの動きは伊藤過程 1828年 英 国 の 植 物 学 者 ブ ラ ウ ン(Robert (Ito process)となり、dp / pも同様の動きが Brown)の発見にまでさかのぼるが、現在で 考えられ、傾きが正の場合は右上がりの傾向 は確率論や物理学の自然科学分野からファイ が保証されることになる。つまり利潤や価格 ナンスの分野に至るまで重要な役割を担って というものは時系列で見ると上下の変動はあ いる。特に金融市場の価格変動分野では1900 るもののプラスの傾きでドリフトしていく性 年 バ チェリ ア(Louis Bachelier) に よ る 質があるということになる。但し、時間[0, 「Theorie de la speculation」という先駆的な 論文に裏付けされた考えをもとにファイナン スの応用が見出され、1973年にはブラック・ ショールズモデルに関する論文が発表されて いる。 5.2 コスト増加の動き ソフトウェア開発のコスト要因は、バグ修 復に関係するコストやコーディングに関係す るコストからドキュメント作成に関係するコ スト、プロジェクト管理に関係するコスト等 で把握される。このとき見積り判断を見誤る 個所にデバッグやテストの工程をあげること 図6 ブラウン運動に従う時系列 ができる。ソフトウェア開発では、開発工程 のどの工程に日数がどの位割かれているのか などを把握する必要がある。経験的にはプロ グラミングに該当するコーディングの個所、 テストの個所が多くの工数を要するのがわ かっている。これらの工程をいかに正しく管 理できるかでプロジェクトのスケジュール遅 れを対策することができる。Joseph Raynus 著6)を参考に工数配分の構成を図8のような グラフで表現してみる。 計画した工数(plan)と実績の工数(actual) との関係を横軸にプロセス(分析工程、設計 図7 伊藤過程の動き 工程、実装工程、テスト工程) 、縦軸に日数 ― 181 ― 埼玉学園大学紀要(経営学部篇) 第12号 いかは一つの検討課題になる。図9には二種 類のコスト増加の形状を示している。type1 はsin関数の全波整流波をフーリエ級数に展 開して求めたものにy=4{1-exp(-0.1t) }を 合成したものである。type2は(1/32)x2関 数の繰り返し波形をフーリエ級数に展開して γ βγ φp K >> F 求めたものにy=x2/160を合成したものである。 システム開発に伴うコストというのはブラウ φp K >> F ン運動の所で見たように増加の傾向が現れる γ βγ ためどこかの工程でコスト増加が止まる傾向 dπ π 1 2 ≅ µγ + γ γ −1 σ dt + σγdW の動きが望ましいものとなる。type1はエン 図8 工数配分の構成 ( ) 2 トロピーで見てもtype2より低くなる傾向に (21) dπ 1 なる。そのためtype1とtype2ではtype1の ≅ µγ + γ γ −1 σ 2 dt + σγdW ( ) π 2 形状の方がコスト管理的には必要とされる。 (21) つまりコスト管理は常に横軸に対して凹にな dπ π dp p = る逓減の波形を保ちながら各工程を進めて行 (22) くことが求められるということになる。 dπ dp dp 5.3 ブラック・ショールズ式の応用 dπ =1 = (22) (23) π 式(18)のpを株式の株価Sとし、株価S π pp が伊藤過程に従うものとすると式(24)7)に dπ π dp p =1 (23) なる。但し、μは期待収益率、σはボラティ リティ、S(t)、W(t)のtの表記は省略 するものとする。 図9 コスト増加の形状 dS = µSdt + σSdW を割り当ててプロットすると図8のようにな (24) オプションを1単位購入し、株式をΔ単位 る。計画面では設計工程を少なく見積もり dS = µSdt + σSdW (24) 売った場合のポートフォリオの価値Πは、式 コーディングやテスト工程に多めの見積りを (25)になる。以後、f (S,t)は単にfと表 Π = f (S,t) − ∆S (25) する傾向がある。実績面では設計工程やコー 記して行くことにする。 ディングの絡む実装工程に日数が割かれてい Π = f (S,t) − ∆S る。当初と異なるユーザ要求やバグ対策等に (25) より日数も増加していく。これらの傾向を実 時間tからt+dtの経過の中でポートフォリ 績日数の累積(accumulate)で考えると工数 オの価値の変化は式 (26)になる。伊藤のレ (26) dΠ = df − ∆dS と比例関係にあるものとしてコストを考えた ンマを用いてdfを導く。さらにΔt時間では 場合、コストはルート(sqrt)のイメージに 式(26)は式(28)の形になり、式 2 (27)は式 なり、どのようなコスト増加の形状が望まし dΠ =df ∂f ∂f − ∆dS∂f 1 ∂(26) f 2 2 + σ S dt + σSdW 2 ∂S ∂t 2 ∂S ∂S df = µS + (29)の形になる。 ― 182 ― (27) ∂f ∂f ∂f 1 ∂ 2 f 2 2 σ S dt + σSdW df = µS + + 2 (28) dΠ =∆f ∂S ∂S − ∆dS∂t 2 ∂S (27) ∂S φpγ K βγ >> F Π = f (S,t) − ∆S (25) φpγ K γβγ >> F βγ φp K dΠ = df − ∆dS ∂f ∂f df = µS + ∂t ∂S dΠ = ∆f − ∆dS ∂f ∂f ∂f 1 ∂ 2 f 2 2 ∆f = µS + + σ S ∆t + σS∆W ∂S ∂t 2 ∂S 2 ∂S 式(36)を左辺にrfでまとめ直すと式(37) の式が得られる。この式がブラック・ショー (29) ルズの偏微分方程式になる。 式(24)の両辺に∂f/∂Sをかけて式(30) ∂f 1 ∂ 2 f 2 2 ∂f rf = + σ S +r S 22 ∂ f ∂f ∂t∂f 21∂S ∂S rf = + 2 2 σ 2 S 2 + r S (37) f 2 2 ∂f ∂f ∂t 1 ∂2 ∂S ∂S σ S + r S (37) rf (37) = を解きその解をコールオプション + 式 2 ∂S (37) ∂t 2 ∂S を得る。ここで式(28)へ式(29)を代入し、 さらに式(30)を使いdΠを式(31)のよう に求める。 ∂f ∂f ∂f ∆S = µS∆t + σS∆W ∂S ∂f∂S ∂f ∂S ∂f ∂S ∆S = >> F (34) dΠ = Πr∆t ソフトウェア経済学 ∂f 1 ∂ 2 f 2 2 = ( f − ∆S ) r∆t =+Πr∆t 2 σ S ∆t(34) dΠ (26) ∂S ∂tdΠ =2 Πr∆t (34) (35) ∂f ∂f 1 ∂12∂f2 f 2 2 2 2 2∆t = f − ∆S r∆t σ S + ∂f 1+∂ f2 2 2σ 2S ∆t =(( f∂f− ∆S))r∆t ∂f 1 ∂2 f 2 2 S ∂t+∂t 2 ∂S 2 ∂Sσ S =rf − r dt + + σ S σSdW (35) ∂t 2 ∂S 2 ∂S (35) ∂S 2 ∂S 2 (36) 2 2 (27) 1 ∂f ∂f ∂ f ∂f 1+∂ f σ ∂f 2 22 2 + σ S S ==rfrf −−rr SS 2 2 2 ∂S ∂S (36) ∂t ∂t 2 ∂S ∂S (28) (36) ∂S µS∆t + ∂S の公式で示すと式(38)7)のようになる。但 (30) σS∆W し、d1、d2は式(39)で定義し、各パラメー C(S,t) = SN(d1 ) − Xe −r(T −t ) N(d2 ) タの意味は下記に示す。 −r(T −t ) (30)C(S,t) = SN(d1 ) − Xe ∂f 1 ∂ 2 f 2 2 ∂f dΠ = + σ S ∆t + ∆S − ∆dS 2 ∂S ∂t 2 ∂S 2 N(d2 ) (38) (38) C(S,t) = SN(d1 ) − Xe N(d2 ) 22 log ∂f ∂f 1 ∂ f 2 2 ( S(SXX) )++((rr++σσ 22))((TT−−t(38) log )t ) + ∆S − ∆dS dΠ = + σ S ∆t (31) d1 d=1 = 2 ∂S ∂t 2 ∂S σσ TT −− t + r + σ 2 2)(T − t ) log S X ( ) (31) ( 式(31)のリスク項はΔt→0とするとき d1 =d = d − σ T − t d2 =2 d1 −1 σ Tσ− t T − t (39) (39) ΔS→dSとして扱い、式(32)から式(33) ∂f を得る。 ∆S − ∆dS = 0 ∂S −r(T −t ) d2 = d1 − σ T − t (32) ∂f ∆S − ∆dS = 0 ∂f (32) ∆ = ∂S (33) ∂S φp K γ ∂f ∆= ∂S βγ (39) S 株価 X 権利行使価格 σ ボラティリティ r リスクフリーレート (33) τ オプションの期間(T-t) >> F N 標準正規分布の累積密度関数 時間ΔtにおけるΠの変化は利子率rを掛 けたΠrに等しいものとして式(34)とおけ φp K >> F(34) る。式 の右辺に式 (25) 、左辺に式(31) dΠ =(34) Πr∆t γ βγ のリスク項をゼロにしたものを代入して式 ∂f 1 ∂ 2 f σ 2 S 2 ∆t =(33) + ( f − ∆S ) r∆t (36) を求める。さらに式 2 (35) を使い式 ∂S ∂t 2 を導く。dΠ 2 = Πr∆t ∂t 2 ∂S ∂f 1∂ f (35) (34) 投資判断には規模にもよるが業務効率化を 推進する投資にしろ、事業拡大を実現する投 資にしろ、先行投資にしろ、リスクを把握し ながらリターンを最大にするような機会を伺 う必要がある。IT投資の絡むシステム開発に ∂f 1 ∂ f 2 2 ∂f + σ S = rf − r S ∂f 2 1 ∂ 2 f 2 2∂S ∂t 2∂S σ S ∆t =(36) 183 ― ( f − ∆S)―r∆t + 2 2 2 2 (35) ∂f 埼玉学園大学紀要(経営学部篇) 第12号 関しても初期費用や運用費用がどの位かかる の変動性に関してはプロジェクトの不確実性 かを十分に検討する必要がある。今ではIT投 で考える。さらにオプションの種類はコール 資マネジメントとして管理されている。この オプションを扱うケースとする。 ような状況でも何が起こるかわからない不確 トライアル投資フェーズでは0年目には50 実性下で何かを判断する時には金融オプショ の投資、1年目から9年目までを10のネット ン の 考 え 方 を 応 用 し た リ ア ル オ プ ション キャッシュフロー、本格投資フェーズでは0 (Real Option)の取り扱いが考えられる。リ 年目から2年目まで0の投資、3年目に150の アルオプションは、金融資産に対して実際の 投資、4年目に22、5年目に25.8、6年目に 実物資産を対象にするために呼ばれる呼称で 29.1、7年目に32.1、8年目に34.8、9年目37.3 あり、コールオプションはブラック・ショー のネットキャッシュフローを考える。トライ ルズモデルから導いてオプション価値を求め アル投資フェーズのNPVは7.59となり、本格 るが、リアルオプションでも表1 投 資 フェ ーズ のNPVは-16.69と な る。 但 し、 に示すよ 8) うな対応を考慮していろいろなオプションを ディスカウントレートは10%で設定し、IT関 求めることができる。ここでは例えば、段階 連開発システムの場合、事業のライフサイク オプションや学習オプション などのオプ ルが短いため残存価値の計算は省略するもの ションをプロジェクト投資において投資判断 とする。このような例でオプション価値の値 に活用する。 をブラック・ショールズモデルに適用して計 9) 表1 コールオプションとリアルオプション の対応 コールオプション 株価 権利行使価格 株価の変動性 満期 リアルオプション 投資資産の現在価値 プロジェクトに要する投資コスト プロジェクトの不確実性 意思決定を延長できる期間 5.3.1 ケーススタディ1(システム投資事例) 算する。オプション価値は21.92となり、こ の値にトライアル投資フェーズで計算した NPVを加算すると事業価値の29.51が得られ る。このシステム投資の案件はまずトライア ル投資を行い、3年後に本格投資を実施すれ ばよいということがわかる。 表2 システム投資案件にかかるオプション 価値計算のパラメータ システム開発の投資プロジェクトはIT投資 S X σ r τ の視点からリスク対策等を考慮してトライア ル投資フェーズを経てから本格投資フェーズ を実施することがよくある。このようにプロ ITシステム事業の現在価値 システム開発コスト ボラティリティ リスクフリーレート 意思決定を延期できる期間 96 150 50% 3.5% 3年 ジェクトを段階的に進めて行くIT投資のやり 方は段階オプション(Time to Built Option) 5.3.2 ケーススタディ2(プロセスモデル事例) に該当するものとみなせる。株式のコールオ どのようなプロセスモデルがシステム開発 プションとリアルオプションの対応は株価に に相応しい成果をもたらすか、あるいは望ま 関しては投資資産の現在価値、権利行使価格 しいモデルであるか等を調べるためにリアル に関しては投資に要するコスト、満期に関し オプションの考え方を適用する。プロセスモ ては意思決定を延期できるまでの期間、株価 デルの初期段階から終了段階に至る期間の長 ― 184 ― ソフトウェア経済学 さや開発過程の価値の大小等をブラック・ デルは100の投資に引き続きinc(11.2、21.2、 ショールズモデルのパラメータとして入力し、 34.3、50.6、70)の ネット キャ ッシュフ ロー オプション価値の計算をする。このとき残存 の値を用いる。ディスカウントレートを10% 価値は開発期間が終了する段階で事業価値に に設定した場合、NPVは31.5となる。表3の 占める割合はないものとして取り扱う。 値をブラック・ショールズモデルに適用して 開発工程は計画/管理をはじめ分析、設計 計 算 す る と オ プ ション 価 値 は0.117と な る。 (概要設計、詳細設計) 、実装、テストの5段 アジャイルプロセスは100の投資に引き続き 階を期間の長さに対応させ、かつ各工程が持 dec(68、56、44、32、20)のネットキャッシュ つ価値の重みを進捗率に対応させて考える。 フローの値を用いる。ディスカウントレート 価値は便益(Benefits)とコストの差であり、 を10%に 設 定 し た 場 合、NPVは75.4と な る。 ウォータフォールモデルではその差が小から 表4の値をブラック・ショールズモデルに適 徐々に大きくなっていき、アジャイルプロセ 用して計算するとオプション価値は36.08と スではその差が大から徐々に小さくなってい なる。アジャイルプロセスの方がウォータ く傾向がある。そのためウォータフォールモ フォールモデルよりオプション価値が高いの 表3 ウォータフォールモデル向けオプショ ン価値計算のパラメータ 表4 アジャイルプロセス向けオプション価 値計算のパラメータ S X σ r τ ITシステム事業の現在価値 システム開発コスト ボラティリティ リスクフリーレート 成果を延期できる期間 S X σ r τ 31.5 100 50% 3.5% 1年 ITシステム事業の現在価値 システム開発コスト ボラティリティ リスクフリーレート 成果を延期できる期間 図10 ボラテリティとオプション価値の関係 ― 185 ― 75.4 40 50% 3.5% 0.4年 埼玉学園大学紀要(経営学部篇) 第12号 がわかる。リアルオプションの活用はオプ 参考文献 ション価値を定量的に把握することができる 1)Barry W.Boehm, and Kevin J.Sullivan, Software ためどのようなプロセスモデルがよいか等、 Economics:A Roadmap, ICSE ’ 00 Proceedings of 採否を伴うシナリオプラニングに用いること the Conference on The Future of Software ができる。オプション価値の傾向はリスクフ リーレートを多少変動させたとしても図10に 見られる右上がりのグラフで表現される。 Engineering, pp.319-343, 2000 2)Martin Braun, Differential Equations and Their Applications - Fourth Edition, Springer - Verlag, pp.179-181, 1993.(一樂重雄他訳『微分方程式 下 その数学と応用』 , シュプリンガー・フェア 6.おわりに ラーク東京, 2001) 今回ソフトウェア経済学なる領域を提示し、 なかでもプロセスモデルとコストの関係につ いて取り上げた。まずプロセスモデルの持つ 特徴についてランチェスター法則を用いるこ とで解明し、ウォータフォールモデルとア 3)Walker Royce, Improving Software Economics, IBM Corporation Software Group, 2009 4)Marty J.Schmidt, Return on Unvestment(ROI) defined and calculated,with examples,usage,and comparison to other financial metrics, Solution Matrix Ltd, 2012 ジャイルプロセスのグラフ化をしている。こ 5)David S.Shyu,Kuo-Jung Lee,Real options pricing れらのプロセスモデルに開発費用と保守費用 for the timing of IT investments under を考慮した投資をキャッシュフローの視点で 把握して4タイプのNPVを求める。ここから decタイプがよいのではという結論を得る。 さらにコブ-ダグラス生産関数を含む利潤関 数に伊藤過程を導入することで利潤の特性に ブラウン運動が関与していることがわかる。 こ こ で の 考 え 方 を 発 展 さ せ て ブ ラック・ ショールズモデルを導き、さらにリアルオプ ションでシステム開発の投資やプロセスモデ ルの採否の意思決定というものに応用する。 オプション価値の視点でプロセスモデルを考 えるとincタイプのウォータフォールモデル よりdecタイプの様相を持つアジャイルプロ セスが優勢に立つ。つまり、不確定性の要素 を多く持つアジャイルプロセスではあるが投 資回収を短期に行える利点というものが優位 となる。以上、モノ作りのシステム開発の分 野に経済分野のノウハウを応用しながらプロ セスモデルとコストの関係をソフトウェア経 済学の一端として導いている。 ― 186 ― uncertainty, p363, 2004 6)Joseph Raynus, Software Process Improvement with CMM , Addison-Wesley, 1995.(富野壽監訳 『CMMによるプロセス改善入門』 , 構造計画研 究所, p142, 2001) 7)蓑谷千凰彦,『よくわかるブラック・ショール ズモデル』, 東洋経済新報社, p204, p268, 2000 8)刈屋武昭監修・山本大輔,『入門 リアル・オプショ ン』, 東洋経済新報社, p101, 2001 9)川口有一郎,『リアルオプションの思考と技術』, ダイヤモンド社, p61, 2004