昨天在敏捷微信群拋出一個問題:
一個開發團隊開發了一個產品,在這個團隊里,我是客戶A的項目負責人,你是是客戶B的項目負責人,假設團隊每個迭代只能開發一個需求。
在安排下一迭代的開發計劃時,我希望做客戶A的一個需求,你希望做客戶B的一個需求,我們各執一詞,爭執不下,還差點打起來,差點朋友都沒得做了。請問怎么破?
其實這個問題的本質是如何相對客觀地計算出優先級,避免因為主觀因素帶來的沖突,客觀是指我和你都按照事先達成共識的優先級公式算出優先級,然后我們比較一下優先級就可以和諧地決定是我讓你還是你讓我,那么怎么計算出一個需求的優先級呢?我主要參考了下面五個模型:
- KANO定義了需求的3個層次:基本需求,期望需求,驚喜需求。
-
重要緊急矩陣
圖片發自簡書App - CFS定義了需求的三個特性:C代表普遍適用性,F代表使用使用頻率,S代表嚴重性。
- ROI,投入產出比,比如很多需求的實現代價接近于0,優先級就可以提高。
- 前置需求,這個需求沒做完,其它需求沒法做,或者做了以后還可能重做。
接下來的問題是怎么把這五個模型結合起來得出一個最簡和客觀的公式?
首先我想到的公式形式是:
優先級 = 權重1 x 因素1 + 權重2 x 因素2 + ... + 權重n x 因素n
因為這個公式可能會持續演化,我想讓第一個版本盡量簡單,所以先把所有權重都設置成1。因素可以從上述5個模型里面抽取,公式就變成了:
優先級 = 重要性 + 緊急性 + KANO + CFS + ROI + 前置需求
接下來的問題是如何量化每一個因素?為了盡可能簡單,我想到了用二值法去量化每個因素,一個因素的得分要不是10,要不是0,以重要性為例,如果重要,重要性=10,如果不重要,重要性=0,這個公式就變成了:
優先級 = 是否重要 + 是否緊急 + 是否是基本型需求 + 是否是普遍適用需求 + 是否是高頻使用需求 + 是否是代價接近0的需求 + 是否是前置需求
接下來的問題是怎么定義一個需求是否重要和是否緊急才能盡量排除主觀因素?
和產品目標相關的需求一定是重要的,比如我們今年的產品目標之一是服務好C行業的客戶,那么來自C行業客戶的需求就是重要的,那么就可以把是否重要替換成是否來自C行業客戶。通過把是否重要轉換成是否和某一目標緊密相關,就可以盡量排除主觀因素了。
最后還需要給是否緊急下一個定義,不然不同的人也會有不同的標準,比如我們可以把緊急的需求定義為:
有明確時間要求的需求,如果安排不進下個迭代,很有可能就會延期。
綜上所述,我的優先級公式的“內褲版”是下面這樣的:
優先級 = 是否和目標相關 + 是否有明確時間要求 + 是否是基本型需求 + 是否是普遍適用需求 + 是否是高頻使用需求 + 是否是代價接近0的需求 + 是否是前置需求
對于每一項,如果答案是“是”,則得10分,否則得0分,得分越高的需求優先級越高。