欠陥修正に割り当てられた総容量の平衡パーセンテージは、欠陥注入率に等しい。
もちろん、この率には多くの要因が影響します。チームが開発している製品の種類、チームが使用しているテクノロジーと技術的慣行、チームのスキルレベル、企業文化などです。
チームBを考慮して、完了した作業10ユニットごとに平均8ユニットのリワークを作成した場合、それらの8ユニットを作業すると、新しい6.4ユニットのリワークが作成されます。最終的に彼らが費やさなければならない総努力を、幾何学的進行の合計として見積もることができます。
10 + 8 + 6.4 + 5.12 + ...
バグの数は時間とともに指数関数的に減少しますが、チームBの指数には非常にゆっくりとゼロになる係数があります。実際、上記のシリーズの最初の3つの用語の合計は24.4だけです。最初の5つのうち33.6。最初の10、45の; シリーズ全体の50。したがって、チームBの要約:欠陥注入率0.8。機能開発、10/50 = 20%; 欠陥修正、80%。20/80は持続可能な容量の割り当てです。
対照的に、チームAははるかに良い形です。その進行は次のようになります。
40 + 10 + 2.5 + 0.625 + ...
このシリーズの合計は53 1/3であるため、チームAの機能開発割り当ては40 /(53 1/3)= 75%であり、欠陥修正割り当ては25%です。これは、10/40 = 0.25の欠陥注入率と一致します。 。
実際、最初の3つ以降のチームAシリーズのすべての用語は無視できるほど小さいです。これが実際的に意味することは、チームAはおそらく2、3のメンテナンスリリースですべてのバグをつぶすことができるということです。これは、どのチームでもそれができるという幻想も生み出します。しかし、チームBではありません。
デビッドアンダーソンの新しい本「かんばん」を読んでいるときに、この同等性について考えました。(この本は別のテーマになっていますが、品質の問題も扱っています。)ソフトウェアの品質について議論するとき、アンダーソンはCapers Jonesによるこの本を引用しています。
」... 2000年...北アメリカのチームのために測定されたソフトウェアの品質... 100個のファンクションポイントあたり3未満、1の200の範囲までのファンクションポイントあたり6つの欠陥の範囲であり、 中間点があたり約1欠陥であります0.6〜1.0の機能ポイント。これは、チームが欠陥の修正に90%以上の労力を費やすのが一般的であることを意味します。 "彼はバグの修正に90%を費やしている会社の同僚の例を挙げます。
アンダーソンが欠陥注入率からdeffix-fixing容量割り当てに至るまでの流さ(失敗の需要はその用語です)は、2つのことの同等性がソフトウェア品質研究者によく知られており、おそらくしばらくの間知られていることを示唆しています。
ここで提示しようとしている推論の行のキーワードは、「均衡」と「持続可能」です。持続可能性を奪う場合、これらの数字をごまかす明らかな方法があります。最初のコーディングを行ってから、別の場所のコードに進み、他の人にメンテナンスを任せます。または、技術的負債を使い果たし、新しい所有者に荷を下ろします。
明らかに、すべてのチームに適した特定の割り当てはありません。バグに20%を費やさなければならないと定めた場合、チームの欠陥挿入率が非常に低い場合、時間を埋めるのに十分なバグがないだけでなく、チームのバグが非常に高い場合、蓄積し続けます。
ここで使用した数学は非常に簡単です。取引コスト(計画と見積もりの会議、事後分析など)のようなものを無視しました。また、1つの製品を維持し、同時に別の製品を開発することをシミュレートする方程式も省略しました。しかし、結論は依然として有効です。ユニットテスト、継続的インテグレーション、コードレビューなどの技術的慣行の観点から、できる限りのことを行って、欠陥挿入率、ひいては障害の需要を減らします。10個の機能ごとに1つのバグしか作成できない場合、新しい機能を開発して顧客を満足させるための自由時間を十分に確保できます。