paint-brush
ソフトウェア コスト カリキュレーターの作成方法@romanlapa
2,562 測定値
2,562 測定値

ソフトウェア コスト カリキュレーターの作成方法

Roman Lapa10m2023/04/26
Read on Terminal Reader

長すぎる; 読むには

この記事では、非常に正確な見積もりを生成するソフトウェア開発コスト計算ツールを作成した経験について詳しく説明します。続きを読んで、ソリューションが内部でどのように機能するかを確認してください!
featured image - ソフトウェア コスト カリキュレーターの作成方法
Roman Lapa HackerNoon profile picture
0-item
1-item

カスタム IoT ソリューションを構築する小さなソフトウェア開発会社の CTO として、私はチームメイトが見込み顧客向けのプロジェクト見積もりを作成する際にアプリケーション開発コストを評価するのを手伝っています。


私たちは主にスタートアップと仕事をしているため、クライアントは予算に非常に敏感です。

理想的には、すべてのソフトウェア開発プロジェクトを発見段階から開始し、早い段階で製品の機能要件と非機能要件を掘り下げます。その結果、機能プロトタイプから MVP、本格的な製品まで、製品の機能セットを定義し、現実的で正確な見積もりを出すことができます。


理想的には - しかし、発見にもお金がかかるため、わずかな資金で運営されているスタートアップには当てはまりません.*


一部のクライアントは、テクノロジー ソリューションの開発費用に関して非現実的な期待を抱いている場合もあります。スタートアップが 1 万ドルで Facebook のクローンを構築しようとしているというジョークを聞いたことがあるでしょう。


したがって、私は、クライアントが私のチームに連絡する前に、テクノロジーのアイデアを実現するための球場の価格をクライアントに与えながら、私たちの側での評価作業を最小限に抑えるというアイデアをいじっていました.必要に応じて、リアリティ チェックを行います。 🙂


それが私の頭の中でソフトウェアコスト計算機の概念が形成された方法です。


根っからのオタクであり、職業はモバイル開発者である私は、一石二鳥であることに決めました。上記の目標に加えて、Flutter に関する知識も試しました。私は、JavaScript に頼ることなく、iOS デバイスと Android デバイス、およびブラウザーでシームレスに実行されるクロスプラットフォームのソフトウェア コスト計算アプリケーションを開発しました。


Flutter は、そのタスクに対して十分に安定して効率的であることが証明されました。私は、忠実な顧客へのクリスマス プレゼントとして、シングルボード コンピューターに基づいた物理計算機を作成することさえ考えています。さらに、仲間の開発者は、この計算機を使用して、専門外の特定のテクノロジ ソリューション (またはその一部!) を開発するための価格を評価できます。


とにかく、この記事では、ソリューションを作成した私の経験と途中で遭遇した課題について詳しく説明します。


それでは、行きましょう。


ソフトウェア開発コスト計算ツールのアイデアをどのように実現したか

わかりました、わかりました、私はあなたが何を考えているか知っています。


*小規模なオンライン ストアであろうと完全なオンライン ストアであろうと、ソフトウェア ソリューションのエンジニアリング凍結療法ユニットを編成するためのバックオフィス システム、曲がりくねった長い道のりで、何百ものターンや落とし穴があり、回避する必要があります.*


また、製品の機能セット、UI/UX 要件、最適なテクノロジ スタック、対象ユーザー、コンプライアンス規定、その他多数の問題をリストした包括的なソフトウェア要件仕様 (SRS) ドキュメントを準備していない限り、値札を付けるのは不可能です。あなたの申請。


これらはまさに私の懸念事項でした。そこで私は、他のソフトウェア エンジニアが私の前に推定精度の問題にどのように取り組んだかを確認することにしました。


複数のソフトウェア コスト計算ツールをテストした結果、ソリューションを作成する際に覚えておくべきいくつかの問題を特定しました。


  1. 競合他社の電卓は、技術に詳しくないユーザーのニーズを完全に無視しています。たとえば、プログラミングに慣れていない場合、アプリで使用されるプログラミング言語をどのように知る必要があるのでしょうか?この問題をナビゲートするために、付属のランディング ページに電卓の使用方法に関する詳細なガイドを必ず書きました。


  2. 一部のソリューションでは、ソフトウェア製品を構築するのではなく、ソフトウェア チームをセットアップするコストを見積もっています。以前にソフトウェア エンジニアリング会社と仕事をしたり、自分で会社を経営したりしたことがない限り、ソフトウェア チームの最適な構成やチーム内での役割など、ソフトウェア開発の内部をおそらく知らないでしょう。そのため、私は開発者の責任ではなくソフトウェアの機能に焦点を当て、計算を簡素化するために混合レート修飾子を実装しました。


  3. ほとんどの計算機は、ビジネス用の電子メール アドレスと引き換えに見積もりを提供するだけです。私はマーケティング担当者ではなく、ソフトウェア エンジニアです。 🙂 サービスを宣伝する電子メールで企業を攻撃するのではなく、企業の問題を解決したい。彼らが助けを必要とする場合、彼らはとにかく私たちに手紙を書くでしょう!そのため、私の計算機はデータを収集しません見積もりを取得する前にフォームに記入する必要はありません。私たちが知っているのは、誰かがソフトウェア コスト計算機のランディング ページにアクセスし、すべてのボックスにチェックを入れ、見積もりを受け取ったことだけです。

My Calculator がカスタム ソフトウェア開発のコストを評価する方法

私の計算ツールは、アプリケーションのターゲット プラットフォームと期待される機能を考慮して、正確なソフトウェア コストの見積もりを作成します。次に、プロジェクトの段階と業界固有の影響に基づいて、カスタム ソフトウェアの価格を下げたり上げたりするために、さまざまな変更が実装されます。最後のステップでは、ソフトウェア開発の労力 (人時で見積もる) に混合 IT チーム率を掛けます。


評価メカニズムを考案するために、私は自社が完了した 20 以上のプロジェクトと、パートナーのポートフォリオからの 12 のプロジェクトを調査しました。これらのプロジェクトは、イベント予約アプリケーションからカスタム スマート ホーム ソリューションまで、規模も複雑さもさまざまでした。人工知能や AR/VR などの一部のテクノロジーやソリューションは、私がそのようなアプリを作成することはめったにないため、意図的に電卓から除外されています。このように、計算機は私の会社の中核となる専門知識を反映しており、その見積もりの正確性を保証できます。


計算機が考慮に入れる主なコスト要因は次のとおりです。


  • ターゲット プラットフォーム。特定のプラットフォーム (iOS、Android、Web、またはFlutterに基づくクロスプラットフォーム ソリューション) 向けに構築されたアプリケーションには、最小限の実行可能な機能セットがあり、合計で X 人時間のソフトウェア開発作業が必要になります。マルチプラットフォーム ソリューションを構築している場合は、時間にターゲット プラットフォームの数を掛ける必要があります。


  • 機能価格。すべてのアプリケーション機能(たとえば、エンドユーザーまたは管理者のプロファイル)には、Y 人時間の最小時間タグがあります。サブ機能を追加してアプリの機能を強化すると、労力は比例して増加します。


  • 修飾子。業界とソフトウェアの機能には、難易度乗数があります。たとえば、既存の医療システムとの統合、コンプライアンスなどの開発上の問題に対処するために、医療 IT プロジェクトの時間を 20% 増やしました。カウント。定数修飾子は、プロジェクト管理と品質保証の数値を見積もりに追加します。アプリの機能と対象のプラットフォームが評価されると、その数に 1.3 が掛けられ、時間数が 30% 増加します。最後に、製品の準備状況に基づいてソフトウェア開発のコストを評価するプロジェクト ステージ モディファイアがあります。ユーザーがアプリケーションのインターフェースのみを設計したい場合は、最終的な見積もりに 0.16 を掛けます。機能プロトタイプの場合、修飾子は 0.25 です。市場に投入するのに十分な機能だけを含むソフトウェア ソリューションの実用最小限の製品 (MVP) バージョンの修飾子は 0.5 ~ 0.75 です。最後に、開発工数 (工数) は、市場に投入できる製品の場合は 1 倍になります。


  • 開発者の時給。カスタム ソフトウェア ソリューションを構築する価格は、誰がそれを作成するかによって異なります。ソフトウェアエンジニアの時給は、専門性や経験、居住国によって大きく異なります。によるとAcceleranceによる最近の調査、これらの料金は、南アジアのモバイル開発者の 1 時間あたりわずか 25 ドルから、北米を拠点とするシニア ソフトウェア エンジニアの 1 時間あたり 172 ドル (さらに増加中!) までさまざまです。ソフトウェア コスト計算ツールを開発したとき、最終的な時間数に、会社が運営されている東ヨーロッパに駐在しているソフトウェア プロジェクト チームのブレンド率を掛けるようにプログラムしました。現在、1 人時あたり 41.6 ドル前後で変動しています。


以下に、上記の要因を合計して見積もりを作成する式を示します。

カスタム ソフトウェア開発のコストを計算するために、Flutter ベースの計算ツールは、サポートされているプラットフォームの数、プロジェクト ステージ、ソフトウェア機能の複雑さなど、いくつかのパラメーターを評価します。



あなたのためにこれを書きましょう:


  1. 機能がモバイル関連ではなく、複数のプラットフォームでの実装を必要としない場合、 featurePrice としてマークされます。


  2. avgFeatureComplexityMult は、プロジェクトの技術スタックとターゲット業界に基づいて見積もりを増やします。


  3. productStageMultiplier は、製品の望ましい段階、つまり、設計承認、プロトタイプ、MVP、または市場対応ソリューションを示します。


  4. クライアントが管理と品質保証の部分を処理しない限り、PM/QA 時間はすべてのプロジェクトに必須です。ただし、この場合、バグがコードに現れないことを保証できる開発者はいません。ここで少し説明します。一部の企業は、ベンダーが最初の試行でバグのないコードを生成することを期待しており、なぜ品質保証が必要なのかを真剣に考えています。


    それどころか、成熟したクライアントは、テスト コードの品質に関して十分な期待を持っており、ローンチ後のバグに対処することを避けるために QA に早期に投資します。


問題は、これらの見積もりがどれほど正確かということです。


CTO および上級 Android 開発者としての私の経験を考慮すると、ソフトウェア コスト計算ツールは、すべての単純なプロジェクトと中程度の複雑さのプロジェクトの適切な見積もりを提供します。


モノのインターネットなどの革新的な技術を含むより困難な取り組みの場合、計算機は最終的な見積もりを 10 ~ 13% 下げる可能性があります。そのような場合、ソリューションの技術スタックと機能セットを決定した後、価格を修正します。人工知能やサードパーティ サービスとの統合など、電卓から除外された機能やテクノロジが IT システムに組み込まれている場合も、改訂が必要です。

My Software Cost Calculator を使用してプロジェクトを見積もる方法

Web サイトの訪問者は、アプリケーションの次の特性に関する情報を入力する必要があります。


  1. ソリューション タイプ。このセクションでは、モノのインターネット、e コマース、教育、旅行、教育、その他の 6 つのカテゴリから 1 つを選択できます。
  2. プロジェクト段階。先ほどお話ししたように、プロジェクト ステージ モディファイアは、ソフトウェア製品の準備状況に基づいてソフトウェア開発のコストを増減させます。さまざまな製品段階の見積もりの違いから、顧客は、コンセプトをさらに進めて、リリース後のソリューションを強化するのにどれだけの費用がかかるかを知ることができます。
  3. ターゲット プラットフォーム。電卓の現在のバージョンでは、ユーザーはネイティブ モバイル アプリ開発技術スタック (iOS、Android)、Flutter で構築されたクロスプラットフォーム アプリ、ウェブおよびタブレット アプリケーションのいずれかを選択できます。ユーザー インターフェイスのカスタマイズが多いため、モバイル アプリのタブレット バージョンをスタンドアロン カテゴリとして選び出しました。
  4. UI/UXデザイン。予想される設計資産の複雑さに基づいて、UI/UX モディファイヤにより、見積もりに一定の工数が追加されます。機能プロトタイプでアプリの画面間のスムーズなナビゲーション遷移を作成しようとしているクライアントのために、リストにアニメーション機能を含めました。ユーザーが独自のデザイン アセットを提供する意思がある場合、見積もりは減額されます。
  5. ユーザーの役割。ソフトウェア コスト計算ツールには、アプリケーションの予想されるユーザー ロールをリストしたセクションが含まれています。これらは、エンド ユーザーから、企業のスタッフ、アプリケーション マネージャー、および顧客のニーズに対応するマルチレベル ソフトウェア ソリューションにまで及びます。
  6. サポートされている言語。ソフトウェア開発コスト計算機は、多言語の Web サイトとアプリケーションの見積もりを増やします。
  7. ログインオプション。ここでは、最もよく使用される 3 つのログイン メカニズム、つまりソーシャル メディア アカウント、電子メール アドレス、またはワンタイム パスワード (OTP) を選択しました。
  8. 顧客サポート。顧客と連絡を取り合いたいと考えている見込み客は、連絡フォームから統合チケット システムまで、複雑さの異なる利用可能なカスタマー サポート オプションを 1 つまたは複数選択できます。
  9. 収益化戦略。このブロックでは、ユーザーは 1 回限りの購入とサブスクリプションのどちらかを選択するか、収益化メカニズムをオプトアウトできます。
  10. コンテンツの種類。テキスト、写真、ビデオ、およびオーディオ ファイルを、ソフトウェア ソリューションで利用できる最も一般的な種類のコンテンツとして挙げ、ストリーミング機能を別の機能として追加しました。見積もりに複数のオプションを追加することが可能です。
  11. カスタマー サポート用のライブ チャットとオーディオ/ビデオ通話。前述のカスタマー サポート機能の一部として、ライブ チャットを使用すると、複数のユーザーが会話に参加してファイルを交換できる場合があります。音声通話とビデオ通話の機能は別途請求されます。
  12. 位置情報。ソフトウェア計算機を作成するとき、主要なジオロケーション オプションとして、ピンを使用したマップとルーティングを使用したマップを構成しました。
  13. イベント予約。アプリがイベント予約機能をサポートするかどうか、および誰がそれを実行できるか (管理者またはエンド ユーザーなど) に応じて、見積もりは増加します。
  14. 顧客エンゲージメント。ユーザーの関与を維持するための主要なメカニズムとして、プッシュ通知とディープリンクを選択しました。
  15. 満足と満足。電卓では、ユーザーは「いいね!」と「評価」のどちらかのみを選択できます。ユーザーは、プログレス バーやリーダーシップ ボードなどのゲーミフィケーション機能を追加することもできます。
  16. 分析。計算機は、アプリケーションの機能セットに基本的または高度な分析機能を含めることを提案します。ここでは、AI を利用した分析について話しているわけではないことに注意してください。
  17. コンプライアンス。カスタム アプリケーションが HIPAA、GDPR、PCI/DSS などの特定の規制に準拠する必要がある場合、見積もりは確実に増加します。
  18. コンテンツ管理。最後に、ソフトウェア コスト計算ツールは、基本的なコンテンツ オーサリング機能から適切な CMS および CMS とデータ視覚化の組み合わせまで、コンテンツ管理のニーズを明確にするようユーザーに求めます。

要約する

やりました!


ユーザーは大まかな見積もりを取得したので、ソフトウェア機能を手動で削除または追加したり、製品ステージを指定したりして、見積もりを調整することができます。


この記事を書いている間、私はフォームにも記入し、市場にリリースする準備ができているカスタム HIPAA 準拠の医療 IoT 製品の特性を選択しました。計算機は、3390.4 人時、または混合チーム料金 (41.6 ドル) を掛けると 140,992 ドルの見積もりを出しました。


プロジェクトのタイプ ( IoT ) とターゲット業界 (ヘルスケア) に起因する差異を考慮して、見積もりを 10% 増やしてみましょう。150,000 ドルが得られます。


これはカスタム IoT ソリューションの現実的な価格ですか?


記事の冒頭で参照したクライオ チャンバー ソフトウェア スイートは、クライアントが米国中の数十のフィットネスセンターやスパ サロンに設置された接続されたクライオ ユニットを管理するのに役立ちます。プロジェクトはまだ開発中ですが、現在の形で1,000,000ドル以上の費用がかかります、2 年前、ソフトウェア ソリューションが 3,000 人時を超えたとき、私が電卓を使用して見積もろうとした架空のプロジェクトとほぼ同じ機能を備えていました。


全体として、結果に満足しています。Flutter のテストに成功し、その堅牢なクロスプラットフォーム開発機能に自信を持ち、チーム側の評価作業を最小限に抑え、見込み客がソフトウェア プロジェクトの現実的な大まかな見積もりを事前に取得できるようになりました。ソフトウェアエンジニアリング会社に手を差し伸べます。


しかし、私はあらゆる種類の偏見を持っている可能性があるため、結局のところ、コードを書いたのは私です! — 電卓を試してみて、その機能と精度についての考えを共有することをお勧めします!


だから、下のコメントセクションを押してください!フィードバックをお待ちしております。