CMSのフルスクラッチ開発:概算見積もり提出するために工数出しと金額計算をやってみた

CMSのフルスクラッチ開発:概算見積もり提出するために工数出しと金額計算をやってみた
2023年10月17日2023年10月18日

企業からのシステム開発の要望に応じて、CMSの導入が中心的な役割を果たしています。オープンソースの「WordPress」は手軽で多くの要望を満たすツールとしての位置づけがあります。しかし、オリジナルのCMSを希望する企業も少なくありません。

フルスクラッチでCMSを開発すると、工数やコストはどのくらいになるのでしょうか。実際にやってみたいと思います。

概算見積もりや工数出し等は、会社や担当者によって手法が異なります。本記事の内容には細かい部分を割愛している箇所がありますので、参考程度にお考えください。

とりあえずヒアリングする

13141231314123

CMSを作ってほしいと言われても、ピンキリで何を必要としているか開発側ではわからないことが多いです。

可能であれば、企業と打ち合わせを実施します。打ち合わせ前にあらかじめ質問内容をまとめておきます。

もしくはQA表を作成して回答をもらいます。

■サンプル

  • どのようなCMSをイメージしていますか?参考となる外部サイトがあれば教えてください。
  • このCMSを主に使用するのはどんなユーザーですか?
  • 必要な機能、不要と思われる機能は何ですか?
  • サイトのデザインイメージはありますか?
  • サーバーの手配はどうされますか?私たちにお任せですか?
  • ドメインは新規取得予定、それとも既存のものを使用しますか?
  • 社内にシステムに詳しい担当者はいますか?
  • 設計書やその他のドキュメントは必要ですか?

これらの質問は概算見積もりの精度を上げるためのものです。詳細な要件は、後のフェーズでおこなうので概算見積もりフェーズの場合は今わかる範囲でヒアリングしていきます。

回答をもとに機能の洗い出し

412131413

クライアントからもらった条件をまとめます。

■サンプル

  • WordPressのように記事が作成できれば良い。高機能は求めていない。
  • 自社にライターが複数人いるので、それぞれアカウントを作って記事を書かせたい。
  • デザインは〇〇サイトのような形をイメージしている
  • サーバーはミニマムで固定費用がうれしい
  • ドメインは企業のサブドメインを使用したい
  • まずはミニマムの機能で問題ない

この条件を基に、どのようなシステムや機能をイメージしているのかを考えながら、妄想を交えて機能の洗い出しを行います。

機能の洗い出し

考えられる機能の洗い出しをおこないます。もちろん漏れる機能も考えられますが、思いつく範囲で洗い出しします。

■フロント

機能説明
TOP新着記事、お知らせの表示
お知らせ機能一覧(ページング)画面、詳細画面
記事機能一覧(絞り込み、ページング)、詳細画面
記事コメント記事詳細のコメント一覧、返信(2階層目まで)
個別ページ機能詳細画面
カテゴリ機能一覧、ページング
タグページ一覧、ページング
お問い合わせ入力、確認、完了画面、メール送信
テンプレート1カラム、2カラム

■管理画面

機能説明
ログインログイン、ログアウト
ダッシュボードサマリー表示
お知らせ機能一覧、登録、編集、削除、プレビュー
ユーザ管理一覧、登録、編集、削除、パスワード変更
記事管理一覧(絞り込み)、登録、変更、削除、投稿予約、プレビュー
記事コメント管理コメント承認、編集、削除
※ 新規は設けない
個別ページ機能一覧、登録、編集、削除、プレビュー
カテゴリ機能一覧、登録、編集、削除、階層管理
タグページ一覧、登録、編集、削除
サイト設定サイト全体の設定、サイトタイトル、説明

実装者の実工数を出す

機能を開発するための実工数を出していきます。

実装者の実際の工数を計算するためには、平均的な人の工数を参考にすると良いでしょう。それは、クライアントが会社との契約を行っているため、具体的な実装者の人選は関係がないからです。

また、実装が不明確な部分に関してはバッファものせておきます。

機能実工数(人日)
TOP1
お知らせ機能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
サーバー構築VPS2
リリース 1
 合計84

概算見積書の作成

34234234213

すべての工数算出が完了したら、概算見積もりを最終的に作成します。

得られた工数に対して単価を掛けます。単価の設定に関しては、一律の単価を適用する場合と、工程ごとや担当者ごとに異なる単価を設定する場合があります。特に小規模の場合は担当が同じだったりするため一律の単価を適用することが多いと感じます。

また単価に関しては会社で決めていると思うのでそれを使います。今回は安い会社を想定して単価3万円で計算します。

工程工数(人日)単価金額
要件定義・設計1030,000300,000
デザイン530,000150,000
マークアップ430,000120,000
開発1230,000360,000
 2230,000660,000
テスト2430,000720,000
フィードバック430,000120,000
サーバー構築230,00060,000
リリース130,00030,000
  2,520,000
管理工数開発費用の20% 504,000
  合計3,024,000

要件定義時に確定の見積を出す

クライアントから概算見積もりを見ると「高い!」と感じることがしばしばあります。

概算見積もりが高くなってしまう背景として、文字通り「概算」である点が挙げられます。

正式な金額は要件定義の後で決定されるので、現時点の見積もりには余裕や未定の機能が含まれていることがあります。

この概算見積もりを基に、要件定義フェーズでの必要な機能や不要な機能の絞り込み、機能の詳細な要求などを詰めていく作業が求められます。

また、クライアント側からは「要件定義の見積もりを概算工数の範囲内で提供してほしい」との要望がよく寄せられます。

これはクライアントの予算の制約なども影響している部分で、概算見積もりを少し大きめにしておくことには問題がないと思われます。

最後に

23424313

CMS機能の概算見積もりを実際に試算してみました。概算見積もりは、予測に基づいて工数を算出しているため、クライアントが金額を見て驚かれることもあります。

その場合は、要件を詰めて、必要な機能のみ絞り込みすることで概算工数をオーバーすることはない!といつも説明しています。

システム側から見れば要件も不明確なのに「見積書くれ」というは無茶ぶりにしか過ぎないですw

しかしながら、仕事の受注のためには、予想される機能に基づいて工数を算出し、それに応じた単価を適用して見積もりを提出するしかありません。

コメント

コメントを残す

お名前(任意)
コメント:新規