約1年ぶりに担当が回ってきました。
温泉大好き大澤です。
最近はサウナにも手を出し始めました。
今回はバックログの優先順位付けについてお話しします。
はじめに
まずは以下の図をご覧ください。
〇△▢の3つの課題があるとします。
それぞれ課題の価値と工数を記載していますが、みなさんはどんな優先順位をつけるでしょうか。
この場合多くの方は〇→△→▢の順で優先順位をつけるのではないでしょうか。
極端な例なので直感で判断できますが、
おそらく頭の中では価値を工数で割って大きいものを並べたと思います。
今回お話しするのはWSJFという上記の内容をベースにした考え方です。
WSJFとは?
WSJF(Weighted Shortest Job First)は優先順位付けモデルの1種で、
より価値が高く、より短期間でできるものを重視する考え方です。
式としては以下のようになります。
式の通り、遅延コストを期間で割ることで点数を出していきます。
遅延コスト
遅延コストとは価値を提供することが遅れることによって発生する損失(金額や価値)のことです。
言い換えると課題を解決することによって、生み出すことのできる利益と捉えることができます。
金額であれば分かりやすいですが、
ビスネス的な価値や緊急性など複数の要素を絡めて考えるため、
プロダクトによって調整する必要があります。
期間
期間は課題を解決するのにかかる期間のことです。
具体的な期間を出すのが難しければ、
Tシャツ見積などを用いてXS~Lの中で規模感に応じて設定しても問題ありません。
チームではTシャツ見積による期間の設定を採用しています。
WSJFの検討
次に式の内容を具体的に検討していきます。
大まかに以下のフェーズで検討します。
- 課題の優先度に関わる要素を洗い出す
- 要素それぞれの具体的な基準値を決める
- WSJF式を検討する
- 課題に当てはめながら調整する
それぞれ具体的に説明します。
課題の優先度に関わる要素を洗い出す
まずは優先度に影響を与える要素を洗い出します。
WSJFは期間(規模感)を利用するので期間は必須ですが、
チームではその他に以下を要素として定めました。
- ビジネス的な価値(3C分析を利用)
- 対応期限
- 影響範囲
- お客様とやり取りしている開発部門の声(お客様の声)
- 期間
要素それぞれの具体的な基準値を決める
洗い出した要素それぞれに具体的な基準値を決定していきます。
以下は例なので、検討のしやすい基準値を考えます。
ビジネス的な価値
ビジネス的な価値は3C分析を利用することにしました。
3C分析ではCustomer(市場・顧客)、Competitor(競合競争力)、Company(自社収益)の3つ軸で考えます。
この3軸をそれぞれ5点満点で点数付けすることにしています。
対応期限
課題それぞれの対応期限を設定しています。
今すぐやらなければならないものから、いつでも良いものまで5段階で検討しました。
点数は10点満点として今すぐやらなければならないものは10点、
いつでもよいものは2点というように、段階それぞれを点数に紐づけています。
影響範囲
課題が解決されると恩恵を受ける範囲を考えます。
全員が恩恵を受けるものから一部しか恩恵を受けないものまで3段階で点数を紐付けます。
お客様とやり取りしている開発部門の声(お客様の声)
チームではエンハンス開発を実施しているため、課題はTeamsで収集しています。
Teamsに要望(課題)を投稿してもらい、共感できるものは👍マークで反応をいただいています。
ここまで出ている3要素はecbeingの製品部門が考える指標でしたが、
実際にecbeingを利用するお客様の声を式に反映したいため投稿についた👍の数を利用します。
投稿された課題についた👍の数をニーズと仮定して、式に反映します。
エンハンス開発ついては以下の記事でも触れていますので参考ください。
期間
前段でもお話しした通り、Tシャツ見積を採用しています。
課題の規模感や難易度を加味して、XSからXLまで5段階で点数を紐付けます。
WSJF式を検討する
ここから具体的な式を検討します。
価値 ÷ 期間が基本の形なので、こちらに当てはめていきます。
今回は以下のように定義しました。
価値(期間を除く各基準値の総和)÷ 期間という形です。
また3C分析のみ各Cの要素に重みを付けています。
Customerには3倍、Competitorは1.5倍といったような形です。
こちらを踏まえて式を表すと以下です。
課題に当てはめながら調整する
最後にバックログの中から規模や重要度など違いの出そうなものを20~30程度選び、
実際にWSJFを計算してみます。
この並び順を見ながら、違和感のある部分があれば式や基準値の調整をします。
今回は3Cの重みづけの値や期間の値の調整が多かったです。
注意点として、無理やり調整しようとしないことです。
どんなに調整しても並びに違和感がある場合、必要な要素が検討から抜けていることも考えられます。
このような場合は要素を検討し直してから、再度式の調整をします。
WSJFの運用
決定した式を利用してバックログを運用します。
課題の発生都度、もしくは1~2週間に1度まとめて課題ごとの要素の得点を決定しWSJFを計算します。
要素の得点は可能であればステークホルダーも交えて、
技術的な意見、ビジネス的な意見などを出しあえる複数名で決定するとより精度が上がります。
WSJFが決定したら、点数の高い順に並べ替えます。
点数の高い順に課題に着手することで、
価値の高い課題からプロダクトに反映していくことができます。
メリット・デメリット
ここまでWSJFの検討から運用までお話してきましたが、
自分がこれまで感じたメリット・デメリットもお話しします。
メリット
- とにかくバックログの並び替えが楽
- 基準が明確なので納得感がある
- 開発チームも課題のどこに価値があるのか分かりやすい
特にバックログの並び替えが楽になるのは大きいのではないかと思います。
基本的にはWSJF順に並べ、必要に応じて部分的にバックログを並び替えるような運用イメージです。
POだけではなくステークホルダー交えて検討会をすることでより納得感の出る順番になると思います。
デメリット
- 要素の得点基準の見直しが必要になることがある
- PO以外も定期的に検討会に招く必要がある
- 式の調整が少し大変
目立ったデメリットは特にないのではないかと思います。
得点基準の見直しが発生すると全課題を検討し直す必要が出てくるので、
初めによく検討すれば大きな問題にはなりません。
さいごに
いかがだったでしょうか。
WSJFを利用することでより価値の高い課題を定量的に特定し、
効率的に並べ替えもできるようになります。
WSJFは優先度付けモデルの一つなので、
いろいろ検討してチームに合ったものを選んでください。
それではより良いバックログライフを!
ecbeingではモダンを追い求めるエンジニアを募集しています!!
careers.ecbeing.tech