見出し画像

SaaSサービスの開発方法や立ち上げプロセスとは? ~開発時のポイントや費用相場/コスト/見積も解説~

はじめまして。
株式会社riplaで代表取締役CEOを務めている張田谷(はりたや)と申します。

弊社は「事業成長に伴走するプロダクト共創パートナー」として、IT事業会社出身のBizDev (事業企画) 、PdM、PM、デザイナーによる高品質な戦略支援と、国内&オフショア開発チームによる低コストな開発支援を提供する「Product Lab」や、SaaS事業を低コスト&短期間で立ち上げる「SaaS Box」というサービスを展開しております。

riplaのサービス「Product Lab」
riplaのサービス「SaaS Box」

私は、これまで数々のSaaSサービスの開発に "クライアントワーク" という形で携わってまいりました。本記事では、私自身の経験を基に、SaaSサービスの開発方法や立ち上げプロセス、開発時のポイントや費用について解説していきます。

実際のプロジェクトで得た教訓や成功の秘訣も交えながら、具体的な手順や進め方を紹介します。これからソフトウェア開発に取り組む方や、さらにスキルアップを目指す方の参考になれば幸いです。


はじめに

SaaSとは「Software as a Service」の略称で、「サービスとしてのソフトウェア」を意味するクラウドサービスの一種です。

ここ数年、世の中のデジタル化やDX推進に伴って、ITスタートアップが中心となってSaaS事業を多数展開しており、急成長する企業が増えています。

引用:【2024年3月更新】上場SaaS KPI公表の全て|Next SaaS Media Primary | 運営 早船 明夫

また最近では、非IT企業も自社事業の1つとしてSaaS事業を展開するケースが増えており、その際にも、プロダクト開発を開発会社に委託するケースが増えています。

SaaSの開発方法と開発時のポイント

SaaSの開発方法や立ち上げプロセスとしては、プロジェクトの開始から終了までいくつかのステップに分けられます。大まかに言えば、ソフトウェア開発は以下のような流れで進行していきます。

  1. 要件定義

  2. 設計

  3. 実装

  4. テスト

  5. リリースと保守

1.要件定義

要件定義は、一言で言えばどのようなSaaSを開発するか決める工程です。プロジェクトの成功を左右する重要なフェーズといえます。

要件定義に失敗しないためには、まず全体像を掴むことが重要です。どのようなSaaSを開発したいのか、それはなぜなのか、どんなユーザーのどんな課題を解決したいのかを整理します。

解決したい課題や提供したい価値についての整理が完了したら、それをシステムにどう落とし込んでいくかを定義する作業、つまり要件定義が始まります。

ポイントとしては、この要件定義では、ここまでの目的やターゲット、提供価値を整理してきたメンバー(=ビジネスサイド)と、実際にシステムを開発するメンバー(=エンジニア)は異なることが多いため、メンバー間の認識の齟齬が起きやすく、最も密なコミュニケーションが重要です。

要件定義の際に、認識の齟齬が起きないようにするには、しっかりと言語化をすることと、言葉やテキストだけでなく、ワイヤーフレームと呼ばれるデザインの骨子も並行して作成しながらすり合わせることがオススメです。

2.設計

設計フェーズでは、基本設計詳細設計に分けて考えます。基本設計はシステム全体の大きな流れを決定するステップで、詳細設計は具体的な実装に取り掛かるための準備をするステップです。

基本設計では、どのような設計であればビジネス側の要求や要件を満たすような実装が可能なのかを明らかにすることが目標となります。
どの技術を利用するか、その技術を利用することで本当にその実現したいことは達成できるのか、達成するにあたっての課題はあるのか、あるならばどう解決するのかを考えることが重要です。

ポイントとしては、基本設計は途中変更が多く入るため、最初から完璧な設計をしようと考えるのではなく、要件定義の時と同じで、全体から詳細、抽象から具体の順に整理することが重要です。

詳細設計は、具体的な実装の設計を行うステップです。どのディレクトリ(フォルダ)にどんな名前のファイルを作成し、どんな処理を実装するのかを決めます。詳細設計は実装者に任せるのが一般的です。詳細設計を行いながら同時に実装を進めるのが効率的です。

3.実装

実装フェーズでは、設計を基にコーディングを行います。ソフトウェア開発の実装はフロントエンドの開発とバックエンドの開発の大きく2つに分けることができます。

フロントエンドの開発とは、ユーザーの目に見える部分の開発を指します。一言で言えばUIの実装とも定義できます。つまり、ユーザーがクリック、入力、スクロールなどソフトウェアのインターフェースに対してさまざまなアクションを行った時に、インターフェースをどう変化させるのかについての開発です。

バックエンドの開発とは、主にデータの扱いについての開発です。ユーザーが入力した情報をデータベースに保存する、ユーザーがクリックしたページに表示する情報をデータベースから取り出す、などです。

また、実装段階での具体的な進め方や、チーム内での役割分担については、個々のタスクをステータスごとに整理してまとめたカンバンを用いて管理することが多いです。

4.テスト

テストはソフトウェアの品質を保証するための重要な工程です。テスト計画を立て、ユニットテスト単体テスト)、結合テストそれぞれ適切なタイミングで実施します。

ユニットテストとは、モジュール(細かな実装単位)ごとにテストすることです。それぞれのモジュールはどのようなインプットに対してどのような処理を行いどのようなアウトプットを返すのかが設計されています。実装されたモジュールが設計通りの挙動を示すのかユニットテストを実施することで検証することができます。

結合テストは、複数のモジュールを総合的にテストすることです。それぞれのモジュールが設計通りに動作していても、結合して総合的に動作させると想定していなかった挙動をすることがあります。これは、モジュールの設計時点で見落としていたインプットがあったり、モジュール単位では想定通りのアウトプットを返していたとしても次のモジュールで受け付けたインプットが想定していない形になったりした場合に起こります。これらのバグを発見するためにテストを実施します。

5.リリースと保守

リリースフェーズは、開発したソフトウェアを本番環境にデプロイし、ユーザーに提供する段階です。リリース準備で特に重要なのは、開発環境でのテストと本番環境での動作確認です。

また、リリース後の保守体制をどのように整えるかも重要です。リリース後のトラブル対応やユーザーからのフィードバックを迅速に反映させるための体制を整えることが求められます。

SaaS開発費用の相場(その他事例含む)

SaaS開発の費用は、規模や複雑さ、技術的な難しさ、期間などによって変動します。

一般的なSaaSの構成は、運営向け画面クライアント向け画面の二つに大きく分けられます。運営向け画面では、主に、ログイン機能、運営アカウント管理、クライアント管理などの機能が挙げられます。クライアント向け画面では、そのSaaSごとにユニークな機能を実装することになりますが、ログイン機能、ユーザー管理あたりはどのSaaSでも必要になる一般的な機能でしょう。

今回は具体的に以下のような構成を持つ場合の費用の例について説明していきます。

■運営向け画面
1. ログイン関係(ログイン、パスワードリセットなど)
2. 運営アカウント管理(運営アカウントの一覧表示、追加、削除など)
3. クライアント管理(クライアントの一覧表示、追加、削除など)

■クライアント向け画面
1. ログイン関係(ログイン、パスワードリセットなど)
2. ユーザー管理(クライアント画面を利用するユーザーの一覧表示、追加、削除など)
3. 顧客管理(顧客の一覧表示、追加、削除、詳細表示、編集など)
4. 商品・コンテンツ管理(商品・コンテンツの一覧表示、追加、削除、詳細表示、編集など)
5. 販売管理(販売履歴の一覧表示、追加、削除、詳細表示、編集など)

これらの機能を実装するための費用の目安を以下になります。

■運営向け画面
0. 環境構築・デプロイ:100万円前後
1. ログイン関係:100万円前後
2. 運営アカウント管理:100万円前後
3. クライアント管理:100万円前後

■クライアント向け画面
0. 環境構築・デプロイ:100万円前後
1. ログイン関係:100万円前後
2. ユーザー管理:100万円前後
3. 顧客管理:100万円前後
4. 商品・コンテンツ管理:100万円前後
5. 販売管理:100万円前後

合計すると、これらの機能を実装するための費用は約1,000万円程度となります。

各画面に実装したい機能や管理したい情報の追加や削除によって費用は上下します。例えば、クライアント画面から販売管理機能を削除すればその分費用は削減できますし、逆に販売後の配送状況を管理する機能を追加したければ、その分費用は増大します。

開発費用を安くするには

ここでは、システム開発の費用を抑えるために意識すべきことをいくつか紹介します。

1. 要求を細かく具体的に説明する

プロジェクト開始時に要求を詳細に説明し、明確にすることが重要です。要求が曖昧であると、開発プロセス中に追加の要件が発生し、工数が増加する可能性があります。要件を具体的に定義することで、開発チームが何を達成すべきかが明確になり、無駄な作業や再作業を避けることができます。

2. 途中での要求追加や要件変更を避ける

プロジェクトの進行中に追加の要求や要件変更が発生すると、工数が増え、結果的に費用が増加します。要求の変更を最小限に抑えるためには、プロジェクト開始前に十分な検討と計画を行い、確定した要件に対して忠実に開発を進めることが重要です。

3. 優秀なメンバーで取り組む

比較的単価が高くても、優秀なメンバーをプロジェクトに配置することで、長期的にはコストを抑えることができます。優秀なメンバーは、高いパフォーマンスを発揮し、より短い工数でプロジェクトを進めることができるため、結果的には総コストを低く抑えることができます。

4. PMにコストを惜しまない

特に、プロジェクトマネージャー(PM)は、プロジェクトの成功に大きく影響するので、コストを惜しまないことが推奨されます。優れたPMがいることで、プロジェクトの進行がスムーズになり、デザイナーやエンジニアの工数を低く抑えることができます。PMの工数は全体の10%程度と比較的小さいため、PMに比較的大きなコストをかけても、全体のコストへの影響は小さく、むしろデザイナーやエンジニアにかかる費用が抑えられるので、結果として総コストの削減につながります。

5. 必要最低限の機能に絞る

プロジェクトの初期段階では、必要最低限の機能に絞って開発を進めることが効果的です。これにより、開発コストを抑え、最小限の機能でプロジェクトを早期にリリースすることができます。初期リリース後に追加機能を段階的に追加することで、リスクを最小限に抑えつつ、システムの機能を拡張していくことができます。

6. 優先度の高いものから段階的にリリースする

プロジェクトの成果物を段階的にリリースすることで、初期段階でのリスクを軽減し、早期にユーザーからのフィードバックを得ることができます。これにより、必要な改善点を早期に把握し、費用の無駄を減らすことができます。優先度の高い機能から順にリリースし、段階的にシステムを完成させるアプローチが有効です。

7. 補助金を検討する

プロジェクトに対して利用可能な補助金や助成金を検討することも費用削減に寄与します。補助金を活用することで、開発コストの一部をカバーすることができ、結果としてプロジェクト全体の費用を抑えることが可能です。補助金の申請や取得には一定の手続きが必要ですが、資金面でのサポートを受けることで、プロジェクトの予算に余裕を持たせることができます。

以上のアプローチを意識することで、システム開発の費用を効果的にコントロールし、コスト削減を実現することができます。計画的に進めることと、適切なメンバーの配置、そして効率的な管理が費用削減の鍵となります。

最後に

本記事では、SaaSの開発手法やポイント、開発費用の相場について、解説してきました。

改めてではありますが、株式会社riplaでは、IT事業会社出身のBizDev (事業企画) 、PdM、PM、デザイナーによる高品質な戦略支援と、国内&オフショア開発チームによる低コストな開発支援を提供しております。IT事業会社出身のプロフェッショナルなメンバーを集めているため、プロダクト成長を第一に伴走いたします。

riplaのサービス「Product Lab」

また、SaaS事業を低コスト&短期間で立ち上げる「SaaS Box」というサービスを展開しております。

riplaのサービス「SaaS Box」

もし、
SaaS開発を外注したい
・SaaS開発の外注についてまずは話を聞きたい
といったご要望がございましたら、お気軽にお問い合わせください。

ここまでお読みいただき、ありがとうございました。SaaS開発の外注を検討されている方々にとって、この記事が有益な情報源となり、プロジェクト成功への一助となれば幸いです。最適なパートナーシップを築くためのご参考にしていただければと思います。

この記事が気に入ったらサポートをしてみませんか?