私が本当に業務で行ったRFPの作成手順

# はじめに

- RFPとは、Request For Proposal（提案依頼書）の略で、発注企業がシステム開発を行う際に必要な要件をまとめ、発注先の開発会社に具体的な提案を依頼するための資料です。
- フォーマットがいまいちないので、作ってみました。
- 実際に社内で請負として依頼する際に作成して提出いたしました。
- 提出する際はWordで作成し、PDFで提出しました。
- 図は[Cacco](https://cacoo.com/diagrams/)を使いました。
- あえて説明などはいれず、リアルに記載した内容を一部制約上の理由から置き換えたものを下記に記載します。

# 目次

- 1.	プロジェクト概要
	- 1.1	背景と目的
	- 1.2	目標
	- 1.3	ゴール
- 2.	システム／機能概要
	- 2.1	システム構成図
	- 2.2	機能概要
- 3.	提案依頼事項
	- 3.1	要求機能
	- 3.2	要求機能の詳細
	- 3.3	非機能要求一覧
	- 3.4	納期およびスケジュール
	- 3.5	納品成果物
	- 3.6	定例報告および共同レビュー
	- 3.7	開発体制
	- 3.8	開発言語
- 4.	開発に関する条件
	- 4.1	作業場所
	- 4.2	開発環境
	- 4.3	テスト環境
	- 4.4	成果物の管理
	- 4.5	連絡手段
- 5.	契約事項
	- 5.1	予算
	- 5.2	検収条件
	- 5.3	保証年数（瑕疵担保責任期間）

# 1.	プロジェクト概要

## 1.1	背景と目的

◯◯システムを本年度中にリプレイスを行う。それに伴い、◯◯システムと連携を行っている各関連システムの改修が必要となった。

## 1.2	目標

当サービスにおいて、◯◯システムとの連携機能がリプレイス後も正常に動作するよう改修を行うこと。

## 1.3	ゴール

当サービスにおいて、リプレイスされた◯◯システムとの連携機能が正常に動作すること。 

# 2.	システム／機能概要

## 2.1	システム構成図

※ あくまでイメージです。実際の要件やシステム構成とは異なります。

![Network diagram.png](https://qiita-image-store.s3.amazonaws.com/0/90598/0ab28362-b619-b648-dbea-60583307ef5f.png)
 
## 2.2	機能概要

A)	連携機能

制作担当によって基幹システムに登録された連携番号を定期的（１日１回）に当サービスのDBに登録する。

B)	連携番号の表示機能

連携番号のある条件の場合のみ、お問い合わせ先として連携番号を表示する。
 
C)	実績管理機能

実績情報を定期的に当サービスのDBに登録する。また、取得した情報を元に集計し、結果データを帳票出力する。
 
# 3.	提案依頼事項

## 3.1	要求機能

実績管理機能

※ XXコンテンツが対象です。

## 3.2	要求機能の詳細

A)	履歴情報取得

新たに△△APIを用いて、定期的に履歴情報を取得し、データベースへの保存を行います。

I.	取得方式

-	当社側からSCPにてファイルを取得する
-	ID/PW、取得ディレクトリは共通
-	ReadOnlyで接続

II.	ファイルフォーマット

-	CSV形式（zip圧縮済）
-	文字コード：UTF-8、改行コード：LF
-	コンテンツ毎にファイルが作られる
-	1日1ファイル
-	ファイル名　[コンテンツID]_[yyyymmdd].csv.zip（例：hogehoge_20130603.csv）

III.	取得時間

未定

以下、主要となる取得項目になります。

|#|項目名|説明|
|:---|:---|:---|
|1|ログID（id）|履歴情報を一意に示すID|
|2|終了日時（end_time）|終了した日時|
|3|コード（code）|履歴情報を一意に示すコード|
|4|クライアントID（client_id）|クライアントを一意に示すID|
|4|コンテンツID（contents_id）|コンテンツを一意に示すID|
 
B)	履歴情報集計（日時、月次、時間別）

取得した履歴情報を元に、日時、月次、時間別に集計し、データベースへの保存を行います。

以下、集計項目になります。

|#|項目名|説明|
|:---|:---|:---|
|1|◯◯の回数||
|2|◯◯の回数||
|3|◯◯の回数||
|4|◯◯の回数||

C)	履歴情報表示（日時、月次、時間別）
集計した履歴情報を表示する。
上記集計項目を表示する。
 
## 3.3	非機能要求一覧

A)	性能要求

-	履歴情報表示の画面応答時間は、約３秒以内とすること。
-	当システムおよび関連システムへの極度の負荷を掛けないこと。

B)	移行要求

-	稼働中のサービスを停止せずに移行を行うこと。
-	システムやデータの切り戻しを可能とすること。

C)	セキュリティ要求

-	入力検証および不正データ入出時の無効化を行うこと。
-	個人情報および機密情報へのアクセス制御や漏洩の防止を行うこと。
-	利用ユーザへのセキュリティ被害の防止を行うこと。

D)	品質要求

-	弊社品質管理部門の承認に値する品質を担保すること。
-	影響範囲調査を行った上で、他機能に影響する箇所が発生した場合、回帰テストを実施すること。

E)	運用・保守要求

-	障害の種類や原因を特定するために必要な情報をログとして取得できるようにすること。
-	リリース後に要求範囲における障害が発生した場合、原因調査および解決を行うこと。

## 3.4	納期およびスケジュール

リリース時期は2020年10月1日を希望します。
リリース時間は未定。
なお、検収につきましては2020年9月26日を希望します。

## 3.5	納品成果物

-	基本設計書（DB設計、機能設計、画面設計）
-	詳細設計書　※必要な場合のみ
-	プログラムソースコード
-	単体・結合テスト仕様書
-	単体・結合テスト項目書（Codeception BDD）
-	テストカバレッジレポート（Codeceptionコードカバレッジ）
-	性能、セキュリティ、運用テストエビデンス
-	移行計画・手順書

## 3.6	定例報告および共同レビュー

進捗・課題共有の場については別途ご相談させてください。
ドキュメントおよびソースコードについては弊社担当者も含めて行います。

## 3.7	開発体制

貴社のプロジェクト体制を明記してください。PMの氏名、経歴、経験年数、保有資格等と、各メンバーの役割やスキルレベル、人数をご提示ください。

## 3.8	開発言語
-	Apache
-	PHP
-	MySQL 

# 4.	開発に関する条件

## 4.1	作業場所

-	貴社指定場所での開発作業
-	当社指定場所での打ち合わせ

## 4.2	開発環境

-	貴社指定のPC
-	当社指定の実行環境

※仮想イメージをご用意します。

## 4.3	テスト環境

当社指定の環境（サーバおよびミドルウェアなど含め）
※テスト環境への接続情報をご用意します。
 
## 4.4	成果物の管理

-	ソースコードについては、当社指定のgit上での管理・運用をお願いします。
-	ドキュメントについては、当社指定のconfluence上での管理・運用をお願いします。
-	進捗および課題管理については、当社指定のjira上での管理・運用をお願いします。

## 4.5	連絡手段

弊社指定のSlack上での運用をお願いします。
 
# 5.	契約事項

## 5.1	予算

![C9V8pSNVwAECWfr.jpg](https://qiita-image-store.s3.amazonaws.com/0/90598/861a41c9-31be-8a12-8608-e9d11816a515.jpeg)

## 5.2	検収条件

-	弊社の品質管理部門のテスト実施を合格した時点とします。
-	要求された成果物のすべてが提出完了しているものとします。

## 5.3	保証年数（瑕疵担保責任期間）

リリースから１年