カスタム IoT ソリューションを構築する小さなソフトウェア開発会社の CTO として、私はチームメイトが見込み顧客向けのプロジェクト見積もりを作成する際にアプリケーション開発コストを評価するのを手伝っています。
私たちは主にスタートアップと仕事をしているため、クライアントは予算に非常に敏感です。
理想的には、すべてのソフトウェア開発プロジェクトを発見段階から開始し、早い段階で製品の機能要件と非機能要件を掘り下げます。その結果、機能プロトタイプから MVP、本格的な製品まで、製品の機能セットを定義し、現実的で正確な見積もりを出すことができます。
理想的には - しかし、発見にもお金がかかるため、わずかな資金で運営されているスタートアップには当てはまりません.*
一部のクライアントは、テクノロジー ソリューションの開発費用に関して非現実的な期待を抱いている場合もあります。スタートアップが 1 万ドルで Facebook のクローンを構築しようとしているというジョークを聞いたことがあるでしょう。
したがって、私は、クライアントが私のチームに連絡する前に、テクノロジーのアイデアを実現するための球場の価格をクライアントに与えながら、私たちの側での評価作業を最小限に抑えるというアイデアをいじっていました.必要に応じて、リアリティ チェックを行います。 🙂
それが私の頭の中でソフトウェアコスト計算機の概念が形成された方法です。
根っからのオタクであり、職業はモバイル開発者である私は、一石二鳥であることに決めました。上記の目標に加えて、Flutter に関する知識も試しました。私は、JavaScript に頼ることなく、iOS デバイスと Android デバイス、およびブラウザーでシームレスに実行されるクロスプラットフォームのソフトウェア コスト計算アプリケーションを開発しました。
Flutter は、そのタスクに対して十分に安定して効率的であることが証明されました。私は、忠実な顧客へのクリスマス プレゼントとして、シングルボード コンピューターに基づいた物理計算機を作成することさえ考えています。さらに、仲間の開発者は、この計算機を使用して、専門外の特定のテクノロジ ソリューション (またはその一部!) を開発するための価格を評価できます。
とにかく、この記事では、ソリューションを作成した私の経験と、途中で遭遇した課題について詳しく説明します。
それでは、行きましょう。
わかりました、わかりました、私はあなたが何を考えているか知っています。
*小規模なオンライン ストアであろうと完全なオンライン ストアであろうと、ソフトウェア ソリューションのエンジニアリング
凍結療法ユニットを編成するためのバックオフィス システム 、曲がりくねった長い道のりで、何百ものターンや落とし穴があり、回避する必要があります.*
また、製品の機能セット、UI/UX 要件、最適なテクノロジ スタック、対象ユーザー、コンプライアンス規定、その他多数の問題をリストした包括的なソフトウェア要件仕様 (SRS) ドキュメントを準備していない限り、値札を付けるのは不可能です。あなたの申請。
これらはまさに私の懸念事項でした。そこで私は、他のソフトウェア エンジニアが私の前に推定精度の問題にどのように取り組んだかを確認することにしました。
複数のソフトウェア コスト計算ツールをテストした結果、ソリューションを作成する際に覚えておくべきいくつかの問題を特定しました。
競合他社の電卓は、技術に詳しくないユーザーのニーズを完全に無視しています。たとえば、プログラミングに慣れていない場合、アプリで使用されるプログラミング言語をどのように知る必要があるのでしょうか?この問題をナビゲートするために、付属のランディング ページに電卓の使用方法に関する詳細なガイドを必ず書きました。
一部のソリューションでは、ソフトウェア製品を構築するのではなく、ソフトウェア チームをセットアップするコストを見積もっています。以前にソフトウェア エンジニアリング会社と仕事をしたり、自分で会社を経営したりしたことがない限り、ソフトウェア チームの最適な構成やチーム内での役割など、ソフトウェア開発の内部をおそらく知らないでしょう。そのため、私は開発者の責任ではなくソフトウェアの機能に焦点を当て、計算を簡素化するために混合レート修飾子を実装しました。
ほとんどの計算機は、ビジネス用の電子メール アドレスと引き換えに見積もりを提供するだけです。私はマーケティング担当者ではなく、ソフトウェア エンジニアです。 🙂 サービスを宣伝する電子メールで企業を攻撃するのではなく、企業の問題を解決したい。彼らが助けを必要とする場合、彼らはとにかく私たちに手紙を書くでしょう!そのため、私の計算機はデータを収集しません。見積もりを取得する前にフォームに記入する必要はありません。私たちが知っているのは、誰かがソフトウェア コスト計算機のランディング ページにアクセスし、すべてのボックスにチェックを入れ、見積もりを受け取ったことだけです。
私の計算ツールは、アプリケーションのターゲット プラットフォームと期待される機能を考慮して、正確なソフトウェア コストの見積もりを作成します。次に、プロジェクトの段階と業界固有の影響に基づいて、カスタム ソフトウェアの価格を下げたり上げたりするために、さまざまな変更が実装されます。最後のステップでは、ソフトウェア開発の労力 (人時で見積もる) に混合 IT チーム率を掛けます。
評価メカニズムを考案するために、私は自社が完了した 20 以上のプロジェクトと、パートナーのポートフォリオからの 12 のプロジェクトを調査しました。これらのプロジェクトは、イベント予約アプリケーションからカスタム スマート ホーム ソリューションまで、規模も複雑さもさまざまでした。人工知能や AR/VR などの一部のテクノロジーやソリューションは、私がそのようなアプリを作成することはめったにないため、意図的に電卓から除外されています。このように、計算機は私の会社の中核となる専門知識を反映しており、その見積もりの正確性を保証できます。
修飾子。業界とソフトウェアの機能には、難易度乗数があります。たとえば、既存の医療システムとの統合、コンプライアンスなどの開発上の問題に対処するために、医療 IT プロジェクトの時間を 20% 増やしました。カウント。定数修飾子は、プロジェクト管理と品質保証の数値を見積もりに追加します。アプリの機能と対象のプラットフォームが評価されると、その数に 1.3 が掛けられ、時間数が 30% 増加します。最後に、製品の準備状況に基づいてソフトウェア開発のコストを評価するプロジェクト ステージ モディファイアがあります。ユーザーがアプリケーションのインターフェースのみを設計したい場合は、最終的な見積もりに 0.16 を掛けます。機能プロトタイプの場合、修飾子は 0.25 です。市場に投入するのに十分な機能だけを含むソフトウェア ソリューションの実用最小限の製品 (MVP) バージョンの修飾子は 0.5 ~ 0.75 です。最後に、開発工数 (工数) は、市場に投入できる製品の場合は 1 倍になります。
開発者の時給。カスタム ソフトウェア ソリューションを構築する価格は、誰がそれを作成するかによって異なります。ソフトウェアエンジニアの時給は、専門性や経験、居住国によって大きく異なります。によると
以下に、上記の要因を合計して見積もりを作成する式を示します。
機能がモバイル関連ではなく、複数のプラットフォームでの実装を必要としない場合、 featurePrice としてマークされます。
avgFeatureComplexityMult は、プロジェクトの技術スタックとターゲット業界に基づいて見積もりを増やします。
productStageMultiplier は、製品の望ましい段階、つまり、設計承認、プロトタイプ、MVP、または市場対応ソリューションを示します。
クライアントが管理と品質保証の部分を処理しない限り、PM/QA 時間はすべてのプロジェクトに必須です。ただし、この場合、バグがコードに現れないことを保証できる開発者はいません。ここで少し説明します。一部の企業は、ベンダーが最初の試行でバグのないコードを生成することを期待しており、なぜ品質保証が必要なのかを真剣に考えています。
それどころか、成熟したクライアントは、テスト コードの品質に関して十分な期待を持っており、ローンチ後のバグに対処することを避けるために QA に早期に投資します。
問題は、これらの見積もりがどれほど正確かということです。
CTO および上級 Android 開発者としての私の経験を考慮すると、ソフトウェア コスト計算ツールは、すべての単純なプロジェクトと中程度の複雑さのプロジェクトの適切な見積もりを提供します。
モノのインターネットなどの革新的な技術を含むより困難な取り組みの場合、計算機は最終的な見積もりを 10 ~ 13% 下げる可能性があります。そのような場合、ソリューションの技術スタックと機能セットを決定した後、価格を修正します。人工知能やサードパーティ サービスとの統合など、電卓から除外された機能やテクノロジが IT システムに組み込まれている場合も、改訂が必要です。
Web サイトの訪問者は、アプリケーションの次の特性に関する情報を入力する必要があります。
やりました!
ユーザーは大まかな見積もりを取得したので、ソフトウェア機能を手動で削除または追加したり、製品ステージを指定したりして、見積もりを調整することができます。
この記事を書いている間、私はフォームにも記入し、市場にリリースする準備ができているカスタム HIPAA 準拠の医療 IoT 製品の特性を選択しました。計算機は、3390.4 人時、または混合チーム料金 (41.6 ドル) を掛けると 140,992 ドルの見積もりを出しました。
プロジェクトのタイプ ( IoT ) とターゲット業界 (ヘルスケア) に起因する差異を考慮して、見積もりを 10% 増やしてみましょう。150,000 ドルが得られます。
記事の冒頭で参照したクライオ チャンバー ソフトウェア スイートは、クライアントが米国中の数十のフィットネスセンターやスパ サロンに設置された接続されたクライオ ユニットを管理するのに役立ちます。プロジェクトはまだ開発中ですが、
全体として、結果に満足しています。Flutter のテストに成功し、その堅牢なクロスプラットフォーム開発機能に自信を持ち、チーム側の評価作業を最小限に抑え、見込み客がソフトウェア プロジェクトの現実的な大まかな見積もりを事前に取得できるようになりました。ソフトウェアエンジニアリング会社に手を差し伸べます。
しかし、私はあらゆる種類の偏見を持っている可能性があるため、結局のところ、コードを書いたのは私です! — 電卓を試してみて、その機能と精度についての考えを共有することをお勧めします!
だから、下のコメントセクションを押してください!フィードバックをお待ちしております。