RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

要件定義 とは【まとめ】

技術広報のyayawowoです。

突然ですが、システム開発を行う中で
お客様からの要求/要件漏れが発生し、スケジュール遅延が発生した経験はございますか?
(私は過去、苦労した経験があります…。)

システム開発を着実に成功させるためには、お客様の要求/要件をしっかりと引き出した上で分かりやすく成果物としてまとめることが大切です。
その大事な工程となるのが要件定義です。

本記事では、要件定義の概要・進め方だけでなく、重要ワード/ポイント、求められるスキルについてご紹介します。

◆ 関連ブログも合わせてご参考ください。
「はじめよう! 要件定義 ~ビギナーからベテランまで」から学ぶ要件定義の始め方
プロジェクトマネジメントTips 20選 ~現場から語るプロマネの極意~
PMBOK とは【まとめ】
プロジェクトマネジメント とは 【まとめ】
PdM (プロダクトマネージャー)とは 【まとめ】
仕様書 とは 【まとめ】

要件定義とは?

要件定義は、お客様(以下、ユーザー)からの要望をシステムでどのように実現し、どのように進めるかをまとめる工程です。

システム開発は、お客様の要望を実現することが重要です。
システムの開発を開始させるためには、要件定義にてお客様の要望を基に機能・非機能要件を固めた上で、具体的な進め方を決める必要があります。
そのため、ここで決めた要件を基に開発メンバーがシステム開発のインプットとするため、要件漏れがないようにしなくてはなりません。

システム開発の流れ】
 ① 要件定義
    ↓
 ② システム設計
    ↓
 ③ 開発/実装
    ↓
 ④ テスト
    ↓
 ⑤ リリース

上記システム開発の流れの通り、要件定義はプロジェクト成功の鍵となる工程なのです!

また、要件定義と良く似た言葉で要求定義があります。
要求定義は、ユーザーが出したシステム要望を整理することを指しており、要件定義を始める前に最初に行う工程となります。

要件定義の進め方

要件定義の進め方をご紹介します。

1. ユーザー要求をヒアリング

システムを実際に利用しているユーザーにヒアリングを行います。
ここではユーザーに業務課題だけでなく、システム課題に至るまで細かにヒアリングする必要があります。
何故ならば、ユーザー要求をシステム要件へと変換するのが要件定義であるため、ここでユーザー要求の漏れが発生することはプロジェクトの失敗を意味するからです。

しかしながら、プロジェクトには利用できる予算や期間があります。
ユーザー要求を漏れなく聞くことは重要ですが、限られた中でのシステム実現可能性を判断し、計画を立てることが必要です。

当社で言えば、製品力会議が要件を確認する場として設けられております。

2. 要求の深堀

ユーザーのヒアリングが完了しましたら、要求内容を深堀し、要求の整理を行います。
前述した通り、全ての要求をシステムに落とし込むのは難しいため、ユーザーと話ながら要求の優先度をつけていく必要があります。

優先順位の決め方は各社異なるかと思いますが、例えば以下のようなつけ方があるかと思います。

  • 「必須」:優先度高・・・対応必須
  • 「希望」:優先度中・・・可能であれば対応してほしい
  • 「任意」:優先度低・・・業務課題としては低いため、今後対応してほしい要件

優先度を決める際、ユーザーとの交渉に苦労することがあるかもしれません。

また、要求の深堀をしていく中でゴールの設定をするのも大切です。
システム開発のプロジェクトが発足した際、ゴールを明確にすることでユーザー/システム担当を含めた関係者の意思決定をする際の合意形成に役立てることができます。
プロジェクトは短期的なものから長期的なものまで様々かと思いますが、このゴール設定が明確になっていることで、目的からの脱線を防ぐことができます。

要求の深堀をするにあたり、当社ではヒアリングシートを用いて表面的な要望ではなく、隠れた要求を引き出せるようにしています。

3. 要件定義書の作成

要件定義の成果物は、要件定義書になります。
要件定義工程でユーザーと検討した内容を資料に分かりやすく落とし込み、ユーザーに提出します。
ユーザー側に要件定義書の内容を確認してもらい、承認を得ることでシステム開発に入れるのです。

もし要件定義書に合意した要件がないことに気づくことなく、システム開発に入ってしまうとユーザーから不満がでたり、会社間の信用関係にも影響を与えてしまう可能性があります。

要件定義書への要件漏れがないよう、しっかりと要件を整理した上で資料化していくことをおすすめします。

要件定義書にまとめる項目例は以下の通りです。
※会社によってはテンプレートも準備されていると思いますので、ご参考までにご確認ください。

◆ 要件定義書の項目例

  • システムの概要
  • システム開発の背景/目的
  • システム構成
  • 機能要件
  • 非機能要件
  • スケジュール
  • 予算(見積)

重要ワードとポイント

業務要件

業務要件とは、システム開発の対象となる業務の流れを明らかにすることです。

システム化するならこの業務で使っているこの機能を…!
と、システムを意識した業務のお話しをされる方がいらっしゃいますが、この時は業務の流れだけを考えてください。
そのため、システムに詳しい方よりも業務に詳しい方にヒアリングするのが一番だと思います。
ここで業務内容の漏れがでてしまうと、システム開発の際にユーザーシステム担当にて認識乖離が発生し、スケジュール遅延等に繋がってしまうので注意が必要です。

システムを導入する業務をどのように行うか、その中でシステムがどのような役割を果たすべきかが定まりましたら業務要件は完了となります。

システム要件

システム要件とは、業務要件にて定義した中でシステムに求める機能・性能等を定めることです。

業務要件にて定義したものを、システムの機能や、システムとしてどこまでできるかを落とし込む工程です。
システムとして「出来ること、出来ないこと」がありますのでそれを明確にし、ユーザーと認識を合わせることが大切です。

機能要件

機能要件は、システムで実装する機能のことです。

機能要件は実際にシステムを利用するユーザーにとっては、業務効率を上げていくために重要な要件になります。
業務要件にて明確にした業務の流れが、システム開発によってどのように変更されるかをユーザーに提示します。
本工程にて定義した機能要件は、後続の設計フェーズでのインプット情報となりますので抜かりなく定義ください。

なお、機能要件にて扱うものとしては以下があります。

  • 画面表示
  • 画面操作
  • 内部処理
  • 外部連携処理
  • データ構造
  • データ種類
  • 帳票出力    など

非機能要件

非機能要件は、機能要件以外のもの全般のことです。

非機能要件はクライアンから直接見えるところでないため、システム担当から提示する必要があります。
通常、情報処理推進機構(IPA)が出している「非機能要求グレード」以下6つの項目に沿って、非機能要件を定義していきます。

  • 可用性(サービス利用時間、バックアップ方法、障害発生時の復旧方法 など)
  • 性能/拡張性(データ負荷量 など)
  • 運用/保守性(バックアップ形式/頻度、運用時の役割 など)
  • 移行性(停止期間、移行期間 など)
  • セキュリティ(アクセス数、利用数 など)
  • システム環境・エコロジー(システム設置環境 など)

求められる4つのスキル

ここからは、要件定義にて求められるスキルを4つご紹介します!

コミュニケーションスキル

まず1つ目に大事なのが、ユーザーの要求を引き出すためのコミュニケーションスキルです。

ユーザーと仲が良いということではなく、如何にユーザーからの要求を細部まで引き出せるかが重要です。
また、システムを理解していないユーザーに対し分かりやすく説明するスキルも欠かせませんし、システム化できない部分に対しては、折衝することもあると思います。

要件定義においてコミュニケーションスキルは欠かせない重要スキルといえます。

資料作成スキル

ユーザーと検討した内容を、数値や文章で正確に表現する資料作成スキルが必要です。
たかが資料と侮ってはいけません。

要件定義工程の成果物である要件定義書は、ユーザーへの説明資料だけでなく、後続工程のインプットとなるものです。
要件定義書にて、曖昧な表現やユーザーに理解できない資料を作成してしまうとスケジュール遅延やコスト面に影響がでてしまう可能性があります。

これらのことから、資料作成スキルも欠かせないスキルなのです。

分析スキル

次は、分析スキルです。
ユーザー要求のヒアリングをしていく中で、業務の問題/課題を明らかにします。
システム化にて課題解決があるにもかかわらず、それを明確にできないまま後続の工程に進み、ユーザーとの検討不足や、不具合の発生ということは避けなければなりません。

また、ユーザーからの要求に対し、システム化した際の動きも分析する必要があります。
実現不可能なシステム開発をユーザーと合意してしまい、開発メンバーが苦労する…
そんなシステム開発を避けるためにも分析スキルは重要なスキルとなります。

スケジュール管理スキル

最後は、システム開発を円滑に進めるためのスケジュール管理スキルです。

限られた期間、予算の中でのシステム開発となるため全体的なスケジュール管理はとても大切です。
リリースまでのことを考えると要件定義に長く時間をかけることができません。
進捗管理やリスクコントロールを含めたスケジュール管理スキルが必要となります。

おすすめ書籍をご紹介!

要件定義として参考にすべき、おすすめ書籍をまとめてみました。

『図解即戦力 要件定義のセオリーと実践方法がこれ1冊でしっかりわかる教科書』

『はじめよう! 要件定義 ~ビギナーからベテランまで』

『システムを作らせる技術 エンジニアではないあなたへ』

まだまだ多くの書籍がありますが、今回は3冊のみを紹介しました。

◆ マネジメントにおすすめの書籍も是非ご参考ください。
tech-blog.rakus.co.jp

要件定義 まとめ

要件定義の進め方や、重要ワード/ポイント、求められるスキルはいかがでしたでしょうか?
要件定義はシステム開発においてとても重要な工程です。
ここで抜かりなくユーザーの要求を引き出し、機能にどう落とし込めるかを定義していくことで後続の工程へと繋げることができます。

システム担当は一人ではありません。
プロジェクトのメンバーと一緒に着実なシステム開発遂行に向けて、協力しながら突き進んでください。

今回ご紹介した要件定義のまとめが、これから要件定義をされる方の一助となれば幸いです。
最後までお読みいただきありがとうございました!


◆TECH PLAY
techplay.jp

◆connpass
rakus.connpass.com

Copyright © RAKUS Co., Ltd. All rights reserved.