要件定義と基本設計がプロジェクトを左右する!成功するコツなどを紹介
システム開発の上流工程には要件定義と基本設計というプロセスがあります。
どちらもシステム開発において重要な工程であり、プロジェクトを大きく左右する要素です。
要件定義と基本設計はそれぞれ内容や目的が異なっており、正確に違いを理解していないと失敗してしまう可能性があります。
エンジニアとして、これらの上流工程を担当したいならば、要件定義と基本設計の違いを理解しておくことは大切です。
そこで、今回は要件定義と基本設計の違いや成功させるコツ、必要なスキルなどを解説します。
要件定義と基本設計とは?
要件定義と基本設計の概要を紹介していきます。
要件定義
要件定義とはプロジェクトの指針を決めることです。
クライアントからしっかりとヒアリングをして要望を聞き出し、どのような機能をシステムに実装するのかを決めます。
その過程で業務フローや要求機能一覧といった資料の作成も行います。
クライアントと良く話し合いをすることが重要であり、要望だけではなく、現在抱えている課題やシステム開発をする背景まで聞き出し、理解することが大事です。
最終的には基本設計につなげるための仕様書を作成します。クライアントからの承認を得られれば、次のフェーズに進むことができます。
基本設計
要件定義に基づいて、より詳細にシステムの機能を決めていくフェーズが基本設計です。
基本設計ではそれぞれの機能について、どのようにシステムを開発していくのかを決めていきます。
画面レイアウトから帳票レイアウト、システムインターフェースといった項目まで決定していくのが特徴です。
特に基本設計では、ユーザーが実際に目で見て触れる部分について詳細に定義していきます。
基本設計の内容は、クライアントにチェックしてもらいイメージのすり合わせをするのが重要です。
クライアントに細かなチェックをしてもらえる最後のタイミングであるため、何度もレビューを重ねます。
項目は必要に応じて変わる
プロジェクトごとにクライアントが要望する内容は変わってくるため、要件定義や基本設計で決める項目は、それぞれのプロジェクトごとに異なります。
クライアントの要望に応えるためのプロジェクトであり、期待されている内容に応じて項目は必然的に変わります。
また、要件定義と基本設計の線引きが曖昧なこともあります。
このため、基本設計の内容を要件定義の中で行ったり、あるいは要件定義の内容を基本設計のフェーズで決めたりするといった場合があります。
プロジェクトごとにそれぞれのフェーズで決める項目が変わってくることがあるため、臨機応変に対応しましょう。
要件定義から基本設計までの流れ
要件定義から基本設計に至るまでの流れを紹介します。
要件定義
要件定義は、クライアントから要件をヒアリングして、その内容を整理します。
そして、仕様書を作成するという流れです。それぞれの項目ごとに詳しく見ていきましょう。
クライアントから要件をヒアリングする
要件定義では、最初にクライアントからヒアリングをして要望を聞き出します。
現状の業務フローや課題、システム開発を依頼した背景などをじっくりと聞き出すフェーズです。
あらかじめクライアントに資料を作成してもらうとヒアリングがスムーズに進みます。
プレ要件定義を実施することもあります。
プレ要件定義で大まかに要望をまとめて、その後でより詳細な要件定義を行うという流れです。
ヒアリングした内容を整理する
ヒアリングで聞き出した内容は、分かりやすく整理する必要があります。
その際には、それぞれのヒアリング項目について、優先順位を付けましょう。
必須要件と希望要件に分類すると良いです。
予算と期間が限られるため、クライアントの要望を全て取り入れることは不可能なことが多いです。
このため、要件の優先順位を付けて、実現可能な落としどころを見出すことが必要です。
仕様書を作成する
要件を整理したならば、実際に仕様書を作成します。
仕様書にはシステムの概要や構想、システムを開発する目的、システム導入後のフローといった項目を入れましょう。
さらに、要求機能一覧や非機能要件をまとめておくと良いです。
仕様書は何度もクライアントにチェックしてもらい、認識の違いが起きないようにします。
最終的に、クライアントから承認を得られれば、要件定義は完了です。
基本設計
基本設計では、要件定義から必要な機能を判断し、基本設計書を作成します。
そして、クライアントに基本設計書を確認してもらうという流れになります。
基本設計の流れを詳しく見ていきましょう。
要件定義から必要な機能を判断する
要件定義の仕様書をチェックして、システムに実際に組み込む機能を判断します。
優先的に組み込む要件を重視して機能を設計していき、要望に合ったシステムの実現を目指すのです。
このため、きちんと要件定義ができていないと基本設計を進められません。
基本設計書を作成する
システムに組み込む機能を絞り込んだら、次に基本設計書を作成します。
要件定義よりも詳細に機能を設計していくフェーズです。
画面設計から帳票、ネットワーク構成、テーブルまでシステムに関わる重要な要素の詳細を決めていきます。
クライアントに基本設計書を確認してもらう
基本設計書はクライアントに何度もチェックしてもらい、認識の違いや誤りがないかすり合わせます。
レビューで指摘された点を踏まえ基本設計書を修正して、再びレビューしてもらうという作業を繰り返します。
最終的に承認されれば、詳細設計へと進むという流れです。
要件定義と基本設計を成功させるコツ
ここでは、要件定義と基本設計を成功させるためのコツを紹介します。
クライアントの要求をしっかり聞き出す
クライアントからの要望を、いかにして正確に聞き出すのかにこだわりましょう。
クライアントがITに詳しくない場合は、専門的な表現は避け平易な表現でコミュニケーションを取ることが大切です。
事前に専門用語に関する資料を作成して渡すという方法もあります。
また、事前にクライアント側に業務課題や要望などを資料としてまとめてもらうのも効果的です。
クライアントとやり取りする際には、口頭やテキストによる説明だけではなく、図解表現を積極的に用いることがおすすめです。
クライアントと同じイメージを共有できるように工夫してみてください。
話をする際には5W2Hを意識しましょう。常に5W2Hを明確にして話を整理することで、明瞭な話し方ができます。
常に実現可能かどうかを考える
クライアントから要求を聞き出して整理する際には、実現可能性について考慮しましょう。
予算や期間、技術などの制約があるため、実現が難しい要望はどうしても出てきます。
不可能な要望には代替案を提示しましょう。
クライアントを説得する必要があるため、実現できない理由について分かりやすく伝えられると良いです。
クライアントの心証を悪くしないように説得するスキルが求められます。
ユーザーの視点を持って設計する
基本設計では、常にユーザー視点になって考えることが大切です。
プロジェクトの成果物であるシステムを実際に利用するユーザーに満足してもらうには、どうすればいいのか意識します。
このためには使いやすさを重視しましょう。デザイン思考で設計するとシステムの満足度の向上につながります。
クライアントの要望を満たしつつも、利用のしやすさやわかりやすさを重視したシステムにできれば理想的です。
要件定義と基本設計に必要なスキル
要件定義と基本設計を成功させるのに求められるスキルを紹介します。
要件定義に必要なスキル
要件定義では、クライアントから正確に要望を聞き出すスキルが求められます。
クライアントから話を引き出して必要な情報を収集し、意図を把握する能力が大事です。
クライアントと良好な関係性が築ける能力ではなく、クライアントから必要な情報を引き出すテクニックが求められます。
また、聞き出した内容をまとめて要望を明確化する力も必要です。
仕様書という形でわかりやすくまとめるなどの能力です。
要件定義では、実現可能な仕様書を作成する必要があり、ある程度は開発に関する知識や技術も必要です。
現実的に実現可能なレベルにまで要望をまとめ上げて、ドキュメントに落とし込むスキルが要求されるでしょう。
基本設計に必要なスキル
基本設計の仕事ではソフトウェアだけではなく、ハードウェアからネットワーク全般に関する幅広い知識が必要です。
システムと機器との外部インターフェース設計などは重要なため、サーバーやOS、ネットワークなどのスキルと知識が役立ちます。
また、基本設計は要件定義で作成された仕様書に基づいて行うのが特徴です。
このため、仕様書を読み解いて、システムに必要とされる機能を判断する力も求められます。
両方に共通するスキル
要件定義と基本設計に共通して要求されるスキルを紹介します。
コミュニケーション力
要件定義、基本設計共に、クライアントと頻繁にコミュニケーションを取り、レビューを受けて仕様書を修正するという作業が必要です。
そのため、クライアントと円滑にコミュニケーションが取れるスキルは必須と言えます。
文書を作成する力
要件定義でも基本設計でも仕様書の作成を行います。
クライアントの要望を理解した上で仕様書を作成して、クライアントのチェックを受ける必要があります。
そのため、要望を適切にまとめ、認識に齟齬が生まれないような文章を作成することが求められます。
スケジュールや工数の管理能力
要件定義では、クライアントからの要求が実現できるものかどうか把握するスキルが求められます。
要件定義のフェーズで、現実的に不可能な要求であると分かったならば、クライアントと調整する必要があるのです。
また、基本設計では、スケジュールや費用などを具体的に設計します。
システムに必要な機能を開発する工数を見積もって、実現可能なスケジュールを組む能力が重視されるのです。
スケジュールや工数の管理能力があれば、現実的なスケジュールを設計できます。
上流工程や開発スキルへの理解
要件定義と基本設計は、上流工程に属するフェーズであるため、上流工程に関する理解が求められます。
上流工程に関わる知識やスキルは、要件定義や基本設計に直接的に関わり、成果物の質にも影響する可能性があるのです。
また、要件定義や基本設計では開発スキルへの理解も求められます。
実現可能な設計をすることが大事であり、このためには開発スキルが重要です。
開発の経験があれば、現実的に開発できるシステムを明確にイメージすることができ、設計をスムーズに進められるでしょう。
要件定義と基本設計でプロジェクトの質が変わる
要件定義と基本設計はどちらも上流工程であり、システムの設計にとって重要なフェーズとなります。
要件定義ではクライアントの要望をまとめプロジェクトの指針を決め、基本設計では具体的なシステムの機能について決めていくのです。
この二つの工程はプロジェクトの質に関わる重要な作業です。
多くのスキルと経験があり、コツを理解していれば要件定義や基本設計の仕事をきちんとこなせるようになるでしょう。