「とにかく早く」って言われてもねぇ
大規模ソフトウェア開発保守の現場

[著者]山村吉信

ソフトウェア開発保守プロジェクトにおいて生産性・品質を維持しつつ納期順守を達成するのは重要かつ容易ならざること。本書は現実のプロジェクトを題材に、現場の生きたデータを元に生産性・品質の向上と納期の短縮に関する実際、現場で開発を行った人たちの声、そして開発保守理論の応用方法などを紹介しながら、プロジェクトの成功達成を目指すための課題と解決方法を示します。

定価=本体 2,200円+税
2003年3月20日/
A5判並製/176頁/ISBN978-4-88303-113-9



[目次]
前書き  13
注意と限界  14
著作権  14
謝辞  14

第1部 ABCプロジェクト  17
 第1章 はじめに   19
     1.1 品質、生産性、納期  19
          1.1.1 品質、生産性、納期の関係  19
          1.1.2 品質、生産性、納期の定義  21
     1.2 学ぶにあたって  21
 第2章 ABCにおける開発   23
     2.1 開発体制  24
          2.1.1 開発に関わる組織  24
          2.1.2 組織間の関連  26
          2.1.3 開発に関わる人たち  27
     2.2 開発工程  28
          2.2.1 上流工程  28
          2.2.2 下流工程  30
     2.3 開発体制に関わる課題  32
          2.3.1 情報伝達  33
          2.3.2 人・役割・組織運営の問題  35
     2.4 学ぶにあたって  36
 第3章 生産性の向上  37
     3.1 簡単な例  37
     3.2 コスト  41
          3.2.1 コストとはどういうものでしょうか  41
          3.2.2 コストを下げる  41
     3.3 生産性の解釈  43
          3.3.1 依頼者から見た生産性  44
          3.3.2 メーカーから見た生産性  44
     3.4 ABCにおける生産性  45
          3.4.1 COCOMO  45
          3.4.2 規模からの見積り  45
          3.4.3 せめぎあい  46
          3.4.4 プロジェクトの会計  47
     3.5 小咄:タクシー運転手  48
     3.6 ABCの現場  49
          3.6.1 4ヶ月半で420本のプログラム開発を5人でしなければならない  49
          3.6.2 テスト・ケースを作成するのが大変である  51
          3.6.3 テストを実施するのが大変である  52
     3.7 生産性を上げる方法  52
          3.7.1 再利用 - 技術的方法  53
          3.7.2 ABCにおける折衝  54
          3.7.3 コーヒー・ブレーク、等  56
     3.8 学ぶにあたって  57
 第4章 納期の短縮  59
     4.1 ABCにおけるXYZプロジェクト  59
          4.1.1 XYZプロジェクトでの仕事  60
          4.1.2 仕事の流れ  61
          4.1.3 開発工程  61
     4.2 現場での工夫  62
          4.2.1 開発中の成果物  62
     4.3 パッケージ・ソフトウェアの功罪  63
     4.4 学ぶにあたって  64
 第5章 品質の向上  65
     5.1 小咄:ダイエット  66
          5.1.1 結果を記録する方法  66
          5.1.2 内容を改善する方法  67
     5.2 ソフトウェアの品質  67
     5.3 ABCにおける品質  68
     5.4 品質を上げる技術  68
          5.4.1 早期の欠陥除去手法  69
          5.4.2 レビュー  69
          5.4.3 テスト  69
     5.5 プログラミングでの個人差  75
     5.6 ABCの開発工程における品質要件  76
          5.6.1 要件定義  76
          5.6.2 外部設計  76
          5.6.3 内部設計  76
          5.6.4 製造  77
          5.6.5 プログラム(単体)テスト  77
          5.6.6 プログラム結合テスト  78
          5.6.7 システム結合テスト  78
          5.6.8 ‘P to P’  78
          5.6.9 運用テスト  79
          5.6.10 受け入れテスト  79
     5.7 エラー管理表  79
     5.8 工程別完了基準  79
     5.9 引渡し基準  80
     5.10 本番サービス開始基準  80
     5.11 引き渡し管理  80
     5.12 学ぶにあたって  81

第2部 統計・資料  83
 第6章 仕事内容  85
     6.1 XYZにおける業務開発保守の稼働実績  85
          6.1.1 YYYY年  85
          6.1.2 (YYYY+1)年  85
          6.1.3 開発という仕事  87
     6.2 XYZにおける業務開発保守への調査依頼  87
     6.3 仕事の評価  101
          6.3.1 営業およびプロジェクト・マネージャ  102
          6.3.2 開発者  102
     6.4 学ぶにあたって  102
 第7章 統計的扱い  103
     7.1 リトルの公式  103
     7.2 テストにおけるエラー管理票  104
          7.2.1 発生件数  104
          7.2.2 解決件数  104
          7.3.3 発生件数と解決件数  105
          7.2.4 未決件数  105
     7.3 本番障害  107
          7.3.1 発生件数  107
          7.3.2 解決件数  107
          7.3.3 未決件数  108
     7.4 学ぶにあたって  109

第3部 現場の声  111
 第8章 調査  113
     8.1 課題  113
     8.2 調査の項目  113
          8.2.1 脇道:研究論文  113
          8.2.2 調査をお願いするにあたって  114
     8.3 学ぶにあたって  114
 第9章 開発工程に関わるもの  115
     9.1 要件定義があいまい  115
          9.1.1 問題点  115
          9.1.2 原因  115
          9.1.3 改善案  115
          9.1.4 投資費用対効果  115
          9.1.5 コメント  116
     9.2 外部設計  116
          9.2.1 問題点  116
          9.2.2 原因  116
          9.2.3 改善案  116
          9.2.4 投資費用対効果  117
          9.2.5 コメント  117
     9.3 プログラム本数  118
          9.3.1 問題  118
          9.3.2 原因  118
          9.3.3 改善案  118
          9.3.4 投資費用対効果  118
          9.3.5 コメント  119
     9.4 テスト  119
          9.4.1 問題点  119
          9.4.2 原因  119
          9.4.3 改善案  119
          9.4.4 投資費用対効果  119
          9.4.5 コメント  119
     9.5 パフォーマンスが悪い  120
          9.5.1 問題点  120
          9.5.2 原因  120
          9.5.3 改善案  120
          9.5.4 投資費用対効果  120
          9.5.5 コメント  120
     9.6 パフォーマンスが悪い  121
          9.6.1 問題点  121
          9.6.2 原因  121
          9.6.3 改善案  121
          9.6.4 その他:レビューの問題  121
     9.7 手戻り  122
          9.7.1 問題点  122
          9.7.2 原因  122
          9.7.3 改善案  122
     9.8 バグ  122
          9.8.1 問題点  122
          9.8.2 原因  122
          9.8.3 改善案  123
     9.9 横展開  123
          9.9.1 問題点  123
          9.9.2 原因  124
          9.9.3 改善案  124
          9.9.4 投資費用対効果  124
          9.10 リリース作業の複雑さ  125
          9.10.1 問題点  125
          9.10.2 原因  125
          9.10.3 改善案  125
     9.11 学ぶにあたって  126
 第10章 プロジェクト管理に関わるもの  127
     10.1 中・長期目標  127
          10.1.1 問題点:プロジェクトの中・長期目標がはっきりしていない  127
          10.1.2 原因  127
          10.1.3 改善案  127
          10.1.4 投資費用対効果  127
          10.1.5 コメント  128
     10.2 リーダーシップ  128
          10.2.1 問題点  128
          10.2.2 原因  128
          10.2.3 改善案  128
          10.2.4 投資費用対効果  128
          10.2.5 コメント  129
     10.3 グループ・ワーク  129
          10.3.1 問題点  129
          10.3.2 原因  129
          10.3.3 改善案  129
          10.3.4 投資費用対効果  130
     10.4 スキル不足  130
          10.4.1 問題点  130
          10.4.2 原因:内製化の失敗  130
          10.4.3 改善案:SSOを半数残して継続して仕事を行わすべきであった  130
     10.4.4 投資費用対効果  131
     10.5 モラルの低下  131
          10.5.1 問題点  131
          10.5.2 原因  131
          10.5.3 改善案  132
     10.6 指導力  132
          10.6.1 問題点  132
          10.6.2 原因  132
          10.6.3 改善案  132
     10.7 経緯  132
          10.7.1 問題点  132
          10.7.2 原因  133
          10.7.3 改善案  133
          10.7.4 投資費用対効果  133
     10.8 調査依頼が多すぎる  133
          10.8.1 問題点  133
          10.8.2 原因  134
          10.8.3 改善案  134
          10.8.4 投資費用対効果  134
     10.9 学ぶにあたって  134
 第11章 ソフトウェア開発方法、開発環境その他にまつわる声  135
     11.1 開発方法  135
     11.2 開発環境  135
     11.3 その他  136
     11.4 学ぶにあたって  136

第4部 ソフトウェア開発のための道具箱  137
 第12章 現場に必要な技術としてのプロジェクト管理  139
     12.1 COCOMOによる工数等の見積もり  139
     12.2 WBS  140
     12.3 ガント・チャート、またはガン・チャート(Gantt Chart)  141
     12.4 アクション・アイテム(Action Items)管理表  141
     12.5 学ぶにあたって  142
 第13章 ABCに見るI社  143
     13.1 オペレーティング・システム  143
     13.2 プログラミング言語  144
     13.3 データベース  144
     13.4 開発環境  144
     13.5 オフィス製品  145
     13.6 学ぶにあたって  145
 第14章 今どきのソフトウェア開発  147
     14.1 大規模統合に向けて:開発かパッケージ導入か  147
          14.1.1 大規模統合とは何か  147
          14.1.2 大規模統合の課題  147
          14.1.3 開発モデル  148
          14.1.4 パッケージ導入モデル  148
     14.2 統合における課題  148
          14.2.1 納期の短縮  148
          14.2.2 コスト削減と生産性向上  149
          14.2.3 顧客満足度と品質向上  149
     14.3 ビジネス・インテグレーション  149
          14.3.1 統合の様々なレベル  149
          14.3.2 ビジネス統合  149
     14.4 B2B統合  150
          14.4.1 インターネットのこれまで  151
          14.4.2 eBusinessとB2C  152
          14.4.3 企業間取引とB2B  152
     14.5 EAI  152
          14.5.1 企業アプリケーション(Enterprise Application)  152
          14.5.2 企業内バックエンドシステム  153
     14.6 メインフレーム  153
          14.6.1 メインフレーム統合の現状と課題  153
     14.7 ロゼッタネットと電子商取引  154
          14.7.1 ロゼッタネットにおけるソフトウェア開発保守  154
     14.8 学ぶにあたって  154
 第15章 ピーターの法則  155
     15.1 ABCでのピーターの法則  155
     15.2 リエンジニアリング  156
     15.3 営業と技術  156
     15.4 学ぶにあたって  157

付録  159
 付録A 品質の分類  161
     A.1 機能性 (functionality)  161
     A.2 信頼性 (reliability)  162
     A.3 使用性 (usability)  163
     A.4 効率性 (efficiency)  163
     A.5 保守性 (maintainability)  164
     A.6 移植性 (portability)  164
     A.7 学ぶにあたって  165
 付録B 用語  167

関連図書  171
図・表 目次


HOME