CMSのフルスクラッチ開発:概算見積もり提出するために工数出しと金額計算をやってみた
企業からのシステム開発の要望に応じて、CMSの導入が中心的な役割を果たしています。オープンソースの「WordPress」は手軽で多くの要望を満たすツールとしての位置づけがあります。しかし、オリジナルのCMSを希望する企業も少なくありません。
フルスクラッチでCMSを開発すると、工数やコストはどのくらいになるのでしょうか。実際にやってみたいと思います。
とりあえずヒアリングする
CMSを作ってほしいと言われても、ピンキリで何を必要としているか開発側ではわからないことが多いです。
可能であれば、企業と打ち合わせを実施します。打ち合わせ前にあらかじめ質問内容をまとめておきます。
もしくはQA表を作成して回答をもらいます。
■サンプル
- どのようなCMSをイメージしていますか?参考となる外部サイトがあれば教えてください。
- このCMSを主に使用するのはどんなユーザーですか?
- 必要な機能、不要と思われる機能は何ですか?
- サイトのデザインイメージはありますか?
- サーバーの手配はどうされますか?私たちにお任せですか?
- ドメインは新規取得予定、それとも既存のものを使用しますか?
- 社内にシステムに詳しい担当者はいますか?
- 設計書やその他のドキュメントは必要ですか?
これらの質問は概算見積もりの精度を上げるためのものです。詳細な要件は、後のフェーズでおこなうので概算見積もりフェーズの場合は今わかる範囲でヒアリングしていきます。
回答をもとに機能の洗い出し
クライアントからもらった条件をまとめます。
■サンプル
- WordPressのように記事が作成できれば良い。高機能は求めていない。
- 自社にライターが複数人いるので、それぞれアカウントを作って記事を書かせたい。
- デザインは〇〇サイトのような形をイメージしている
- サーバーはミニマムで固定費用がうれしい
- ドメインは企業のサブドメインを使用したい
- まずはミニマムの機能で問題ない
この条件を基に、どのようなシステムや機能をイメージしているのかを考えながら、妄想を交えて機能の洗い出しを行います。
機能の洗い出し
考えられる機能の洗い出しをおこないます。もちろん漏れる機能も考えられますが、思いつく範囲で洗い出しします。
■フロント
機能 | 説明 |
---|---|
TOP | 新着記事、お知らせの表示 |
お知らせ機能 | 一覧(ページング)画面、詳細画面 |
記事機能 | 一覧(絞り込み、ページング)、詳細画面 |
記事コメント | 記事詳細のコメント一覧、返信(2階層目まで) |
個別ページ機能 | 詳細画面 |
カテゴリ機能 | 一覧、ページング |
タグページ | 一覧、ページング |
お問い合わせ | 入力、確認、完了画面、メール送信 |
テンプレート | 1カラム、2カラム |
■管理画面
機能 | 説明 |
---|---|
ログイン | ログイン、ログアウト |
ダッシュボード | サマリー表示 |
お知らせ機能 | 一覧、登録、編集、削除、プレビュー |
ユーザ管理 | 一覧、登録、編集、削除、パスワード変更 |
記事管理 | 一覧(絞り込み)、登録、変更、削除、投稿予約、プレビュー |
記事コメント管理 | コメント承認、編集、削除 ※ 新規は設けない |
個別ページ機能 | 一覧、登録、編集、削除、プレビュー |
カテゴリ機能 | 一覧、登録、編集、削除、階層管理 |
タグページ | 一覧、登録、編集、削除 |
サイト設定 | サイト全体の設定、サイトタイトル、説明 |
実装者の実工数を出す
機能を開発するための実工数を出していきます。
実装者の実際の工数を計算するためには、平均的な人の工数を参考にすると良いでしょう。それは、クライアントが会社との契約を行っているため、具体的な実装者の人選は関係がないからです。
また、実装が不明確な部分に関してはバッファものせておきます。
機能 | 実工数(人日) |
---|---|
TOP | 1 |
お知らせ機能 | 1 |
記事機能 | 3 |
記事コメント | 1 |
個別ページ機能 | 1 |
カテゴリ機能 | 1 |
タグページ | 1 |
テンプレート | 2 |
■管理画面
機能 | 実工数(人日) |
---|---|
ログイン | 2 |
ダッシュボード | 1 |
お知らせ機能 | 2 |
ユーザ管理 | 1 |
記事管理 | 4 |
記事コメント管理 | 2 |
個別ページ機能 | 3 |
カテゴリ機能 | 1 |
タグページ | 1 |
お問い合わせ機能 | 2 |
サイト設定 | 1 |
係数をかける
予定通りの進行はほぼ保証されないので、実工数に対して一定の係数をかけます。この係数は通常、難易度などを考慮して決定します。
今回は1.3を掛けたいと思います。
■フロント
12人日 × 1.2 = 12人日
■管理画面
24人日 × 1.2 = 22人日
開発以外の工数も出していく
開発の工数出しが終わったら他の工数出しもおこなっていきます。
他の工程は単純に%で割り出していますが、実際は難易度やクライアントのリテラシー等々で増減させたりします。
工程 | 内容 | 工数(人日) |
---|---|---|
要件定義・設計 | 開発の30%程度 | 10 |
デザイン | フロントのデザインのみ | 5 |
マークアップ | フロントのみ | 4 |
開発 | フロント | 12 |
管理画面 | 22 | |
テスト | 開発の20%程度 | 24 |
フィードバック | 開発の10%程度 | 4 |
サーバー構築 | VPS | 2 |
リリース | 1 | |
合計 | 84 |
概算見積書の作成
すべての工数算出が完了したら、概算見積もりを最終的に作成します。
得られた工数に対して単価を掛けます。単価の設定に関しては、一律の単価を適用する場合と、工程ごとや担当者ごとに異なる単価を設定する場合があります。特に小規模の場合は担当が同じだったりするため一律の単価を適用することが多いと感じます。
また単価に関しては会社で決めていると思うのでそれを使います。今回は安い会社を想定して単価3万円で計算します。
工程 | 工数(人日) | 単価 | 金額 |
---|---|---|---|
要件定義・設計 | 10 | 30,000 | 300,000 |
デザイン | 5 | 30,000 | 150,000 |
マークアップ | 4 | 30,000 | 120,000 |
開発 | 12 | 30,000 | 360,000 |
22 | 30,000 | 660,000 | |
テスト | 24 | 30,000 | 720,000 |
フィードバック | 4 | 30,000 | 120,000 |
サーバー構築 | 2 | 30,000 | 60,000 |
リリース | 1 | 30,000 | 30,000 |
計 | 2,520,000 | ||
管理工数 | 開発費用の20% | 504,000 | |
合計 | 3,024,000 |
要件定義時に確定の見積を出す
クライアントから概算見積もりを見ると「高い!」と感じることがしばしばあります。
概算見積もりが高くなってしまう背景として、文字通り「概算」である点が挙げられます。
正式な金額は要件定義の後で決定されるので、現時点の見積もりには余裕や未定の機能が含まれていることがあります。
この概算見積もりを基に、要件定義フェーズでの必要な機能や不要な機能の絞り込み、機能の詳細な要求などを詰めていく作業が求められます。
また、クライアント側からは「要件定義の見積もりを概算工数の範囲内で提供してほしい」との要望がよく寄せられます。
これはクライアントの予算の制約なども影響している部分で、概算見積もりを少し大きめにしておくことには問題がないと思われます。
最後に
CMS機能の概算見積もりを実際に試算してみました。概算見積もりは、予測に基づいて工数を算出しているため、クライアントが金額を見て驚かれることもあります。
その場合は、要件を詰めて、必要な機能のみ絞り込みすることで概算工数をオーバーすることはない!といつも説明しています。
システム側から見れば要件も不明確なのに「見積書くれ」というは無茶ぶりにしか過ぎないですw
しかしながら、仕事の受注のためには、予想される機能に基づいて工数を算出し、それに応じた単価を適用して見積もりを提出するしかありません。
コメント
コメントを残す