20%の時間の主な理由は、容量の使用率を100%ではなく80%に維持することです。
ソフトウェア開発組織は、機能要求を開発された機能に変換するシステムと考えることができます。キューイング理論を使用して、その動作をモデル化できます。
理論
システムが要求を処理できるよりも早く要求が到着した場合、要求はキューに入れられます。到着が遅くなると、キューサイズは減少します。到着プロセスとサービスプロセスはランダムであるため、キューサイズは時間とともにランダムに変化します。
数学的に傾倒している人は、この「ランダム性」について尋ねることができます。何らかの確率分布がなければならないので、キューサイズは平均で何になりますか?数学(キューイング理論)には答えがあります。到着プロセスとサービスプロセスの両方がマルコフである場合、N = rho ^ 2 /(1-rho)です。
(ここで、rhoはサービスと到着率の比に等しい使用率です。プロセスが非マルコフの場合、計算はより複雑になりますが、結論は変わりません。)
この関数をプロットすると、平均キュー長は低いままですが、使用率は最大0.8であり、その後急激に上昇して無限になります。これは、コンピューターのCPUについて考えることで直感的に理解できます。使用率が100%に近づくと、コンピューターが応答しなくなります。
練習
ソフトウェア開発の経済性により、ソフトウェア会社は、キューが高キュー状態にあるときに大きなコストが発生します。これには、見逃された市場機会、時代遅れの製品、プロジェクトの遅れ、需要を見越して機能を構築することによる無駄が含まれます。
したがって、20%の時間は、経済的な結果を最適化する問題に対する科学的な答えです。高キュー状態を引き起こす使用率を回避することで、高キュー状態を回避します。基本的に、システムの応答性を保つのはスラックです。
いくつかの実際的な結論がすぐに続きます。
- 20%の時間を考慮して原価計算を行っている場合(開発者の時間はXになりますが、/および会社はそれを購入できる/できない)、それは間違っています。
- 毎週金曜日に20%を割り当てている場合、それは間違っています
- 20%の時間のプロジェクト提案提出/レビュー/承認システムをセットアップしている場合、それは間違っています。
- タイムシートに記入している場合、間違っている
- イノベーションを20%の時間の動機として使用している場合、それは間違っています。新製品は20%のプロジェクトから生まれましたが、それはポイントではありませんでした。あなたの会社がコア時間中に革新できない場合、それは問題です!
- 20%の時間は創造性ではありません。20%の時間であなたの創造性を解き放つと言ってはいけません。なぜあなたがコア時間中に既に十分に創造的でないのかを尋ねてください。
コメントの質問に対する回答
ダン、あなたはその権利を得て、多くの人が犯した間違いを正確に説明しました。使用率は出力変数であるため、選択できません。これは、2つのプロセスの特性の比率であるため、プロセスがそのままの状態であるため、そのとおりです。組織は両方のプロセスに影響を及ぼします。能力と需要のマッチングは、無駄のないソフトウェア開発知識体系が取り組む困難な問題の1つです。使用率は、組織内でこの問題がどれだけうまく解決されたかを示す指標の1つです。無駄のないイニシアチブが進むにつれてスラックが発生し、バリューストリームから無駄を取り除きます。ただし、20%の時間を義務付けると、使用可能な容量が少なくなり、同じ使用率トラップに陥ります。
キム、それはまだ部分的に文化的なものです。私が考えることができる最も近い文化的参照は、組織変化のいわゆるマーシャルモデルの相乗レベルです。これは、リーン変換の成功の終わりに現れるか、最初からリーンに構築された組織に存在します。(ボブマーシャルのホワイトペーパー(PDF)へのリンクです。)
参考文献
上記のロジックは、ソフトウェアエンジニアリングの文献で十分にサポートされています。メアリーとトムポッペンディークは、2006年の本「リーンソフトウェア開発の実装」でそれをほのめかしました。ドナルド・ライナートセンは、2009年の本「製品開発フローの原理」(第3章)で、式とグラフを使用して、この主題を徹底的に扱っています。