ソフトウェア技術者サミット
2007 in
高松
2007.7.23
ソフトウェアの価値はどこにある:
ソフトウェア経済学のすすめ
こんにちは!
アジャイルプロセス協議会イベントへの
ご支援、ご参加、
まことに、ありがとうございます。
大槻
ソフトウェア開発でがんばったから、残業いっぱいしたから
お金ちょうだいという時代は終焉しつつあります。社会への
貢献、インパクトの大きさ、効果のすばらしさといった《価
値》で、仕事を測り、客観的に評価することができなくては
ならなりません。
『ソフトウェア経済学』は、ソフトウェアに携わるあらゆる
人々の幸福達成のための理論や手法を構築していこうとい
う、新しいムーブメントです。
自らの仕事の価値を高めるためには、価値そのものが何かを
しっかりと問うことから始めなくてはなりません。
第1章:ソフトウェア経済学の概要
ソフトウェア経済学 = ソフトウェアエンジニアリング + 経済学 + 経営学。
第2章:ゲーム理論で見るソフトウェア経済学の考え方
ソフトウェア開発の世界を戦略、交渉、契約、配分という目で眺めてみよう。
第3章:ソフトウェアの価値はどこにある
ソフトウェアに対するものの見方を変えてみよう。実行可能知識のめざすところ。
第4章:本当の価値を生み出すソフトウェアプロセスとは
身近な実践例で見るアジャイル・ソフトウェアセル生産方式とその効用。
第4.1節 人月からセル月へ
第4.2節 アジャイル・ソフトウェア セルプロセス体験レポート
第5章:ソフトウェア経済学のもたらすインパクト
これからの理論と社会制度、変わっていくソフトウェアの調達と開発。
4
ソフトウェア経済学の概要
大槻 繁
Software Economics
ソフトウェア経済学が明らかにしようとしていること
ソフトウェア、システム、サービス等の無形財の利用、開発、保守、運用、破棄 の総合的な社会/経済的な振舞い
市場、組織、部門、プロジェクト、チーム、個人の一貫した社会/経済的な振舞い
価値(value)、価格(price)、費用(cost)の定式化と、これ間の関係
ソフトウェア経済学の知識体系
ソフトウェアエンジニアリング:ソフトウェアによって問題を解くための知識 経済学:近代資本主義における「富」に関する学問
経営学:利益追求や社会貢献を目的とした企業・組織体に関する方法論
ソフトウェア経済学の全体像
経済学
経営学
ソフトウェアエンジニアリング
バランススコアカード
ファンクションポイント
COCOMO 均衡理論
モジュール化
ビジネスプロセス
開発プロセス
アーキテクチャ 問題フレーム
競争戦略論
アジャイルプロセス
企業価値評価 管理会計
市場理論
オプション理論
ゲーム理論
メトリクス
運用論 要件定義
ソフトウェア経済学
初期構築コストモデル 保守•運用コストモデル
ライフサイクルコストモデル ソフトウェア価格決定法
IT(不良)資産評価法
投資対効果算定法 システムリスクモデル システム価値評価法
ビジネスリスクモデル ソフトウェア戦略論
スキル判定/人材評価法
プロジェクト/プロセス評価法
アーキテクチャ評価法 スループット分析法
費用対効果(ウォータフォール型開発の場合) 費用対効果(インクリメンタル型開発の場合)
システムのコスト構造
調達側と開発側との関係
基本計画
業務分析
観測・制御
検収・評価
分析
設計・開発
テスト
品質保証
調達側
開発側
プロジェクト
提案
交渉 調整
レビュー 依頼
チェック
検討
ビジネスプロセス 開発プロセス 同期/協調
一括開発
開始確率停止確率
開発成功確率
開発失敗確率
段階的拡充開発
開始確率1停止確率1
開発成功確率1
開発失敗確率1 第1段階 第2段階
開始確率2
停止確率2
開発成功確率2
開発失敗確率2
撤退オプション
調達側
交渉
開発側
{効用, 費用}
{ビジネス効用(ビジネスリスク), 投下資本}
{ビジネス効用 開発費用}
{開発効用(開発リスク), 開発費用}
ゲーム論的情況
経営
実務
調達
開発
ユーザ企業
経営企画室等 経営企画室等開発企業
ユーザ企業
システム部等 開発チーム等開発企業
CIO
ガイドライン 策定
見積り評価
調達プロセス 評価•改善
RFP作成
ビジネス 戦略策定
見積り提案
開発プロセス 評価•改善
開発提案
開発手法導入 資産評価
PMO
組織と役割
ギャップ
ギャップ
ギャッ
プ ギャッ
ソフトウェア 経営学 ソフトウェア
ゲーム理論 ソフトウェア
価値算定手法 (資産評価 価格分析 ・・・)
ソフトウェア経済学の研究戦略
社会/経済の構成要素を横断的、統一的にとらえること
企業
国
プロジェクト
チーム
個人
予測
評価
交渉
戦略
伝統的 見積手法
アジャイルプロセス(チーム)のための 見積り、評価、交渉、戦略手法
IT
新改革戦略
システム企業
システム モジュール
所有 サービス企業
所有
ビジネス モジュール
サービス企業
所有
ビジネスモジュール
システム モジュール
調達
対価
価値=ビジネス+モジュールが生み出す効用 費用=ビジネスモジュールを構築する投入資源
費用=システムモジュールを構築する投入資源 費用=システムモジュールを調達•導入•
運用する投入資源
本当の価値を生み出す
ソフトウェアプロセスとは
第4章
アジャイル•ソフトウェアセル生産方式
アジャイルプロセス ソフトウェアセル生産方式
XP SCRUM
・・・ 軽量プロセス 変化対応
ソフトウェアファクトリー 並行生産ライン
シェフ/コックモード
・・・
アジャイル・ソフトウェアセル生産方式
実践適用
伝統的開発文化
請負受託
新人教育
段階的開発契約 仕様変更
フィーチャ
フレームワーク
プラクティス
短期開発
人月からセル月へ
濱 勝巳
Mythical Cell-Month
第4.1節
人月モデル
•
単純で利用しやすい
•
生産性や品質のばらつく
セルとは
•
一人以上の人が割り当てられた小チーム
•
それぞれ役割を持つ
•
一定の生産性と品質を持つ
•
依存関係を抱擁する
適切な知識・スキルおよび経験を持った複数のメンバーが、複雑な依存関係を持った 複数の作業単位を、知的に連携しながら遂行することによって、一組の構造体成果物
を生み出すように設定された、並列して実行可能な複合作業単位
(財団法人京都高度技術研究所・顧問松本吉弘氏論文「セル生産方式ソフトウェアファクトリ」より)
セル月とは
•
何セルを何ヶ月間稼働させるかを約束
•
開発の生産性や品質が平準化される
•
開発の生産性や品質が一定になる
•
チームとして高いパフォーマンスを出せる
曖昧な要求を実装する問題
•
手戻りがないことが理想的
•
ウォータフォールは理想的なモデルである
•
しかし
…
•
将来を予想して余計な機能を実装している
•
全体の検証に時間がかかる
•
工程間に大量の在庫を抱える
•
巨額の投資が必要となる
要求と実装の距離を短縮する
•
インクリメンタル開発を採用する必要がある
•
要求が明確になった時点で速やかに実装する
•
早期に実装を検証する
•
インクリメンタル開発のメリット
•
大きな変更が発生しない
•
陳腐化せずに実装の価値が高い
従来の開発
設計図を作成
部分を作成
全体を作る
作業を 分担する
(WBS)
結合 させる
出荷可能
インクリメンタル開発のイメージ
イテレーション 2W作業
出荷可能 出荷可能 出荷可能 出荷可能
イテレーション 2W作業
シェフモードとコックモード
•
レストランのメタファ
•
シェフモード:シェフがメニューやレシピを作る
•
コックモード:コックが日々注文される料理を作る
•
インクリメンタル開発
•
シェフモード:上級アナリストやアーキテクトがセルの構成
やソフトウェア基盤を作る
•
コックモード:セルがユーザから要求させる注文を実装する
シェフモードとコックモード
コックによる 実装
シェフによる 実装
機能要求
イテレーション1 イテレーション2 イテレーション3
非機能要求
ライフサイクル
フレームワーク
品質、セキュリティ
データ
フ ィーチャ フ
ィーチャ
フ ィーチャ
フィ ーチャ
フ ィーチャ
シェフモードで考えること
•
再利用可能な資産となること
•
フィーチャの追加・削除が自在であること
•
セル単位に生産性が計測しやすいこと
•
セル単位に品質が維持しやすいこと
•
繰り返しやすいこと
投資と利益
-6 -3
0 3 6 9 12 15
ソフトウェア経済学の
もたらすインパクト
飯泉純子
The Inpact
第5章
原理原則
発注側:システムを活用したビジネスに関するリスクを負う
開発側:システムを開発することに関するリスクを負う
問題
システムは複雑で、目に見えず、時間とともに状況が変わ
り、
状況の予測は難しい
図1 契約と報酬の考え方
予定
実績
不足
余剰
実績
・・
・
発注側
受注側
報償
30
契約と報酬の考え方
(続き)
主な契約の種類
✓
完全定額契約:予算と実績額との差はすべて受注側が負う
主観的 客観的
内部 外部
作業展開(WBS)積上げ
構成要素積上げ
デルファイ法
COCOMO
アナロジー事例推論
コード行数ベース 単純推論
3点見積り
(PERT)法
ファンクションポイント ベース単純推論
第三者の納 得性が高い
属人性が高い
調達側、開発領 域外から見える
開発側の内部
開発プロジェクトデータの 回帰分析を行って作成した モデル式に基づく算出
システムの外部観測可能な機 能仕様から規模を計測しそれ を調整して線形式で算出
複数の専門家の予測を集計 同種のシステム開発
データを適用して推定
リスクを勘案して見積っ た悲観•楽観•最可能値を もとに加重平均
システムの構成要 素のコストを集積
開発作業を分割•展開し、それ ぞれの個別作業のコストを集積
予測コード行数か ら線形式で算出
図3 ファンクションポイント法の概念
内部論理 ファイル 外部入力
ユーザ
外部出力
外部照会
外部入力
外部出力
外部照会
外部
インタフェース ファイル
計測対象システム
外部システム
32
ファンクションポイント法
アプリケーションドメイン
システム(マシン)
インタフェース
FP
はユーザと開発者と
の合意手段として好適
図4 ファンクションポイント法の利用局面
FP
に基づく見積りの利点
✓
出発点がユーザが識別できる機能やデータに基づいている
✓
アプリケーション(業務)ドメインとシステムの境界(インタ
FP
に基づく見積りモデルの一つ
仮定:
FP
と工数は比例関係にある
モデル式の例
工数=生産性係数
×
FP
値
生産性係数
単位:人月
/FP
、人時
/FP
システムの規模レベル、対象業務など、システムやプロ
ジェクトの特性によって異なる
FPベース単純推論
開発ソースコードの規模(
SLOC: Source Lines Of Code
)に
基づいて工数と期間を算出するモデル
基本モデル式
工数=
A
×
(規模)
期間=
C
×
(工数)
単位
工数:人月
規模:
KSLOC
(=
1,000SLOC
)
期間:月
係数
A
:生産性係数、
B
:規模指数
C
:期間係数、
D
:期間指数
COCOMO
f
変動要因
(規模要因、コスト要因)
規模 (記述量)
工数
期間 母体規模
図5 COCOMO(COnstructive COst MOdel)
36
COCOMOの利点
基本モデルをベースとして、システムやプロジェクトの特性に
よる変動を反映させるための変数を複数用意
規模要因、コスト要因
1997
年のバージョン2:
COCOMO
Ⅱ
モデルに現れる係数や指数の値を定めるには、プロジェクト
データを蓄積して、統計解析を行う
「客観的」な見積り手法
より多くの、対象プロジェクトと特性の似通ったプロジェク
トデータに基づく
判断の基準が明確である
ユーザ企業経営企画
情報システム部門
開発企業経営企画 調達部門
開発部門 営業部門
ユーザ
38
請負開発(運用)
ユーザ企業経営企画
情報システム部門
開発企業経営企画 調達部門
開発部門 営業部門
ユーザ
システム活用によるビジネス+シ ステム開発+システム運用の収益 確保までコミット
システムの仕様合意とシステム開 発+システム運用までコミット
アウトソーシング
請負開発(運用)
ビジネスモデル構築
システム企画、業務定義 (改革)、ユーザ対応
RFI、RFP、遂行
管理、検収
提案、遂行 調整、納品
要件定義、設計、プ ログラミング、テスト
ソリューション企画、
委任(派遣)
遂行人員提供、業務品質 と生産性のコミット
高松モデルの詳細
ドメイン指向
システム エンジニアリング サービス
エンジニアリング 経営学
ソフトウェア エンジニアリング
経済学
複雑性 (Complexity)
順応性 (Conformity)
不可視性 (Invisibility)
変更可能性 (Changeability)
同時性 (Simultaneous)
消滅性 (Perishable)
無形性 (Intangible)
変動性 (Heterogeneous)
並行性 (Concurrency)
市場性 (MarketOrient)
有形性 (Tangible)
系列性 (ProductLine)
〔ソフトウェア〕 〔サービス〕 〔組込み〕
正しい設計
正しいシステム開発
正しい問題分析
正しい見積り
本質的特性!
制度構築手法の確立 チームマネジメントや プラクティスの体系化 ゲーム理論の適用
産業アーキテクチャや 調達・交渉方法の基礎
本質的アプローチ 温故知新
40
ソフトウェア経済学の研究戦略
近い将来 遠い将来
啓蒙 小冊子:ソフトウェア経済学のすすめ 詳説ソフトウェア経済学
経営 CIOのためのIT投資の考え方新調達ガイドライン IT構造改革ガイドライン新IT戦略の立案法
実務 見積り予測と評価パターン集 価格論拠大全
社会 新しい見積り、交渉、契約ガイドブック ITに関わる組織•制度設計論
プロセス エンタープライズアジャイル方法論 実行可能知識論
学術 応用ゲーム理論、オプション理論IT価値算定法、IT資産評価法 ITミクロ&マクロ経済学
関連分野 サービス業のためのソフトウェア経済学製造業のためのソフトウェア経済学 プロダクトライン経済学サービスウェア経済学
連携 ガバナンスとインフラ(COBIT, ValIT, ITIL) 超共通フレーム
各種標準
ソフトウェア
価値評価手法
見積り手法 サービス指向手法
ソフトウェア 経済学
基本 基本 導入
協調 協調
展開・適用
ITIL COBIT
ValIT SLCP
ATAM
基本
参照
オプション理論 ゲーム理論
均衡理論
モジュール化 競争戦略論
企業価値評価 管理会計
SI・開発企業 提案、交渉 マネジメント
チームのための見積り手法 (予測、評価、交渉、戦略)
協調 官庁・ユーザ企業
ガバナンス 調達
啓蒙・適用
ガイドライン 評価手法
冊子
情報処理振興機構(IPA)/ソフトウェアエンジニアリングセンター(SEC)のWG