QIP
QIP(キューアイピー、正式名称Quality Improvement Paradigm)は、組織におけるソフトウェア品質改善のための枠組みである。メリーランド大学のビクター・バシリ教授によって作られた。
ソフトウェアプロジェクトで計測したデータをうまく蓄積して活用することは重要である。QIPではこれを知識形成と再利用の課題と捉える。個別のプロジェクトで得られた経験や知見が組織や対象ドメインで広く役立つ可能性があっても、役立てることができないまま失われることはしばしば発生している。(ここでいう再利用とは、例えばコードの再利用のようなものだけでなく、あらゆる種類の経験や知見の体系的な再利用を含んでいる。)
QIPでは、プロジェクトレベルの学習と組織レベルの学習を明確に区別した上で、それぞれを構成するステップと両者の関係を定義したものである。バシリ教授はQIPの構成を大小の2つの環からなる図で説明している。それぞれの環は知識形成が反復的なプロセスであることを表しており、プロジェクトレベルの大きな環の一部としてプロジェクトレベルの小さな環が回ることを意味している。
組織レベルの学習の環は以下のステップで構成される。
- 特徴づけ: プロジェクトが実行されるコンテキスト(人、リソース、プロセス、プロダクト面からの要因を含む)を明らかにしモデル化する
- ゴール設定: GQMなどを用いて計測可能なゴールを定義する
- プロセス選択: 使用するプロセスモデルを選択・調整し、必要な準備(トレーニング等)を行う
- プロセス実行: プロジェクトの実施。ここでプロジェクトレベルの環が実行される
- データ解析: プロジェクト完了後にデータを解析し、ゴールに基づいて知見を得る
- パッケージング・蓄積: 得られた知見を再利用可能な形に加工し蓄積する
プロジェクトレベルの学習の環は以下のステップで構成される。
- プロセス実行: プロジェクトの実行
- データ解析: プロジェクト実行中にデータを解析し、プロセスやデータ収集がうまくいっているか確認する
- フィードバック: 適切なフィードバックを行いプロセスやデータ収集を調整する
なお、パッケージングのステップでは、知見や経験をそれが得られたコンテキストを含めて記録することが重要不可欠である。ソフトウェアプロジェクトで有用な経験や知見は、自然法則のようなものとは異なり常に成り立つものとは限らないため、組織レベルの反復の中で個々の知識が適用可能な条件や例外をコンテキストの情報を使って明らかにしていくことになる。このようなプロセスを効果的に実施するために、経験ファクトリーなどを活用した組織体制づくりが望ましいとされる。