オンライン Web ベースのソフトウェア アプリケーションに関しては、製品開発のアプローチを決定するのに苦労しています。
私たちは、SAASサービスとして提供できる可能性のあるオンラインWebアプリケーションのシステム設計に取り組んでいます。ここでは、システムの設計と実装に関する決定に続いて、コストも考慮して決定するのに苦労しています。
アプローチ A:
基本的な要件を満たし、目の前の問題を解決するための非常に基本的な要件を考慮して、すべてを設計および開発し、それを起動します。すべてをマイクロ最適化することにあまり集中しなくても、数百人のユーザーをサポートするのに十分なシステムです。
新しいモジュールを追加することにより、クライアントの要求に応じて新しい機能を追加します。
したがって、シンプルな設計、単一の開発、必要に応じてインフラストラクチャをアップグレードするか、必要に応じて最適化することにより、必要に応じてスケーリングし、将来必要に応じてシステムを完全に新しいシステムに置き換える可能性があります。
サーバーは同じままですが、クライアント アカウントのデータベースは異なります。ここでも、個別のデータベースにアクセスするクライアントごとに異なるアプリケーションがホストされます。必要に応じて、新しいサーバーを追加することがあります。管理/保守とアップグレードは少し難しいですが。
アプローチ B:
私たちは完全な要件、付加価値を追加する可能性のある追加機能を調査し (ただし、そのような追加機能がどれだけの価値を追加するかについてはまだわかりません)、非常に多数のユーザーをサポートするシステムを設計します (大量のハードウェア セットを使用)。 ) 初めから。
最初から非常に最適化されたフル機能のアプリケーションを起動します。
単一のデータベースとアプリケーション ホスティングで複数のクライアント アカウントをサポートするように設計し、成熟した SAAS アプリケーションのようなアーキテクチャを備えたクラウド サーバー/負荷分散サーバーに実装します。これにより、コーディングと保守が非常に困難になります。そして、実装には間違いなくもっと時間がかかります。
ご了承ください、
機能リスト、UI、および使用する可能性のあるテクノロジーのセットアップを用意しています。この状況に対処するための最善のアプローチを理解したいと思います。
以前のように、別の製品開発プロジェクトで、すべての機能のセットを完了するのに時間がかかりすぎ、さらにはまったく使用されていない機能が含まれていることを見てきました。このようなプロジェクトでは、コストに関する考慮事項が非常に高くなります。私はアプローチ A を採用したいと考えています。さらに、2 番目のアプローチと比較して、すぐにユーザーからのフィードバックが得られるので、どの機能に注目し、その理由を判断するのに役立つかもしれません。さらに、必要に応じて、アプローチ B に似たシステムに焦点を当ててアプリケーション全体を書き直すことがあります。
他の企業がこの種の状況をどのように管理しているかを知りたいのですが、そのようなプロジェクトを実施するための最良の方法は何ですか?