システム開発の要件定義【現役エンジニアが解説】
今回は、システム開発の要件定義について、現場の視点で簡単に解説していきます。
要件定義とは
要件定義とは(ユーザの)要望をまとめる最初の開発工程です。
いわゆる上流工程と呼ばれる工程であり、コーディングより難易度が高いです。
当然ですが、要件定義をおざなりにすると次の工程に進むことができないためです。
機能要件と非機能要件
要件定義の要件は機能要件と非機能要件に分けられます。
機能要件は、サーバ等の構成や各種機能といった要件です。
非機能要件は、利用人数と増加量の前提等の性能・拡張性要件や稼働時間等の可用性要件、バックアップ等の運用要件、暗号化等のセキュリティといった要件です。
コミュニケーションが重要
要件をまとめるには打ち合わせが必須となります。
打ち合わせの場で実現の可否も含めて、機能要件と非機能要件をまとめていくことになります。
これには雑談も交えたコミュニケーション能力が必須ですので、エンジニアの仕事をパソコンに向かってコーディングをすることだと考えていた方にとっては少し想定外かもしれません。
しっかり行わないと戻り工数が発生
要件定義以降の工程は要件定義で決めた要件をベースに進めていくことになります。
そのため、ふわっとした要件のままでは後々変更になる可能性が高く、戻り工数が発生します。
戻り工数が発生しても、追加の料金を頂けない等、開発者側にとって大きなリスクになるため、打ち合わせの内容は議事録にきちんと残すことで揉め事を未然に防ぐように備えておきます。