『みんなの転職「体験談」。』
『みんなの転職「体験談」。』

『みんなの転職「体験談」。』は、20~50代社会人男女の、 「転職したいけれど、迷いや不安で行動を踏み出せない」を 解決し、
より良い将来を目指した一歩を踏み出していける為の、 生々しい体験談情報やナレッジを提供するWebサービスです。

MENU

SEの「要件定義」を適切に作れるようにするには?ヒアリング・ 進め方のコツを解説

[最終更新日]2024/08/16

このページには広告リンクが含まれています
みんなの転職「体験談」。は、⼀部の企業とアフィリエイトプログラムを提携し情報提供を⾏っております。 当サイトを経由してサービス利⽤があった場合、掲載企業からアフィリエイト報酬を受け取ることがありますが、提携の有無などによって当サイトでのサービス評価が影響を受けることはありません。 また当サイトで得た収益に関しては、閲覧頂く皆さまにより役⽴つ情報をご提供できますよう、コンテンツ品質の向上に還元しております。
SEの「要件定義」の進め方 顧客にフィットするシステム作りに大切!

システム開発において、要件定義は重要です。

この業務に初めて携わる人のなかには、どのように進めればよいか悩んでいる人も多いでしょう。また設計とどう異なるのか、違いを知りたい人もいるはずです。

目次

1)そもそも、SEの行う「要件定義」とは?

まずSEの業務である「要件定義」とはなにか、2つの観点から確認していきましょう。

システムに対する顧客の要望をまとめる作業

要件定義とは…システムに対する顧客の要望をまとめる作業

要件定義は、顧客からシステムに関する要望を聞き取ったうえで、盛り込むべき機能やスピードなどの性能を決める作業です。
単に顧客の要望をまとめるだけでなく、以下の事項も踏まえた検討が必要です。

項目 チェックポイントと説明
顧客の要望に矛盾や無理がないか
  • 要望の整合性:顧客の要望同士が矛盾していないか確認する。例えば、システムの高速性と高いセキュリティレベルの両立が難しい場合、どちらを優先すべきかを明確にする。
  • 要望の現実性:要望が技術的または予算的に実現可能かどうかを検討する。実現不可能な要望については、顧客と相談し代替案を提案する。
実務において本当に必要な機能か
  • 業務フローの理解:顧客の業務フローを詳細に理解し、本当に必要な機能を特定する。例えば、顧客が希望する機能が現行の業務フローに合致しない場合、業務フローの変更を提案する。
  • 必要性の優先順位:各機能の必要性と優先順位を明確にする。重要度の高い機能を優先的に実装し、後回しにできる機能は後日追加する計画を立てる。
希望する納期までに本稼働が可能か
  • 納期の妥当性:顧客の希望する納期に対して、実現可能かどうかを検討する。リソースの確保や作業量の見積もりを行い、納期を再調整する必要がある場合は、顧客に早めに通知する。
  • テスト計画の確認:開発から本稼働までのテスト計画を確認し、十分なテスト期間が確保されているかどうかを確認する。不具合の発見・修正のためのバッファ期間も考慮する。

要件定義で決定された内容は、設計や実装、テストなど、システム開発におけるすべての工程の基準となります。

要件定義の段階で、顧客としっかり認識を合わせておくことが重要です。これにより手戻りやトラブルを防ぐだけでなく、顧客満足度を高める効果も期待できます。

要件定義と基本設計(システム設計)との違い

要件定義と基本設計の違い■基本設計は、要件定義の情報を元に行う ■要件定義は実装する機能を選ぶ工程 ■基本設計は実装する方法やUIなどを決める工程

要件定義と似た言葉に「基本設計」があります。
基本設計や要件定義の一部分であり、以下の相違点があります。

項目 要件定義 基本設計
定義 顧客の要望をまとめ、実装する機能を選ぶ工程。性能やスケジュール、セキュリティなども議題となる。 要件定義の情報を元に、実装する方法やUI、操作方法や表示内容、画面の遷移などを機能ごとに決める工程。
対象 システムに対する顧客の要望や必要な機能 各機能の具体的な実装方法やユーザーインターフェース
出力物 要件定義書、要求仕様書 基本設計書、画面設計書、操作マニュアル
目的 顧客のニーズを明確にし、システムに必要な機能を決定する 要件定義に基づいて、具体的な設計を行い、実装可能な形にする
内容 実装する機能の選定、性能要件、スケジュール、セキュリティなど UIデザイン、画面遷移図、データベース設計、操作方法の詳細

最も大きな違いは、基本設計は、要件定義の情報をもとにして行われることです。

そのため、要件定義ではシステム全体が議題となり、一方で基本設計では、単一または複数の機能ごとに打ち合わせを進める場合が多いです。

2)要件定義での決定を要する5つの項目

要件定義での決定を要する項目には、以下の5点が挙げられます。

いずれも開発プロジェクトを成功に導くだけでなく、現場や業務効率化に役立つシステムをつくるうえでも欠かせない項目です。各項目について、詳しく確認していきましょう。

システム化の目的

POINT1 システム化の目的 「顧客からの要望の高い、新しい業務に対応する」「業務を30%効率化する」など

システムの導入によって解決できる課題や、実現できる要望などについて触れていきます。「顧客から要望の高い、新しい業務に対応する」「業務を30%効率化する」などは、代表的な例です。

システム化の目的は、プロジェクトにおける羅針盤のような役割を担います。目的をあいまいにすると、良いシステムにはなりません。可能であれば数値も活用し、なるべく簡潔・明快に記述するよう心がけましょう。

システム化の目的の代表的な例と、要件定義のポイント

システム化の目的 要件定義のポイント
顧客からの要望の高い、新しい業務に対応する 新しい業務に必要な機能やプロセスを具体的に明示し、顧客の要望を正確に反映する。
業務を30%効率化する 現状の業務プロセスを分析し、効率化のための具体的な機能や改善点を数値で示す。
データ管理の精度を向上させる データの入力・管理プロセスを標準化し、エラーを減らすためのチェック機能を盛り込む。
コスト削減を実現する コスト削減効果を見込める具体的な機能やプロセスを明確にし、コスト削減の目標値を設定する。
顧客満足度を向上させる 顧客のフィードバックを取り入れた機能やサービス改善策を取り入れ、顧客満足度向上の指標を定める。

システムの概要、構成

POINT2 システムの概要、構成 ■業務要件:システムを活用するエンドユーザーの視点で作る ■システム要件:ITエンジニアの視点で作る

システムの概要や構成を決めることは重要です。これらは、業務要件とシステム要件の2つに分けられます。

要件の種類 説明 具体的な例
業務要件 業務を遂行する立場で、必要となる要件を決める。システムを活用するエンドユーザーの視点で作る。
  • 顧客情報の一元管理:営業担当者が顧客の連絡先、購入履歴、問い合わせ履歴を一つのシステムで管理できる。
  • 在庫管理のリアルタイム更新:倉庫管理スタッフが在庫情報をリアルタイムで確認・更新できる。
  • 売上レポートの自動生成:経営陣が月次売上レポートを簡単に作成・閲覧できる。
システム要件 業務要件を満たすうえで、システムが備えるべき要件を決める。ITエンジニアの視点で作る。
  • データベースの冗長化:顧客情報を一元管理するための高可用性のデータベースシステムの設計。
  • リアルタイム更新機能:在庫管理システムでリアルタイムのデータ反映を実現するためのAPIとバックエンド処理の実装。
  • レポート生成ツール:売上データを元に自動的にレポートを生成するためのデータ集計・分析ツールの導入。

上記をしっかり決定することは、後々のトラブル防止に役立ちます。

実装する機能(機能要件)

POINT3 実装する機能(機能要件) 顧客と合意を取ることが必須。顧客の要望すべてを実装する必要はない。

機能要件とは、システムに実装される機能を指します。最低限開発すべき機能となるため、顧客と合意を取ることが必須です。

もっとも、顧客が求めるすべての機能を実装する必要はありません。ときには顧客の要望自体が、矛盾を含んでいるかもしれません。要望を整理したうえで、実装する機能を決めましょう。また短期間での開発を要する場合は、機能の優先順位をつけることもあります。

機能要件の例(ECシステムの場合)

機能 説明
ユーザー管理機能 ユーザーの登録、編集、削除、ログイン/ログアウト機能。役割ごとの権限設定を含む。
商品管理機能 商品の登録、編集、削除、在庫管理機能。カテゴリーごとの分類も可能。
注文管理機能 注文の作成、編集、キャンセル、ステータス更新機能。注文履歴の表示も含む。
レポート生成機能 売上データ、在庫データ、顧客データに基づいたレポートの自動生成機能。PDFやExcel形式での出力も可能。
通知機能 システムイベントに基づいたメールやプッシュ通知の送信機能。

求める性能やセキュリティ(非機能要件)

POINT4 求める性能やセキュリティ(非機能要件) スピードなどの性能面や保守・運用面 情報セキュリティに関する事項など

顧客が求める事項は、機能だけにとどまりません。スピードなどの性能面や保守・運用面は、代表的な項目です。また近年では情報セキュリティに関する事項も、要件に含まれるようになりました。

これらの事項も、要件定義の時点で決める必要があります。もし顧客が認識していない場合はSEから適切な内容を提案し、顧客の納得を得ることがトラブルを防ぎます。

非機能要件の例(ECシステムの場合)

非機能要件 説明
性能要件 システムのレスポンス速度、同時ユーザー数、トランザクション処理能力など。例:ピーク時に1秒以内のレスポンス、同時接続ユーザー数1000人、毎秒100トランザクション処理能力。
可用性要件 システムの稼働率、障害対応の迅速性、バックアップの頻度など。例:99.99%の稼働率、障害発生時の1時間以内の復旧、日次バックアップ。
拡張性要件 将来的な機能追加やユーザー増加に対応できる設計。例:ユーザー数が2倍になっても性能が落ちないように設計、モジュール化されたアーキテクチャ。
保守性要件 システムの保守・運用のしやすさ、エラーログの管理、更新の容易さなど。例:月次のメンテナンス時間を2時間以内に抑える、エラーログの自動収集と通知、容易に適用できるパッチ管理。
セキュリティ要件 データの暗号化、認証・認可、監査ログ、コンプライアンス対応など。例:SSL/TLSによる通信の暗号化、二要素認証の導入、全操作の監査ログの記録、GDPR準拠。

導入・移行計画、スケジュール、人員体制

POINT5 導入・移行計画、スケジュール、人員体制 システムを納期通りに完成できる根拠を示す

顧客がIT企業に発注するシステムには、必ず本稼働させたい時期があります。その目標に向かって確実に開発業務を進め、無事にリリースしなければなりません。顧客はシステム開発を任せてよいか、確証を持てる情報が欲しいと思うことでしょう。

このため開発を担当する企業は、システムを納期通りに完成できる根拠を示す必要があります。導入や移行の計画、スケジュール、人員体制は、その裏付けとなるもの。根拠のある情報を記入することで、貴社の信頼も高まります。

導入・移行計画、スケジュール、人員体制のまとめ方の例

要素 内容
導入計画
  • 段階的導入:〇月〇日にテスト環境での運用を開始し、〇月〇日に本番環境に移行。
  • トレーニング:〇月〇日にユーザー向けの操作トレーニングを実施。
移行計画
  • データ移行:〇月〇日に既存システムから新システムへのデータ移行テストを実施し、〇月〇日に本移行を完了。
  • 移行期間:〇月〇日のシステム切り替え時に、ダウンタイムを2時間以内に設定。
スケジュール
  • プロジェクト開始:〇月〇日にプロジェクトを正式に開始。
  • 主要マイルストーン:〇月〇日に要件定義完了、〇月〇日に基本設計完了、〇月〇日に詳細設計完了、〇月〇日にテスト開始、〇月〇日にリリース準備完了。
  • リリース日:〇月〇日にシステムを正式に稼働開始。
人員体制
  • プロジェクトマネージャー:A氏が担当。
  • 開発チーム:B氏、C氏 D氏、F氏 G氏が要件定義、設計、開発、テストを担当。
  • サポートチーム:H氏、I氏が導入後のサポートとメンテナンスを担当。
  • 顧客担当者:J氏が顧客側の窓口として要件の確認や調整を担当。

◇ ◇ ◇

ここまでの内容をお読みになられて、「今ひとつイメージが掴めない…」という人は、以下の実際に公開されている要件定義資料も見ておくと良いでしょう。 イメージの形成に役立てられると思います。

要件定義書には、決まったフォーマットや見出し構成というものはありません。
依頼元の顧客、そして開発チームと開発要件をしっかり共有して齟齬のないようにしていくことを第一目的に、どのようなフォーマットにしていくかを上記「5つの項目」を参考に定めていくと良いでしょう。

3)SEの要件定義を進めるための3つのステップ

SEが要件定義をスムーズに進めるには、3つのステップを確実に実行することが重要です。

いずれも顧客にフィットしたシステムをつくるうえで、重要なポイントです。
各ステップで何を行えばよいか、詳しく確認していきましょう。

STEP1 顧客の要求を詳しくヒアリングする

STEP1 顧客の要求を詳しくヒアリングする

要件定義の仕事はシステムに求める項目を、顧客から詳しくヒアリングすることが第一歩となります。
顧客は利用中のシステムに関して、さまざまな不満を持っていることも多いでしょう。新しいシステムへの要望も含めて、じっくり聞き取りましょう。

もっとも顧客が語らなかった項目であっても、重要な事項が隠されているケースは多いです。加えて聞き取りした内容をそのまま受け取るのではなく、「根本的な問題は何か?」という点を意識しながら解決策を考えることも重要です。

SEはシステム開発のプロとして積極的に質問し、疑問点を解決する姿勢も求められます。

このため、顧客との打ち合わせは必須です。但し事前にヒアリングシートに記入してもらうことは、密度の濃い打ち合わせにできるため有効です。

要件定義のヒアリングシートの質問項目の例

項目 質問
基本情報
  • 会社名:
  • 担当者名:
  • 連絡先(電話・メール):
  • システム導入予定日:
現行システムの利用状況
  • 現在ご利用中のシステムはありますか?
    – はい
    – いいえ
  • 現在のシステムの利用目的を教えてください。
  • 現行システムで満足している点、不満に感じている点を教えてください。
  • 現行システムの主な問題点は何ですか?
新システムへの要求
  • 新しいシステムに期待する主な機能は何ですか?
    – 例:顧客管理、在庫管理、販売管理、レポート生成
  • 新しいシステムで改善したい業務プロセスや作業内容を教えてください。
  • 新しいシステムに求める性能要件は何ですか?
    – 例:レスポンス速度、同時接続ユーザー数
  • 新しいシステムに求める可用性要件は何ですか?
    – 例:稼働率、障害発生時の対応時間
  • 新しいシステムに求めるセキュリティ要件は何ですか?
    – 例:データ暗号化、認証・認可、監査ログ
  • 新しいシステムで対応してほしい規制や基準があれば教えてください。
    – 例:GDPR、ISO27001
データ移行
  • 現行システムからのデータ移行が必要ですか?
    – はい
    – いいえ
  • データ移行が必要なデータの種類と量を教えてください。
  • データ移行に関して特別な要件があれば教えてください。
運用・保守
  • 新しいシステムの運用開始後に必要なサポートや保守サービスは何ですか?
  • 運用・保守のために特別なツールや手順が必要ですか?
スケジュールと予算
  • 新システムの導入希望時期はいつですか?
  • 予算について教えてください。
その他
  • その他に特別な要求や要望があれば教えてください。

STEP2 要求の細分化

STEP2 要求の細分化

顧客から要求事項を聞き取った後は、利用中のシステムにおける課題や新しいシステムに求める要求事項を整理し、機能の実現に向けて検討します。

システム化が難しい場合は代替案を、業務プロセスの改善を要する場合は適切なアドバイスを行えるとよいでしょう。

またシステム開発の現場では、追加の要求やスケジュール遅延などの事態もよく発生します。
顧客から提示された要求事項に対して順位付けをすることも、この事態に備えるうえで重要です。

少なくとも「必須の機能」と「あれば良い機能」の2つに分ける作業は、この段階で実施しておきましょう。

これにより要望事項が追加された場合でも「あれば良い機能」の一部を後回しとすることで、顧客のニーズに対応できます。

STEP3 要件定義書の作成

STEP3 要件定義書の作成

要求のヒアリングと細分化が終了したら、打ち合わせ等で合意済の事項を要件定義書に記し、記録に残しましょう。以下の項目は、記すべき主な事項です。

  • システムの目的
  • システムの概要
  • 搭載する機能
  • 機能要件や非機能要件
  • スケジュール
  • 開発体制

要件定義書は、後工程の基礎になる書類です。もし誤りや抜けがあると、プロジェクトが失敗する原因となりかねません。
ときには膨大な量になる可能性もありますが、細部まで漏れなく正確に記すよう心がけましょう。

4)SEの要件定義に必要な3つのスキル

要件定義で得た情報を顧客にフィットしたシステムづくりに活かすためには、以下に挙げる3つのスキルが必要です。

いずれもコミュニケーションスキルやプロジェクトマネジメントなど、IT技術以外のスキルが問われています。上記に挙げたスキルが必要な理由を、順に解説していきます。

顧客の意図を読み取るヒアリング力、提案力

SKILL1 顧客の意図を読み取るヒアリング力・提案力 ■顧客は要望を100%伝えきれない場合も多い。・要望を文字にする際に表現しきれない部分が生じる ・より簡単に課題を解決できる方法を知らない

要件定義の段階で顧客の要望を丁寧に聞き取ることは重要ですが、それだけでは不十分です。
なぜなら顧客の側には、以下に挙げる理由で要望を100%伝えきれない場合も多いためです。

  • 要望を文字にする際に、どうしても言葉で表現しきれない部分が生じてしまう
  • より簡単に課題を解決できる方法を知らない

満足してもらえるシステムをつくるためには、顧客が持つ真の意図や要望を読み取ることも必要です。
ときには要望の詳細を深堀りするより良い提案をするといった積極的なアクションも求められます。

スケジュールの管理能力

SKILL2 スケジュールの管理能力 無理をせず、リスクを考慮したスケジュールを組むことも重要

スケジュールの管理能力も、必要なスキルに挙げられます。なぜならシステム開発には、必ず締め切りがあるため。開発プロジェクトの期間や人員は有限ですから、開発できる項目にも上限があります。

もし顧客の要望をすべて受け入れた場合、スケジュールから大きく遅れ、顧客に迷惑をかける事態となりかねません。
このような事態を防ぐためには、要件定義の段階でどこまで要件に組み込めるか、慎重な検討が必要です。また無理をせず、リスクを考慮したスケジュールを組むことも重要です。

要件をドキュメント化するスキル

SKILL3 要件をドキュメント化するスキル ・開発内容をプロジェクトメンバーに正確に伝えられる ・顧客とトラブルになった際にプロジェクトを守れる

当事者間で決定した要件は、しっかりドキュメントに残しておくことが必要です。このことにより、以下に挙げるメリットが得られます。

  • 開発すべき項目や内容を、プロジェクトメンバーに対して正確に伝えられる
  • 顧客とトラブルになった際に、開発プロジェクトを守れる

ドキュメントは読みやすく誤解を生まないこと、誰が見ても同じように解釈されることが重要です。
このため簡潔かつ明快な表現を心がけましょう。表やグラフ、イラストも、適宜取り入れると読みやすくなります。また数値で表せる指標は、できるだけ数字で表記することもおすすめです。

5)SEの要件定義の遂行において意識しておくべき3つのポイント

スキルがある人でも、良い要件定義を作成できるとは限りません。要件定義を遂行する際には、以下に挙げる3つのポイントをしっかり意識する必要があります。

いずれも要件定義の成否を決める、重要な項目です。それぞれの項目がなぜ重要か、順に確認していきましょう。

「5W2H」を明確にする

POINT1 5W2Hを明確にする Why:システム化が必要な理由 What:システム化によって表現したいこと Where:システム化の対象となる業務や部門 Who:システムの利用者 How:システムに必要な機能 When:本稼働させたい時期 How much:顧客の予算

要件定義では、以下に挙げる5W2Hを明確にすることが重要です。いずれも、開発プロジェクトを成功させるうえで欠かせない項目です。

5W2H 説明
Why システム化が必要な理由
What システム化によって実現したいこと
Where システム化の対象となる業務や部門
Who システムの利用者
How システムに必要な機能
When 本稼働させたい時期
How much 顧客の予算

上記のうち「Why」は前項でお伝えした「システム化の目的」にあたります。
「What」は「システムの概要・機能要件・非機能要件」などが該当します。
「How」については、詳細の内容を基本設計で詰めていきます。

それ以外は、要件定義の段階で決める必要があります。

また皆さまのなかには、「予算は営業交渉で決まるものだから、要件定義に関係ない」と思う人もいるかもしれません。
しかしプロジェクト管理においては、顧客の予算の範囲内で完成させることが求められます。プロジェクトの収支を黒字にするためにも、あらかじめ予算を知っておくことは重要です。

要件定義書は専門知識の無い人でも理解できるよう工夫する

POINT2 要件定義書は専門知識のない人でも理解できるように。相手レベルに合わせ、なるべく平易な用語を使うように心がける

SEなどのITエンジニアが陥りやすいポイントに、ITの専門用語を記したいという点が挙げられます。
完成した要件定義書にITの専門用語が多く記されていると、いかにも専門家がまとめた、かっこいい文書に見えるかもしれません。

しかし顧客が読んで理解できなければ、せっかく良い内容が書かれていても顧客には伝わりません。その結果どのようなシステムが完成されるかわからず、プロジェクトの終盤になってトラブルの原因となる可能性もあります。

本当の専門家は相手のレベルにあわせて、なるべく平易な用語を使うように工夫しています。誰が読んでも同じように受け取られるよう表現を工夫しつつ、わかりやすい文書にするよう努めましょう。

多少時間がかかったとしても、丁寧に行うことが重要

POINT3 多少時間がかかってでも丁寧に行うことが重要。要件定義に誤りがあると、完成したシステムも誤りが生じてしまう

要件定義では顧客の要望が膨らみ、想定していた以上に時間を要する場合もあります。
開発要員を確保している場合はスケジュールに遅れを出したくない一心で、要件定義を適当に終わらせて設計・開発のフェーズに進めたくなります。

しかしスケジュールの遅延を理由に、要件定義をおろそかにすることは避けるべきです。
顧客としっかり合意しないまま開発を進めると、納品の段階で顧客から「思っていた内容と異なる」といった苦情が寄せられかねません。

その結果開発をやり直すことになれば、大きな時間と費用のロスにつながることでしょう。

要件定義に誤りがあると、出来上がるシステムも誤ったものになってしまいます。多少時間がかかったとしても、丁寧に進めることが重要です。

まとめ)ポイントを押さえて、顧客に貢献する要件定義の作成を

要件定義は開発プロジェクトの成否を決める重要な項目であり、顧客との会話が中心となるプロセスです。
コミュニケーションが苦手なSEの人は、不安に感じるかもしれません。

しかしポイントを押さえて顧客としっかり向き合う姿勢があれば、役割を担うことは可能です。
これまでの開発経験を活かし、より良いシステムを提供する意欲を持って対応しましょう。

顧客の真の意図を引き出せれば、プロジェクトが成功する可能性は大きく高まります。まずは本記事の内容を実践するところから始めてみましょう。

レビューを書く
1
2
3
4
5
送信
     
キャンセル

レビューを書く

レビューの平均:  
 0 レビュー
目次[ 閉じる ]