スクラムにおけるプロダクトバックログアイテム(PBI)の優先順位づけについて考えてみた ~ CD3を用いて考察 ~

####■ 前提
スクラムのフレームワークではプロダクトバックログを「ビジネス価値」によって優先順位付けします。しかし「ビジネス価値」をどのように計算するかについては、ほとんど指標はありません。
そこで、経済性で優先順位付けをするフレームワーク(Cost of Delay Divided by Duration)を適応します。

####■ CD3 (Cost of Delay Divided by Duration)について
プロダクトバックログアイテムの優先順位付けについて、CD3(Cost of Delay Divided by Duration)といった手法を適応します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/122901/bfc76619-918b-bd35-3b25-714368c068bb.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/122901/d3fa12d0-28ab-394e-4e76-ebbd908ea251.png)
引用 :  [Cost of Delay Divided by Duration](http://blackswanfarming.com/cost-of-delay-divided-by-duration/)

CD3とは、機能の「遅延コスト」を開発からデリバリーまでの見積もり時間で割ったものです。仕事を完了させるのに使える人員とリソースには限界があることを考慮しています。
つまり、ある機能の開発に時間がかかると、それは他の機能を「押しのける」ことになるのです。
引用 : [リーンエンタープライズ ―イノベーションを実現する創発的な組織づくり (THE LEAN SERIES)](https://www.amazon.co.jp/%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%A8%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%97%E3%83%A9%E3%82%A4%E3%82%BA-%E2%80%95%E3%82%A4%E3%83%8E%E3%83%99%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%AE%9F%E7%8F%BE%E3%81%99%E3%82%8B%E5%89%B5%E7%99%BA%E7%9A%84%E3%81%AA%E7%B5%84%E7%B9%94%E3%81%A5%E3%81%8F%E3%82%8A-LEAN-%E3%82%B8%E3%82%A7%E3%82%BA%E3%83%BB%E3%83%8F%E3%83%B3%E3%83%96%E3%83%AB/dp/4873117747/ref=pd_sim_14_4?_encoding=UTF8&psc=1&refRID=MH7HHR0JGT9CEMEXA82P)

| 用語       |意味| 
|:-----------------|:------------------|
|Cost of Delay|遅延コスト(Featureが遅延することでのコスト) | 
| Duration           |           開発からデリバリーまでの時間 |     
| CD3 Score             |              遅延コストを開発からデリバリーまでの見積もり時間で割ったもの |  


####■ 例題
ex. 優先度が最高である、FeatureA, FeatureBがあるとします。
FeatureAは、機能を提供するまで、2週間かかります。納期を守らないと1週間あたり25万円損失します。
FeatureBは、機能を提供するまで、1週間かかります。納期を守らないと1週間あたり10万円損失します。
まとめると下記になります。    
  
| Feature       |       Cost of Delay |    Duration   |CD3 Score         |
|:-----------------:|:------------------:|:------------------:|:------------------:|
| FeatureA             |             50万円 / week |        2weeks        |  25        |
| FeatureB         |            10万円 / week |       1week       |10       |
ここで考えられる優先度順位付け方法は3つあると考えられます。

<img width="1009" alt="スクリーンショット 2017-12-07 23.51.44.png" src="https://qiita-image-store.s3.amazonaws.com/0/122901/f5586f64-324c-963e-7c1f-21f30720a78d.png">

上記、3つの中で、**「FeatureAを先にやる」**のがCD3的には最適解です。


###上記に加えて、各FeatureをDoneさせるPBI(プロダクトバックログアイテム)の優先順位をつけていきます。
例えば、FeatureAをdoneさせるPBIがA,B,CとありFeatureBをdoneさせるPBIがD,E,Fがあるとします。


①まず、各Featureをカテゴリー分けをして、<font color="Red">チームの中でどのカテゴリーを優先度高めにするかを決めます。</font>

| カテゴリー       |説明|優先順位 |  
|:-----------------|:------------------|:------------------|
|Business value(ビジネス価値)|単純な1年間で見込まれる売上額 | 優先順位1位|
| Technology risk(技術的リスク)|そのリスクが発生したときに損失する額 | 優先順位2位|
| Advance investment(先行投資) |その投資をした際にどれだけの売上額がみこまれるか。 |優先順位3位|



上の例題にCD3を適応し、CD3 Scoreを算出してみたいと思います。

| Feature       |       Cost of Delay |    Duration   |CD3 Score         | カテゴリー | 優先順位 |
|:-----------------:|:------------------:|:------------------:|:------------------:|:------------------:| :------------------:|
| FeatureA             |             50万円 / week |        2weeks        |  25        |Business value + Advance investment | 1位   |
| FeatureB         |            10万円 / week |       1week       |10       | Technology risk| 2位|


②プロダクトバックログアイテムのレベルの付け方について下記に記載していきます。

各FeatureのCD3のScoreから優先度をつけてしまうと、すべてのPBIが優先度が高いFeatureで独占されてしまうので新しく指標が必要です。
計算式は下記のようなものを想定してみます。

```
Featureベースのレベル x PBIベースのレベル = 優先度レベル
```

Featureベースで出したCD3 Scoreをもとにサービスレベル(重み)をつけます。
まず、各FeatureのCost of Delayからサービスレベルを定義します。

|カテゴリー       |カテゴリーのレベル(重み)| 
|:-----------------|:------------------:|
|Business value(ビジネス価値)|3 | 
| Technology risk(技術的リスク)|2 | 
| Advance investment(先行投資) |1|

| Feature       |       Cost of Delay |    Duration   |CD3 Score         | カテゴリー | 優先順位 | Featureベースのレベル(カテゴリーのレベルより) |
|:-----------------:|:------------------:|:------------------:|:------------------:|:------------------:| :------------------:| :------------------:|
| FeatureA             |             50万円 / week |        2weeks        |  25        |Business value + Advance investment | 1位   |4(3+1)|
| FeatureB         |            10万円 / week |       1week       |10       | Technology risk| 2位| 2| 

プロダクトバックログアイテムベースにも該当するFeatureをもとにそのFeatureの中でどのくらい重要かを3段階評価でサービスレベルでつけます。

| PBIベースのレベル       |  重要度   | 説明 | ex |
|:-----------------:|:------------------:|:------------------:|:------------------:|
|3|最重要| このアイテムが完了しないとローンチできない。| FeatureA:フロント画面作成|
|2|重要 | このアイテムが完了しなくてもローンチはできるが、非機能要件やSLO,SLAが満たせない|FeatureA:API作成,FeatureB:API作成|
| 1 |中 |このアイテムが完了しなくても問題はないが、将来的に必要になったりする運用上少々手間になる。|FeatureB:フロント画面作成|

最終的に上のexで出したPBIの優先度は下記になります。

| 優先順位       |  PBI |    PBIベースのレベル   |　Feature       | 　Featureベースのレベル | 計算式 | 優先度レベル |
|:-----------------:|:------------------:|:------------------:|:------------------:|:------------------:| :------------------:| :------------------:|
| 1             |  FeatureA:フロント画面作成 |  3  |  FeatureA  | 3 | 3 x 3   | 9|
| 2         |   FeatureA:API作成 |  3 | FeatureA | 2 | 3 x 2| 6| 
| 3         |   FeatureB:API作成 |   2  | FeatureB | 2 | 2 x 2| 4| 
| 4         |   FeatureB:フロント画面作成 |   2  | FeatureB | 1 | 2 x 1| 2| 

以上です。