【基本情報の実務】機能要件と非機能要件──線を引くより、測れる形にするほうが難しい
システム開発の受付担当から、依頼メモの整理について相談が届く。
「受付を楽にするクエスト管理システムを作りたくて、要望をメモにまとめました。冒険者がIDでログインして受けたいクエストを選んで申し込める、受付長が新しいクエストを登録・修正・削除できる、朝の混雑時でも画面が3秒以内に表示される、機密情報が漏れないよう通信を暗号化する、日中はほとんど落ちない。これを機能要件と非機能要件に分けて整理したいのですが、どこで線を引けばよいでしょうか?」
線そのものは、はっきりしている。何をするかが機能要件、どのように動くかが非機能要件である。基本情報の知識がここで力になるのは、分けたあとに待っている仕事が見えたときだ。分類は始まりで、本体はそのあとにある。この記事では、そこまで整理する。
まず結論:5つを分けると、状態が3つに割れる
| 要望 | 区分 | いまの状態 |
|---|---|---|
| 冒険者がログインして、クエストを選んで申し込める | 機能 | このまま使える |
| 受付長がクエストを登録・修正・削除できる | 機能 | このまま使える |
| 朝の混雑時でも、画面が3秒以内に表示される | 非機能 | 条件が足りない |
| 機密情報が漏れないよう、通信を暗号化する | 非機能 | 手段で書かれている |
| 日中はほとんど落ちない | 非機能 | 測れない |
分類そのものはすぐ終わる。迷うところがほとんどない。
問題は右の列である。機能の2つはこのまま進められるのに、非機能の3つは、3つとも手当てが要る。
これはたまたまではない。機能は「できる/できない」で確かめられるが、非機能は程度の話だからである。
程度は、言葉のままでは受け渡せない。だから非機能のほうにばかり、手当てが集まる。
測れない非機能は、要件になっていない
「日中はほとんど落ちない」——気持ちははっきり伝わる。それでも要件としては働かない。
理由は守れたかどうかが決まらないことである。
3分止まったとき、「ほとんど落ちていない」と言う人と「落ちた」と言う人が出る。どちらも間違っていない。決め手が無いためである。
決め手が無い要件はあとで揉める。しかも揉めるのは、たいてい何かが起きたあとである。
測れる形にするには3つ要る。
- 数値——どこまでなら良いのか
- 条件——いつ、どの操作について言っているのか
- 測り方——誰が、何で測るのか
3つ目が抜けやすい。数値と条件を決めても、測り方が無いと、やはり決まらない。
そして「3秒以内」も、実はまだ足りない。数値はあるが、条件と測り方が無い。何人が同時に使っているときの、どの画面か。どこからどこまでを3秒と数えるのか。
手段で書かれた要望は、目的に戻す
「機密情報が漏れないよう、通信を暗号化する」には、目的と手段の両方が入っている。
- 目的——機密情報が漏れないこと
- 手段——通信を暗号化すること
このまま要件にすると手段のほうが要件になる。暗号化すれば達成、という形になる。
ところが通信の暗号化は、漏れる経路の1つに効く手当てである。ほかの経路には効かない。
たとえば誰がどの情報を見られるか、記録に何が残るか、やめた人の権限がいつ切れるか——これらは暗号化と関係がない。
だから目的に戻して、そこから手段を並べ直す。暗号化は、その中の1つとして残る。
相手が手段で書いてきたのはその手段しか思い浮かばなかったからではなく、そう聞いたことがあるからであることが多い。戻して確かめると、必要なものが増える。
要望に手段が混ざっていたら、目的に戻す——これはこの案件に限らず効く。
非機能は、費用と対でしか決まらない
ここが機能要件との、いちばん大きな違いである。
機能要件は要るか、要らないかで決まる。「クエストを削除できる」は、要るなら作る。
非機能要件はどこまでやるかで決まる。そして、上げるほど費用が増える。
止まらない度合いを上げるには、予備の仕組みを用意することになる。速さを上げるのも同じである。
だから「どのくらい止まらないほうがよいですか」と聞いても答えは出ない。止まらないほうがよいに決まっているからである。
聞き方を変える。「止まったとき、何が起きますか」である。
- 朝の受付が10分止まると、どうなりますか
- 紙で受け付けて、あとから入れることはできますか
- どのくらい止まると、業務が回らなくなりますか
この答えから必要な水準が決まる。紙で受けられるなら、止まらない度合いにお金をかけなくてよい。
非機能要件は、技術ではなく業務の話から決まる。
整理の例
クエスト管理システム 要件の区分(第1版)
機能要件(何をするか)
番号 要件 状態 機能1 冒険者が、識別番号でログインする 確定 機能2 冒険者が、クエストを選んで申し込む 確定 機能3 受付長が、クエストを登録・修正・削除する 確定 非機能要件(どのように動くか)
番号 要件 状態 非機能1 画面が3秒以内に表示される 条件を確認中 非機能2 機密情報が漏れない 手段を整理中 非機能3 日中、業務が回る状態を保つ 水準を確認中 お聞きしたいことが3つあります
1. 非機能1「3秒以内」について
- どの画面でしょうか。(一覧、申込、すべて)
- 朝の混雑時は、何名ほどが同時にお使いになりますか。
- どこからどこまでを3秒と数えますか。(押してから、表示が終わるまで、など)
この3つが決まると、できたかどうかを、双方が同じように判断できます。
2. 非機能2「機密情報が漏れない」について
いただいたメモには「通信を暗号化する」とありました。これは目的(漏れないこと)に対する手段の1つです。
ほかにも次のような経路があります。あわせてご相談させてください。
- 誰が、どの情報を見られるか
- 操作の記録を、どこまで残すか
- 退職・異動された方の権限を、いつ止めるか
通信の暗号化は、そのうえで実施します。
3. 非機能3「ほとんど落ちない」について
止まらない度合いは、上げるほど費用が増えます。そこで、必要な水準を業務のほうから決めさせてください。
- 朝の受付が10分止まると、どうなりますか。
- 紙で受け付けて、あとから入力することはできますか。
- どのくらい止まると、その日の業務が回らなくなりますか。
紙で受けられるようでしたら、ここに費用をかけずに済みます。
状態の列を付けた。分類の表を「終わったもの」に見せないためである。
非機能3の書き方を「業務が回る状態を保つ」に変えた。「ほとんど落ちない」のままだと、確定したように見える。
質問1に「双方が同じように判断できます」と添えた。細かく聞く理由になっている。
質問2では「手段の1つです」と明示した。否定していない。最後に「そのうえで実施します」と書いている。
質問3は業務の言葉だけで聞いた。技術の言葉が1つも入っていない。
作り方の手順
- 何をするか/どのように動くかで分ける。
- 分類で終わらせない。状態の列を付ける。
- 非機能を1つずつ点検する。
- 測れるかを見る。数値・条件・測り方。
- 数値があっても、条件と測り方を確かめる。
- 手段で書かれていないかを見る。
- 目的に戻して、手段を並べ直す。
- 元の手段を否定しない。そのうえで実施する、と書く。
- 費用が動くものを見分ける。
- 業務の言葉で聞く。止まったとき何が起きるか。
この場面で効いている基本情報の知識
- 機能要件——何をするか。要るか要らないかで決まる
- 非機能要件——どのように動くか。どこまでやるかで決まる
- 測定可能性——数値・条件・測り方がそろって、はじめて要件になる
- 目的と手段——手段で書かれた要望は、目的に戻す
知識そのものより、分けたあとに残る仕事を見つけられることが、この場面で効いている。
整理で外したくないポイント
- 線引き自体は難しくない。難しいのは、そのあと。
- 手当てが要るのは、たいてい非機能のほう。程度の話だから。
- 測れない非機能は、要件になっていない。
- 守れたか決まらないと、あとで揉める。
- 数値・条件・測り方の3つが要る。
- 「3秒以内」も、まだ足りない。条件と測り方が無い。
- 手段で書かれた要望は、目的に戻す。
- 元の手段を否定しない。並べ直したうえで残す。
- 非機能は、上げるほど費用が増える。
- 水準は、業務の話から決まる。技術の言葉で聞かない。