Articles

the cone of uncertainty experiment

the cone of uncertaintyは、プロジェクトの開始時の知識(またはその欠如)の量に基づいて、プロジェクトを完了するために必要な時間 この記事では、不確実性のコーンの適用がプロジェクト推定をどのように高めることができるかを決定するために、Codebotsの人々のチームによって行われた実験

ソフトウェア推定シリーズの一環として、ソフトウェアプロジェクトの一環として期待を管理することの重要性を検討しました。 この記事では、スコープと推定プロセスに関わるリスクを軽減するための強力なツールである不確実性の円錐に焦点を当てます。 その中核となるのは、プロジェクトの開始時の知識(またはその欠如)の量に基づいて、プロジェクトを完了するのに必要な時間についての不確実性 最終的には、未知数のためにプロジェクトが吹き飛ばされるリスクと、将来的に推定しようとするほど、間違っている可能性が高くなります。 将来を正確に予測したいという興味深いパラドックスですが、それは推定だけであるため正確ではありません。

画像

あなたはまだ持っていない場合には、私はあなたが私たちが最高のソフトウェアのリスクを管理する方法を発見するため その練習の動機は、推定を行うことになったときに、私たちのソフトウェアチームから頻繁に過度に最適化されました。

実験を提案するための最良の手順を自分自身に装備したので、私たちは固定スコープ推定で問題を特定しました。 すべての見積もりには、プロジェクトの長さに関係なく、行われた作業に最小80%の変動が含まれていました。 私たちは不確実性のコーンを適用しなかったので、現実的な見積もりを顧客に提供し、彼らの期待を管理する能力は大幅に妨げられました。ステップ1

ステップ2

ステップ3: 問題を理解する

上記のように、見積もり段階で固定スコープ価格を提供するときに発生する見積もりで問題が発生しました。 (固定スコープは、与えられた正確な要件を提供することを意味しますが、柔軟な時間の長さのために)。 プロジェクトの長さに関係なく、私たちは常に大量のバリエーションを持っているために行きました。根本的な原因-私たちは不確実性のコーンを持っていませんでした。

私たちは、あなたが将来予測しようとするほど、時間分散の増加が大きくなるという事実を考慮していませんでした。 これは、いくつかの特定のリスクが存在するためであり、最も深刻なものは不正確な見積もり、範囲の変動、エンドユーザーの関与である。 それはすべて最初に推定されたので、これらの発見されたリスクを考慮するために推定を変更する機会はありませんでした。 代わりに、これらのリスクの影響は、プロジェクトの寿命にわたって配合されている、長いプロジェクトを意味し、より多くのあなたが予測しようと、したがって、より多くのあなたが間違っている可能性が高いです。ステップ2

ステップ2

ステップ3: 仮説を立てる

問題を消化した後、我々は次に、不確実性の円錐が固定スコープ推定にどのように正確に適用できるかをテストする仮説の開発に取り組このことから、プロジェクトの長さを考えると、不確実性の円錐のサイズを計算するために式を使用できると仮定されました。

ステップ3:実験を計画する

私たちの仮説を装備して、我々は不確実性の円錐の命題をテストする実験を計画することに進みました。 これを行うために、我々は開発の予測週数を表すパラメータを使用して、私たちの円錐をシミュレートするために二次関数を生成しました。 次に、予測しようとしていた将来のどれくらいに基づいて、この乗数を推定に適用して、時間分散を説明することができます。

画像

これを以前のプロジェクトの推定データに適用すると、変動を伴う固定スコープ価格がより正確であるかどうかを判断できます。ステップ4

ステップ4

ステップ5: データを収集します

私たちは、割り当てられ、取られた時間に関する情報を含むプロジェクトの様々なデータを収集し、ストーリーが完了し、プロジェクト

推定値を取って、不確実性の円錐を使用して、各プロジェクトの仮想的な固定スコープ値を計算しました。 この情報を用いて,最初の作業と追加の変動の両方を完了するために実際に開発にかかった時間が,不確実性の円錐を用いて生成された新しい推定値に匹敵するかどうかを調べることができた。 結局のところ、改善された推定と実際にかかった時間は非常に似ていました!ステップ5

ステップ5

ステップ5: 決定を下す

最終的に、データは、プロジェクトの長さを考慮した式を使用して、不確実性の円錐を固定スコープに適用すると、プロジェクトの開発に伴う分散を考慮した推定に終わることを示しました。

最終的には、プロジェクト全体を見積もるのではなく、開発チームは少量の作業にのみ焦点を当て、見積もることをお勧めします。 これは、未知数の影響、したがって不確実性の円錐のサイズを減らすのに役立ちます。 これはまた、チームがプロジェクトに取り組んでいるときにそれについてもっと学び、次の作業のチャンクを見積もることになると、不確実性を減らし、よ