ソフトウェアコストの見積もり[終了]


10

私の職場(大学)で見たほとんどの学生は、COCOMOを使用して、最終的な卒業証書の仕事のソフトウェア見積もりコストを作成しています。私の推測では、このコストの見積もり方法はやや古い(COCOMOの日付は1981)ので、私の質問は次のとおりです。

How do you estimate costs in your software?

私は次のようなものを見てきました:

コスト=(HoursOfWork + EstimatedIddle)* HourlyRate

それは私が欲しいものではありません、私は適切に(科学的に)定義されたコストモデルを探しています

編集私はSOでいくつかの関連する質問を見つけました:


30
「ソフトウェアのコストをどのように推定しますか?」他の皆と同じように貧弱です。
Rein Henrichs、2011年

1
これは実際には2つの質問です。難解なソフトウェアに依存しない1つの主要な質問としてそれを書き直すことをお勧めします。要件がココモに関する知識である場合、多くの答えが得られるとは思いません
エラン

@エラン、私はあなたのアドバイスをもとに質問を書き直します...
デビッド・コンデ

4
Steve McConnellは、ITの多くの人々からこの分野のソートリーダーと見なされています。あなたは彼の本を見ておくべきだ。stevemcconnell.com/est.htm
Jeff

5
ヘルプセンターで定義されている範囲内の概念的なプログラミングの問題に関するものではないため、この質問をトピック外として締めくくります。
durron597

回答:


16

ウォーターフォールモードで立ち往生している場合、私が使用したかなり正確な方法は次のとおりです。

  1. 作成ワークブレークダウンストラクチャを
  2. 各タスクの大きさを、自分(または話し相手)が以前に行ったことに関連付けることができるように、十分に詳細にしてください。
  3. 各タスクについて、経験に基づいて、最良の場合、予想される場合、および最悪の場合の数値を考え出します。最良のケースはすべてが完全にうまくいった場合であり、最悪のケースはそれをやり直さなければならなかった場合(多分2回)であり、おそらくそこにどこかにあるでしょう。
  4. (1 * best + 4 * probable + 1 * worst)/ 6のようないくつかの重み付け式を使用して、範囲を考慮した各タスクの見積もりを出します。
  5. また、各タスクに「リスク」コンポーネントを追加できるバリアントも見ました。リスクの3つのレベルは0、1、2です。リスク0は、以前に(または非常に近いもの)を実行したことを意味し、1は以前に実行したことがないが、業界で定期的に実行されていることを意味します2業界でこれまでに行われたことがないことを意味します。リスク数を取り、それに推定の「標準偏差」の近似値を掛けます。それを加重見積もりに追加します。したがって、リスクが0の場合は移動しませんが、リスクが2の場合は、ワーストケース番号にかなり近づきます。
  6. すべてのタスクを合計します。
  7. 「未知の未知数」の偶発性(いくつかの%)を追加します。

非常に正確な数値になります。正確ではありませんが、正確です。

正確さは、過去の経験に基づいて各タスクの数を考え出すことができるか、または以前にそれを行った誰かを見つけることができるかどうかに完全に依存します。経験が多いほど、見積もりが良くなります。

プロジェクトを実行するとき、各タスクに対する時間を追跡し、見逃したタスクを書き留めて、比較できるようにします。これは時間の経過とともにあなたをより良くします。


おかげで@Scott、私は...あなたのアイデアのようなものを推薦します
デヴィッド・コンデ

1
この方法で見積もりを行ってから、2番目の方法で個別に見積もります(および/または2人目が見積もりを行います)。結果を比較します。「直感」と大きく異なるものや大幅に異なるものについては、レビューが必要です。私の経験(25年以上)は、 "腸の感覚"が他のファンシーフォーミュラよりも正確であることが多いため、危険にさらされても無視してください。
mattnz

@mattnz-直感は同じ警告があります。それはあなたが多くの経験を持っている場合にのみ機能します。すべての顧客は、コーナーケースに関係する作業の量を理解していないため、コストが大幅に削減されるという「直感」を持っています。
スコットウィットロック

3
もう1つのヒント:「見積もりを交渉しません。<長い間>」は上司や顧客とのミーティングで非常に役立つフレーズです。結局のところ、あなたの自動車整備士または外科医はそれをしますか?彼は価格を交渉するかもしれません、彼はどんな仕事がされるか、それがどのように行われるか交渉するかもしれません、しかし私はソフトウェア以外のどの分野の専門家のための仕事人が仕事がかかるかどのくらいの時間交渉するかを見たことはありません。
mattnz

@mattnz-先週、自動車修理工と、ドアの修理にどのくらいの時間がかかるかについて交渉しました。
sixtyfootersdude 2015

3

ソフトウェアの見積もりは非常に困難です。私が使用した1つのアプローチは、要件をできるだけ細かく分割し、各部分を個別に見積もることです。次に、乗数(2倍)または固定金額(予期しない作業の場合はx時間)のいずれかである「ファッジファクター」を追加します。要件が適切でない場合、見積もりは実際には不可能です。


1
私が見た中で最も成功した見積もり(洗練された方法を使用した見積もりは含まない)は、元の見積もりをおよそ2倍にした見積もりです。
Bernard Dy

1
うん、ダブル。私が働いた中で最も政治的に成功したマネージャーの1人が開発者の見積もりを取り、それを3倍にし、ユーザーと交渉して2倍にしました。多くの場合、交渉された納期に達しました。
DaveE

0

業界は81年から30年間で多くのことを学びました。そのような見積もりはうまくいきませんでした。アジャイルの大流行によって基本的に風景が書き直されたため、ぼんやりとした「比較困難」を表す「ストーリーポイント」を使用します。次に、「速度」を取得して、マックマックがいくらかの量の経験的データを使用して$$推定を行えるようにします。


0

機能点の推定や、現代のアプリケーション用に設計されたそのいくつかのバリエーションなど、いくつかの「厳密な」アプローチを学びました。これらのアプローチの価値ある部分は、既知の要件のより詳細な分析を強制することであり、そうでなければ私がそれを提供することになると思います。

適切なモデルがある場合でも、適切なデータセットを取得することは非常に困難です。生産性の測定は難しい。人々はほとんどすべてのメトリックをゲームします。

私の組織は機能不全でソフトウェアの見積もりから利益を得ることができないため、使用をやめましたが、Cost Xpertグループとそのツールについては、ある程度考慮しています。しかし、それは非常に高価であり、おそらく大多数の組織にとって、コストと学習曲線に見合う価値はありません。


0

労力とコストを見積もるのは非常に困難ですが、より正確なものが必要な場合は、

  • HoursOfWorkを3つのコンポーネントに分割します。

    1. 最高の見積もり、
    2. おそらく推定
    3. 悪い見積もり。
  • EstimatedIddleを削除します。

8時間以上かかると、大きなエラーが発生することに注意してください。


0

私たちが通常行うことは、全作業範囲をサブプロジェクトと見なすことができる主要なモジュール/要素に分割することです。言い換えると、これらはクライアントがプロジェクトの個別の部分と見なし、クライアントが個別に見積もりたいワークパーツです。

完了したら、各モジュールをタスク、サブタスク、さらに小さなサブサブタスクに分割します。これにより、各モジュールを非常に簡単に見積もることができ、見積りに1〜10人時間かかります。このようにして、プロジェクトの作業範囲の詳細な内訳を取得します。

最後のステップは、マイルストーン間でタスクを分散することです。私たちは、各マイルストーンクライアントが目に見える結果を得るようにする方法をとっています。これは、あるマイルストーンをパスして別のマイルストーンに移動するのに役立ちます。したがって、最終的に次のようなものが得られます。

モジュール1

    <ol>
        <li>
            Primary task 1 - 5 hrs
            <ol>
                <li>Subtask 1.1 – 3 hrs</li>
                <li>Subtask 1.2 – 2 hrs</li>
            </ol>
        </li>
        <li>
            Primary task 2 - 9 hrs
            <ol>
                <li>Subtask 2.1 – 1 hrs</li>
                <li>Subtask 2.2 – 2 hrs</li>
                 <li>Subtask 2.2 – 5 hrs</li>
            </ol>

最初は、Excelシートを使用してそれを行いました。しかし、2年以上前に、そのためのソフトウェアツールを使い始めました。www.evenflow.comwww.swproposal.com、およびその他いくつかを支援する同様の製品はほとんどありません。私はすべてのリストを覚えていません。私たちはずっと前に研究をしました。お役に立てれば幸いです。

良い質問は、正確に推定する方法です。私たちが信じているように100%正しい推定はありません。唯一の方法は、全作業範囲を可能な限り小さなタスクに分割することです。小さなタスクでは、行うプロジェクトのより詳細なレビューと分析を行うことができます。とにかく精度が向上します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.