Now Loading...

Now Loading...

社員技術ブログ

【社員技術ブログ】要件定義書って何?書き方と目的、要求仕様書、RFPとの違いまとめ

2017年8月29日  社員技術ブログ

 

 

登場人物

 

 

名前: スーさん。(SUさん)

仕事: 神戸のソフトウェア会社W社でSEをやっている

最近の楽しみ:実写版の映画「東京喰種トーキョーグール」を見る予定があること。早くトーカちゃんを見たい!

 

 

 

 

名前: ター坊

仕事: 無職。仕事を探している。

最近の楽しみ:「幸せのパンケーキ」でパンケーキを食べる予定があること。早くプレーンの「幸せのパンケーキ」を食べたい!

 

 

 

ある日のこと。。。。

 

 

ター坊
ねぇねぇ。スーさん。

 

スーさん
なになに?ター坊

 

ター坊
こないだ教えてもらった 「セ」 の仕事内容だけど。。。

 

 

スーさん
「セ」???


あ~、エスイーね。
SEの仕事内容って、これのことだね。

 

【社員技術ブログ】SE (システムエンジニア) の仕事とは?仕事内容とシステム開発ライフサイクルをわかりやすく解説

 

 

 

ター坊
そうそう!それ。
エスイーの仕事。

 

ター坊
いまいち分からないので、もうちょっと詳しく教えてもらえませんか?

 

スーさん
へぇ~。
意外とター坊って向学心があるんだね。

 

ター坊
いやいやぁ。いつまでも無職ではまずいと思って。
いつまでも親からお金もらって、「幸せのパンケーキ」食べるわけにもいかないし。。
早く、「セ」になって仕事を覚えないと。

 

スーさん
。。。(おいおい。パンケーキ目的か!)

 

 

スーさん
。。。じゃあ、噛み砕いて「要件定義」から説明していこうか。

 

 

 

前回、SEの仕事、仕事内容とシステム開発ライフサイクルをわかりやすく解説しました。

ただ、ター坊には、内容がちょっと難しかったでしょうか。

 

 

 

それでは、今回は、要件定義に絞って解説してみましょう。

 

まず、要件定義と同じ場面でよく使われる 仕様 について解説します。

要求仕様 (Requirement、リクワイアメント ) 、要求仕様書とは

 

 

 

要求仕様書とは、エンドユーザーが開発担当側に対して開発を依頼するシステム要件を文章化したものです。

こういったことがしたい、という要求と予算、開発体制、リリース時期などの記載が主で、多くの場合、実現方法が具現化していません。

要求仕様、要求仕様書は、実現性が低いものでは困りますが、あくまでユーザー側の要求なので、基本的にユーザー側は好きに書いても構いません。

 

要求仕様書は、システムを使う側からの要望を書き留めたドキュメントであり、エンドユーザーが、開発の結果、得る機能をまとめたものとも言えます。

 

要求仕様書は、要件定義よりも前の段階でエンドユーザーがまとめるのが普通ですが、

一方で、要件定義の段階で、エンドユーザーではなくて、SEがまとめることもあります。

 

また、システムによっては、要求仕様書の作成は行わずに、要件定義の段階で、要求仕様も含めて要件定義書として一つにすることもあります。

 

 

 

次に、要求定義と同様に要件定義の場面でよく使われる  RFP について解説します。

RFP ( Request For Proposal、提案依頼書 ) とは

 

 

 

RFPとは、Request For Proposal (提案依頼書) の略で、発注企業がシステム開発を行う際に必要な要件をまとめ、発注先の開発会社に具体的な提案を依頼するための資料のことを言います。

RFP は要求仕様を元に、エンドユーザー側で作成し、ベンダー側に提示します。

RFPでは、システム開発を発注するベンダーを選定するために、どんなシステムを作りたいかを提示して、最適な提案をベンダーから引き出します。

RFPには、エンドユーザーが必要とするハードウェアやソフトウェア、サービスなどのシステムの概要や、依頼事項、保証用件、契約事項などを記述します。

 

 

業者側はRFPをもとに提案書を作成します。

そして、発注元は業者の提案書を評価し、契約する業者を選定し、ハードウェアやソフトウェア、サービスなどを調達します。

 

一般的に、市役所や学校、消防署、警察署などの公的なシステム開発では、RFP に基づき、複数のベンダーがシステムを提案します。

 

 

 

 

それではいよいよ、要件定義について解説します。

要件定義、要件定義書とは

 

要求仕様、RFPの作成までは、エンドユーザー側の作業でしたが、要件定義ではいよいよ、SEの出番です。

 

要件定義とは、エンドユーザー (お客様) が実現したい機能を、システム的にまとめることを言います。

ここで大事なことは、先ほどのエンドユーザー側が要望を書いた要求仕様書と事なり、要件定義書は、システムを理解しているSEがシステム的に要件をまとめるます。

また、要件定義で作成した成果物、ドキュメントのことを要件定義書と言います。

 

 

 

要件定義は、システム開発のライフサイクル (System Development Life Cycle、SDLC) の最初の工程です。

 

要件定義の工程を上流工程と呼ぶこともあります。

この工程では、開発担当のSEは、ユーザー部門から要求を引き出し、システムに実装するべき機能を整理します。

 

要件定義は、設計、実装工程の前工程として行われ、

ユーザーがそのシステムで何をしたいのか、

なぜそのシステムが必要なのか、

システムの目的(要求定義)に基づき分析、検討を行い、

その実現のために実装しなければならない機能や性能などを明確にしていきます。

 

 

この工程では、プログラム開発などは行わず、複数回の打ち合わせによって成果物、要件定義書を作成します。

エンドユーザーは、システムに求める要求をより具体的に示す必要があります。

システム開発サイドは、それを正しく理解して、機能や性能といった技術的な要件にまとめていく必要があります。

ユーザーサイドと開発サイドの最初にして、最も重要なコミュニケーションということができるでしょう。

SEは、整理した内容を基に業務フローや業務シナリオ、データモデルなどを作成し、ユーザー部門と認識に食い違いがないかを確認します。

 

 

 

ところで、要件定義の成果物、要件定義書には何が含まれるべきなのでしょうか?

要件定義書の中身を見てみましょう。

要件定義書の中身

 

要件定義書は、システム設計者側から見た、ユーザーからの要望に応えるための機能を書き止めたドキュメントです。

要件定義書は、システム開発プロジェクトにおける要件定義フェーズのアウトプットとなるドキュメントであり、機能要件、非機能要件など、後工程の設計に必要な情報を記述します。

よって、「要件定義書の内容」=「クライアントに確認する成果物」であるとも言えます。

 

よくある要件定義書の中身は以下の要素で構成されます。

・システムの概要/システムの構想
・機能要求
・入力要求と出力要求
・システム導入後の業務フロー
・品質・性能要求
・セキュリティ要求
・システム導入の目的と目標

 

 

要件定義で特に重要なポイントを見てみましょう。

要件定義のポイント

 

 

 

要件定義では、エンドユーザーがシステムに求めるものを明確にし、システム開発側がそのユーザーの求めるものを理解するため、エンドユーザーとシステム開発側の認識合わせをする重要な工程です。

従って、この工程でのコミュニケーション不足や目的を曖昧にすることは、開発の失敗につながりかねません。

なぜなら、後工程は、すべてこの工程で作成したドキュメントに依存して作られるからです。

 

 

そこで、要件定義において、特に重要な点をまとめると、次の3点になります。

 

・エンドユーザーがシステムに求めるものを明確にするために、そのシステムで何がしたいのか、なぜそのシステムが必要なのか、具体的に想像し、定義させること。

 

・エンドユーザーとシステム開発側の間で十分に話し合い、上記のようなシステムに期待すること、役割、目的の情報を共有化し、しっかりとした認識の統一、相互理解を深めること。

 

・システム開発側は、上記のような要求の理解に基づき、システムの目的に沿った機能や性能を要件として定義すること。

 

 

 

失敗するプロジェクトを分析してみると、要件定義において目的が明確になっていないことや、エンドユーザーとシステム開発側の意識合わせが不十分であることが、原因であることがよくあります。

 

したがって、要件定義では、エンドユーザーとシステム開発側が、求める要求と必要となる要件について、徹底的に議論し話し合うことが必要となります。

 

 

これまで書いたように要件定義において、

プロジェクトの目的を明確にし、ユーザー、開発両者の意識を統一することが、

「目的のぶれ」「仕様の変更」「仕様の追加」といったシステム開発失敗の原因をなくし、

プロジェクトを成功へと導くことが可能となります。

 

 

まとめ

 

 

いかがですか?

要件定義フェーズ、要件定義書について理解してもらえたでしょうか。

要件定義局面は、そのあとに続く工程の第一歩であるために、このフェーズでの取りこぼし、齟齬は、後の工程で取り返しの付かないことになります。

従って、要件定義は、システム開発ライフサイクルの工程の中で最も重要な工程と呼んでよいでしょう。

 

 

 

スーさん
どう?わかった?ター坊

 

ター坊
うーん。一つだけよく分かったことがある。。

 

スーさん
え?何?

 

ター坊
要件定義書は難しいけど、要求仕様書なら書ける。
これってやりたいことを書けばいいだけでしょ?

 

スーさん
は?

 

ター坊
例えば、僕の場合、毎日3時に自動的に「幸せのパンケーキ」を2個、生クリーム多めで作ってっていうのが要求仕様だね。。

これをRFPにしてベンダーに発注すればいいんだね。

 

スーさん
。。。(また、パンケーキかよ。。)

 

 

 

さて、ター坊は無事に要件定義フェーズを理解してくれたのでしょうか。。。?

 

 

 

この記事を書いた人:SU (スー)

スーです。 神戸にあるソフトウェア会社W社で、システムエンジニア&ITマネージャーやっています。 WEB大好き!毎日、WEBサイトをいじっています。


TOP