📝

【インフラエンジニア向け】要件定義って何するの?設計構築しかやってこなかった自分が学んだこと

に公開

はじめに

私は約2年間、AWSの設計構築に携わってきました。

しかし、担当していたのは詳細設計と構築作業がメイン。12月から要件定義工程に着手することになり、これまでの経験だけでは対応しきれない壁にぶつかりました。

この記事では、設計構築フェーズしか経験のなかったインフラエンジニアが、要件定義に初めて取り組む中で学んだことをまとめます。


要件定義に対する「無知だった頃」のイメージ

設計構築しかやってこなかった私は、要件定義についてこんなイメージを持っていました。

「インフラって要件定義に関係なくない?」

「アプリチームが決めてくれた要件に従って、インフラ環境を用意するだけでしょ」

つまり、インフラは要件定義にあまり関わらないと思っていたんです。アプリの人が要件を決めてくれるから、それに従う。作れないなら「別の方法でやりますね」と微調整する程度だと。

前職がアジャイル開発だったこともあり、要件定義という工程自体をあまり意識していなかったのかもしれません。


実際にやってみて気づいたこと

いざ要件定義をやろうとしたとき、最初に思ったのは**「知識がないのに無理じゃん」**でした。

  • テンプレートもないのに、どうやって進めるの?
  • Webの記事をかき集めて「これも考えなきゃ」と定義項目を洗い出すしかないの?

なぜこんな考えになっていたのか?

構築フェーズでは、設計書という「答え」がすでにある状態からスタートします。分からないことがあればピンポイントでググれば解決できる。

でも要件定義は違います。お客さんの要望から、ゼロベースで設計に落とし込む必要がある。一点だけ調べればいいわけではないのです。

そして気づいたのは、どんな分野にも先人たちが作り上げた体系があるということ。要件定義にも、それがありました。


要件定義の目的とは

要件定義の目的は、シンプルに言えば**「お客さんとSE間での認識のズレをなくすこと」**です。

  • お客さんは非エンジニアであり、要望も「ふわっと」していることが多い
  • 要件定義では、それを契約に落とせるよう具体的な数字にする

機能要件と非機能要件

要件定義は大きく2つに分かれます。

機能要件

  • 見た目、使いやすさ
  • アプリの利用目的に合った機能は何か

非機能要件

  • アプリが継続的に利用できるための仕様
  • 監視や運用の方針を決定する
  • インフラエンジニアが主に関わるのはこちら

要件定義の進め方

要件定義は、契約後の対応になります。契約時には想定しきれなかった点も、この段階で明らかにする必要があります。

基本的な流れは以下の通りです。

  1. お客さんから要望書をもらう
  2. こちらは提案書と見積もりを出す

IPAのチェックリストを活用する

「いきなり要件定義やって」と言われたとき、「絶対に考慮漏れが発生する…」と不安になりました。

そんなとき知ったのが、IPAが公開しているチェックリストです。

  • 約500ページと分厚いが、体系的な知識が網羅されている
  • これを基盤に進めていくと、抜け漏れを防げる
  • 要件定義以降のフェーズでも必要になる内容が含まれている

ただし、項目が多すぎて、それぞれ何を表しているのか理解するには知識が必要。自分の言葉でまとめながら進める必要がありそうです。

ヒアリングシートの活用

SIerなどには独自のヒアリングシートがあることが多いです。それに従ってお客さんに尋ねていくのも有効です。

ただし注意点として、ヒアリングシートと要件定義書は必ずしも1対1で対応しないことがあります。ヒアリングシートには、要件定義以降のフェーズで必要になる情報も含まれているからです。


学びと気づき

  • お客さん側にも要望資料のようなものがあり、書いてくれることもある。ただし、それだけでは足りない可能性あり
  • 要件定義の参考資料には、提案書も含める
  • 要件定義書も会社独自の雛形がある可能性がある
  • 前職でもヒアリングシートはあったが、サーバのスペックや各リソースのパラメータをもらっていたから、あれは詳細設計のヒアリングシートだったのかも
  • ある程度のIT・AWSの知識がないと提案できない

まとめ

設計構築しか経験のなかったインフラエンジニアが要件定義に取り組んで学んだことをまとめました。

  • 要件定義の目的は「お客さんとSEの認識のズレをなくす」こと
  • インフラエンジニアは主に非機能要件に関わる
  • IPAのチェックリストを活用すると抜け漏れを防げる
  • 先人たちが作り上げた体系やフレームワークを活用することが大切

要件定義は「ゼロから考える」のではなく、既存の知見を活用しながら、お客さんの要望を具体化していく作業だと理解できました。

同じように要件定義に初めて取り組むインフラエンジニアの参考になれば幸いです。

Discussion