要件定義の進め方

システム開発の大炎上を防ぐために、上流工程(前工程)に位置する「要件定義」について、考えていくブログです。

要件定義書の作り方
PDCAサイクルではなく、PDCサイクルを回そう
あるべきV字モデルについて整理した
スコープを決めてから、QCDの議論をしよう

要件定義における「定義」とは何か?

日本語における「定義」の辞書的な意味

要件定義における「定義」に関して確認しておく。まずは、goo国語辞書で確認することとする。

[名](スル)
1 物事の意味・内容を他と区別できるように、言葉で明確に限定すること。「敬語の用法を―する」
2 論理学で、概念の内包を明瞭にし、その外延を確定すること。通常、その概念が属する最も近い類と種差を挙げることによってできる。

出所:定義(ていぎ)の意味 - goo国語辞書

上記の説明によると、システム開発において定義という言葉を使う場合は、後者の意味合いで使われているであろう。システムの要件を定義するということは、数ある要望の中からどの機能をシステムとして実現するのか/しないのかを決める作業のことを意味する。やると決めたものはやる。やらないと決めたものはやらない。これはつまり、境界領域を定める作業だ。この点に関しては、英語の表現も同様だ。

英語における「要件定義」の辞書的な意味

英語で要件定義といった場合、requirements definitionと表現される。requirementsに関してdefineをしていくということとなるが、このdefineという単語の語源をたどると、de(完全に)+finis(境界を決める、終わらせる)という意味(下記図参照)となる。

出所1:https://ejje.weblio.jp/content/define

出所2:https://www.etymonline.com/word/define

日本語に訳すと、「完全に境界を決めてしまう」といったところであろう。この言葉は非常に強い言葉である。アメリカは契約社会で分厚い契約書を読まされるといったことをしばしば聞くが、彼らのバックグラウンドには、常に物事をはっきりと決めたい、という意思があるのであろう。その言葉がrequirements definitionという単語にも表れているように思われる。

f:id:req-definer:20220122101850j:plain

defineの意味

完全に決めるのが要件定義

開発現場では、要件定義を後回しにしようという動きがたびたび出てくる。顧客が決めようとしないからだ。しかしながら、筆者としては、この活動をできるだけ後回しにすべきではないと考えている。決まらないのではなく、決めなければならない。決めるために何をすればよいのか、顧客と一緒に考えねばならない。要件定義というのは、ビジネスとしての意思決定である。正しく意思決定をするために丁寧に情報を収集し、責任を持って決める。これが、要件定義のあるべき姿と考えている。

顧客は何を作りたいのかわかっていないから、作ってから考えたいかもしれない。が、この考えは望ましくない。要件定義とは、課題を定義するということだ。課題を定義するには、問題を明確化しなければならない。問題を明確にするには、顧客のあるべき姿と現状を整理しなければならない。逆に言えば、あるべき姿と現状を整理することで、要件定義は可能となる。

顧客は何を作りたいのかわかっていないという言葉は、「あなた、自分のビジネスを理解していないですね」といっているようなもんだ。自分のビジネスを理解せずに儲けることは難しい。顧客は自分のビジネスを理解しているはず(例外もあるが)である。その構造を、丁寧に再確認することで、課題を定義し、要件を定義できるはずである。

結論:要件定義では、完全に決める努力をしよう