【バグ管理の作法】
エンピリカルソフトウェア工学に触れる
第2回:開発者の実務を軽減するエンピリカルアプローチ
著者:奈良先端科学技術大学院大学 松本 健一
公開日:2007/12/12(水)
「産」の視点〜プロジェクトマネジメントへの効果
前回解説したように、エンピリカルソフトウェア工学とはソフトウェア工学において、実証データや実績データを重視し、実証性の概念を前提とするアプローチだ。ソフトウェア工学とは「ソフトウェアの開発、運用(利用)、保守に関する理論を応用して、ソフトウェアの生産性や品質を向上させる技術の総称」である。
「第1回:エンピリカルソフトウェア工学を学ぶ前に」でも触れたように「Empirical(エンピリカル)=Experimental(大学などでのソフトウェア開発実験に基づく。実証データに基づく)+Experienced(ソフトウェア開発現場などでの経験や実践に基づく。実績データに基づく)」としている。
日本語で表記する場合、便宜的に「実証的」「データに基づく」とすることがある。意訳するならば、「観察や実験を通じて技術を開発し検証する」「理論だけでなく実践経験に基づいて技術を評価する」といったところだ。
以上は第1回で解説した通りで、どちらかといえば「学」の視点からの議論である。では、「産」の視点からみるとどうなるであろうか。
ソフトウェア開発プロジェクトとは、文字通り「プロジェクト」である。PMBOKで指摘されているように「通常の業務範囲内では対処できない要求に応える手段であり、何らかの点で他と異なる(個別性が高い)」ものだ。
つまり、ソフトウェア開発に同じものは1つとしてなく、開発中に起きることをすべて予見することは容易ではない。綿密な計画を立てることも重要であるが、計画からの逸脱や想定外の事態を検知し、それに対処する手段を持つ必要がある。
特に近年のソフトウェア開発では、ソフトウェア機能の細分化と共に開発プロセスの細分化が進んでいる。この2つの細分化が、既製のソフトウェアを組み合わせての開発や、開発作業を組織間で分担することを可能とし、ソフトウェアの信頼性と生産性の向上に大きく貢献している。
しかし、その一方でこうした細分化は問題発生時の影響を拡大させる原因にもなっている。既製ソフトウェアを組み合わせ、複数組織で分担開発されたシステムで原因不明の障害が発生した場合、障害の原因を突き止めるためのコストは膨大になる。また、オフショア開発の活発化が、こうした問題の拡大にさらに拍車をかけている。
産の視点から見ると、エンピリカルアプローチとは、
産の視点からみたエンピリカルアプローチの必要性
というように、「プロジェクトマネジメントを経験や勘だけに頼らず、指標やガイドライン、見える化といった手法を通じで高度化し、プロセスの改善やノウハウの獲得を行うためのアプローチ」といえる。
さて、このように述べると、エンピリカルアプローチはどうもプロジェクト管理者には役立つが、現場のソフトウェア開発者にはあまり縁がない、恩恵がないアプローチに思われるかもしれない。
しかし、そんなことはないのである。では、エンピリカルアプローチがどのような恩恵を開発者にもたらすのかを紹介しよう。 次のページ