Vol.5 No.1 2012
10/84
研究論文:高品質なプロジェクトマネジメントを実現するトレーサビリティ・マトリックスの構築(榮谷ほか)−7−Synthesiology Vol.5 No.1(2012)5.1.2 プロジェクト計画の問題整理例えば体制が曖昧で他と比べて大きな粒度しか書けない担当があるならば、その整理を行うことが必要である。また他の例では、上流工程において要素を洗い出すとき、下流工程で明確になる部品や機能がはっきりしないことも想定される。その場合、見積もり根拠を確認する必要がある。見積もり時にはそれなりの根拠をもっているはずで、もし根拠がはっきりとしない場合は、プロジェクト計画立案時の課題として、早急な計画の再検証を行う必要ある。以上を整理し、システムマトリックスsとシステムマトリックスnを作成する。5.1.3 個々のマトリックスの相互依存性・難易度の低減と複雑性の評価個々のマトリックスに対して対角化を目指した改善を行う。しかし、その結果、要素の難易度を上げてしまうケースが想定される。しかも、対角化した以外のマトリックスの要素の難易度を増大させてしまうケースも想定される。そのため、必ずプロジェクトを俯瞰的にみるために複雑性を算出してプロジェクト全体への影響度を確認することが必要である。プロジェクトの構造を示すシステムマトリックスは図3で示したとおり、7つの行列の掛け算で導かれる。行列の掛け算の特性から、全行列または三角行列が組み込まれた計算の解は必ず全行列または三角行列となる。対角行列を解として得るには各行列を対角行列にする必要がある。ステップ1として、システムマトリックスsを構成する7つの各行列それぞれの関係性を整理し、対角行列に近づけることによって相互依存性を低減する。ステップ2として、システムマトリックスnを構成する各行列で整理された関係性の中で成分値の高い関係、つまり難易度の高い関係を低減することによって、行列の難易度を低減する。以上によって、システムマトリックス全体の複雑性(=相互依存性×難易度)の低減を実現する。しかし、現実のプロジェクトではシステムマトリックスsの7つすべての行列を対角化することは困難である。したがって、例えば各行列を三角行列化することを目的にプロジェクトの設計を改善する(相互依存性の低減)。そして、各要素間の関係性を例えば開発ツール等の導入によって平易なものとし、システムマトリックスnの行列成分値の値を低減する(難易度の低減)。それにより全体としての複雑性を低減する案もある。また別案として、システムマトリックスsの7つの行列の中で全行列は一つまたは二つの行列に絞り込み、他の5つか6つの行列は対角化し、システムマトリックスnの成分値を極力低いものにするような改善も有効である。全行列である箇所の複雑性は高いかもしれないが、対角化した箇所の複雑性を低減することにより、全体の複雑性を下げるという考え方である。ただし、どちらの場合も必ずしも複雑性の低減に有効でないケースも有り得るため、プロジェクトの設計段階でのシミュレーションによる比較検証は必要である。例えば、ソフトウエアをすべて手作りするスクラッチ開発用語10で計画を立てていたが、その複雑性を軽減するために、ソースコードを自動生成するツール(以下ジェネレータと記述)の利用、またはパッケージソフト(以下PKGと記述)を利用するケースを検討する。その検討の流れを説明する(図5)。スクラッチで開発をする場合の要素全体の関連は参考資料3に示した。特にその中で着目した要素のみを図6に切り出した。画面遷移部分のみ(いわゆる3層モデルのプレゼンテーション層)を対象としている。作業要素として画面設計、成果物要素として画面仕様書・画面遷移図、そしてそのソースコード、また部品としてログイン画面、メニュー画面等を、そして機能としてはUID入力機能、PW入力機能等を挙げた。このように要素の数が多く、相互依存性も高いことから、その改善を試みることとした。PKGでは、その製品内に機能もすべて実装されていることから、設計者やプログラマーが個々の部品や機能を意識することがないと考え、部品として画面制御PKG、機能として画面制御機能のみを要素として挙げた(図7)。また、ジェネレータは部品や機能の構造はスクラッチの場合と同じとした。しかし設計書からソースコードが自動生成されるので、設計者やプログラマーがソースコードを意識することは無い。そのためスクラッチとの構成要素の違いはソースコードの有無だけである(図8)。以上の3種類を比較評価した場合、一番相互依存性が低いPKGを選択することが適切と考えられた。しかし、その選択をした場合の周辺要素の影響を再考してみる。つまり、PKGに関する習熟度等を考慮したときに別の要素の難易度を増大させている可能性を考慮する。それぞれのシ難易度の変化に伴う、複雑性の影響を確認複雑性が最低値相互依存性は最低値成果物-部品-機能の関係性を簡素化に伴う、難易度の影響を確認成果物-部品-機能の関係性を簡素化する手段として、ジェネレータの利用およびPKGの利用を検討ジェネレータ利用を選択PKG利用時と他の選択肢との複雑性評価ジェネレータ利用orPKG利用の選択検討PKG利用時の難易度の評価PKG利用の選択スクラッチ開発プロジェクトの相互依存性の低減方法の検討図5 相互依存性・難易度を考慮した複雑性の評価フロー
元のページ