前回紹介したソフトウェアエンジニアリングのスタンダードであるSWEBOK(ソフトウェアエンジニアリング基礎知識体系)の第2章「ソフトウェア要求」におけるプロセス「要求抽出」には、「要求の発生源」と「抽出技法」に関する記載がある(前回の図3参照)。いずれも要求抽出の中心課題である。
この2つを紹介する。「要求の発生源(Requirements Sources)」は多様である。SWEBOKは、目標(Goals)、ドメイン知識(Domain knowledge)、ステークホルダー(Stakeholders)、稼働環境(Operational environment)、組織環境(Organizational environment)を挙げている。いずれも要求が生み出される場である。しかし、これらに限定されたものではなく、要求はどこで生まれても、あるいは、さまざまな場の要求が複合的に発生しても構わない。
むしろ、要求が発生していても、それに気付くかどうかの方が大きな問題である。つまり、要求をどのようにとらえられるかが大切だ。このため、要求エンジニアリングは学問的に学ぶよりも、具体的に要求を抱えている人物(ステークホルダー)を中心に、要求の発生源をとらえていく方が実践的である。
要求は膨張したり収縮したりする。ステークホルダーは、それぞれの視点で問題を抱えている。ドメインを広げれば、関連するステークホルダーも増えるし、環境も広がるため、要求は膨張する。逆に、ドメインや環境を狭めれば収縮することが多い。
また、要求の根底には人間の「欲求」が潜在している。要求は「顕在化した欲求」、欲求は「潜在する要求」と呼ぶことができる。両者はいずれも変化する。要求はもともと、あいまいであるだけでなく、はっきりしないまま潜在している。この「潜在する要求」の顕在化をビジネス機会としてとらえることができる。
要求の発生源が多様であるのと同じく、「抽出技法(Elicitation Techniques)」も多様である。SWEBOKは、インタビュー(Interviews)、シナリオ(Scenarios)、プロトタイプ(Prototypes)、進行役つき会議(Facilitated meetings)、観察(Observation)の5つの技法を紹介している。一般に、上記の要求の発生源「ステークホルダー」に「インタビュー」を行い、要求を抽出することが多い。もちろん、これらの技法にのみ限定されるものではない。
ステークホルダーから直接、要求を収集できない場合もある。例えば、声を発することができないうえに、コンピュータを使用するほどにも手を動かせない人には、通常の人には想像もつかないような問題や要求が山ほどあったとしても不思議ではない。しかし、その要求を自分自身では表現できない。ほかの誰かが理解し、要求として表現することができなければ、要求を出発点とするソフトウェア開発を実践することができない。
このように、声なき要求もある。このような要求は、豊かな感性や人を思いやる心を通じて初めてとらえられるものであろう。つまり、要求エンジニアリングには人間を理解することを求める尊いプロセスが内在している。やりがいのある高貴な仕事ではないだろうか。
また、問題はあるが要求を明確にできない場合もある。そのような状態では、要求を創造する方法を適用することが有効だ。そのアウトラインは以前に紹介したので、ぜひ参照してほしい(参考:「バグをなくす」には、「バグのない世界」を文章で示せ)。この分野は、通常の要求エンジニアリングに含まれていない。その手前の「要求創造」のためのエンジニアリングについてスキルを獲得することが必要である。
Copyright © ITmedia, Inc. All Rights Reserved.