非機能要件として、何を決めておきますか

性能、可用性、セキュリティ、拡張性、運用と保守、費用を、確かめられる形で先に決めておく、と答える問い。決めないと「遅い」「落ちた」があとで揉める原因になる、まで言えると強いです。

答えてみる

面接官に「非機能要件として、何を決めておきますか」と聞かれたつもりで、答えを見る前に自分の言葉で答えます。

声に出して答えた人は「書かずに答えを見る」で開けます。

解説を読む

聞かれ方から関連するコースまで、この問いの解説を全部ここに置いています。

こう聞かれます

  • 「非機能要件として、何を決めておきますか」
  • 「機能はできているのに、お客さんから『遅い』と言われました。どこで防げましたか」
  • 「どのくらい止まらずに動けばよいかは、どう決めますか」

面接官が見ている点

  • 言われた機能を作るだけでなく、ビジネスに要る品質まで一緒に決められるか
  • 性能、可用性、セキュリティ、拡張性、運用、費用を漏れなく挙げられるか
  • 「速く」ではなく、確かめられる数字で決めるべきだと分かっているか
  • 高い目標ほど費用がかかる、という引き換えを相手に示せるか

短い答え

  • 性能、可用性、セキュリティ、拡張性、運用と保守、費用の 6 つを、作り始める前に決めます。
  • 機能と違って目に見えにくいので、決めておかないと、出したあとで「遅い」「落ちた」と揉める原因になるからです。
  • ただし目標を高くするほど費用と手間が増えるので、ビジネスにどこまで要るかを相手と決めます。

少し詳しい答え

決めておく 6 つ

非機能要件は、何ができるか (機能) ではなく、どれだけ良く動くかの決まりです。

  • 性能画面の応答時間、同時に使う人の数、ピーク時の量
  • 可用性どれだけ止まらずに動くか (稼働率)、止まったら何時間で戻すか (復旧時間)、データをどこまで戻せればよいか
  • セキュリティ誰が何を見られるか、個人情報の扱い、記録 (ログ) をどれだけ残すか
  • 拡張性利用者や量が増えたとき、どこまで今の作りで耐えるか
  • 運用と保守 監視、障害の連絡の流れ、更新の頻度、誰が面倒を見るか
  • 費用毎月のサーバー代や外部サービスの料金を、どこまで払えるか

確かめられる形にする

「速くしてほしい」では、出したあとに達成したかを判断できません。「よく使う画面は何秒以内に表示する」「月の稼働率をどれだけにする」のように、測れる形で書きます。測る方法 (どの記録を見るか) も一緒に決めておくと、あとで食い違いません。

YAML

performance:
  list_page: "N 秒以内"
availability:
  monthly_uptime: "要相談"
  recovery_time: "N 時間以内"
cost:
  monthly_budget: "上限を決める"

数字はお客さんと決める物なので、ここでは置き場だけを示しています。

トレードオフ

稼働率を上げるには、サーバーを複数の場所に置く、夜間も人が対応する、などが要り、費用が大きく増えます。社内の数人が使う管理画面に、決済の画面と同じ目標は要りません。ビジネスへの影響 (止まったら売上がいくら減るか) と費用を並べて、相手に選んでもらいます。最初は控えめに決め、使われ方が見えてから上げる、という進め方もあります。

よくある間違い

  • 機能だけ聞いて終わる性能や可用性を決めないと、作り直しや揉め事のもとになります
  • 「なるべく速く」「止まらないように」と書く測れないので、達成したかを誰も判断できません
  • 全部を最高の水準にする費用と手間が跳ね上がります。画面や機能ごとに重さを変えます

深掘りの問い

  • 「稼働率と復旧時間は、どう決めますか」止まったときにビジネスがどれだけ困るかを相手に聞き、それに見合う費用と並べて決める、と答えます
  • 「決めた目標を守れているかは、どう確かめますか」応答時間やエラーの割合を計測し続け、目標を下回ったら知らせが届くようにする、と答えます
  • 「お客さんが費用を出せないと言ったら」目標を下げる所と、下げられない所 (決済、個人情報) を分けて提案する、と答えます

確認日 2026年10月24日

技術面接問題の一覧へ戻る