對於軟件開發人員來說,這是工作中最困難的部分,即使不是最困難的部分。它必須考慮一系列因素,幫助產品所有者做出影響整個團隊和業務的決策。
在軟件開發過程中,團隊經常會遇到一個問題:
如何估計工作時間更準確?
對於項目或產品的所有者來說,這是衡量項目資源和時間表的一個非常重要的信息,但實踐這會帶來許多問題。
許多開發人員總覺得PM正在使用最后期限來回推送。他們不關心功能是否可以满足質量。
“首先完成它,然後尋求更好”因此已經在軟件行業中流傳了很長時間。
許多PM總是覺得開發人員在評估他們的工作時最傾向於“誇大”。似乎他們都使用典型的工作估計方法:“估計實際需要時間的三倍作為緩衝”“
事實上,工作時間不能估計為“絕對準確”,但有一些方法可以估算“相對客觀”。由於工作時間和要求的複雜性,通常存在正相關關係。因此,本文將首先解釋響應需求復雜性的常見問題,提出一個解決方案,並解釋解決方案中許多設計的目的。
這裡提出的解決方案是估算Scrum中需求復雜性的常用方法,但即使它不是Scrum團隊,也建議讀者根據原則和設計目標確定評估團隊的最佳方法。 。
請記住,這個世界沒有靈丹妙藥,其他人的最佳實踐方法並不一定適用於您的團隊,因此首先要了解您的團隊目前遇到的問題,然後找出適合您解決你自己實踐問題的方法。 ,只要它不會引起新問題或新問題的成本風險是可以接受的。
這裡用來估計需求復雜性的單位是故事點(相對單位),而不是工作時間(絕對單位)。這樣做有幾個原因:
1.比較不會因人而異:要求的複雜性通常不會因人而異,實踐所需的時間也許會因人而異。
2.“相對”比“絕對”更容易評估:如果查看工作時間,則需要估算絕對數量,並且需要在估算過程中考慮實施細節。要使用故事點來估計複雜性,您只需要將大小與其他要求進行比較。
例如,很難估計清楚“A塔高幾米”,但更容易指出“A塔比那座建築高約2倍。”
3.估計用戶故事的故事點的壓力小於估計其工作時間:因為關注需求本身,而不必擔心自己的資源和項目資源,只需評估需求的複雜性。在估算過程中,團隊成員壓力較小,並像遊戲一樣參與軟件開發。
接下來,解釋解決方案的各個方面。
在決定誰来做之前進行評估:這樣做的好處是最大限度地減少開發人員的個人因素。因為知道由誰做,所以不需要因為您自己的任務或最后期限而故意高估去添加緩衝區。
只有做事情的人一起評價:兩個關鍵點:
使用規劃撲克來估計故事點。
估計Scrum 中用戶故事大小的最常用方法是分配故事點。故事點只是從設定大小的數字池中抽取的數字,例如,故事可以具有1,2,3,5,8,13,20,40或100個故事點。
在菲舍爾系列有一個有趣的功能,並且每個數字是前兩個數字加。另一方面,數字與下一個數字之間的間隙越大,差異越大。
如上所示,8和13之間的差距是5,而13和20之間的差距是7.但是,這與估計需求的複雜性有何關係?我們不在數學課上。
估計也有一個特徵,即越大越不精確,需求或任務被削減到更精細的粒度,通常估計更準確。就像在杯子中安裝一塊大的不規則石塊一樣,中間會有更多的間隙,這是不對齊或浪費的部分。如果你安裝一個更細和相同的不規則的石頭,間隙將相對較小,並且它易於調整,它可以更方便地填補空隙。
即使先前數字的差異相對較小,也無關緊要,因為數量很小,這意味著搬家靈活且風險低。如果由於某些因素導致時間估計不准確,則前面的小數字的任務是大約20分鐘的加班時間。而不是加班2或5天。
因為大的數字間隙很大(費米系列的兩個前後值的差值接近1.618),所以可以避免估計“這種複雜性是20還是21”。“要麼要想13,要麼20,要麼40。
這種差距可以突出相同要求的估計差異,因為幾乎所有這些差異都要差1.5倍。這個比例很容易讓人們判斷相對大小,因此可以減少許多細微差別和不必要的重新估算過程成本。
另外,上面的圖片可以看到一些特殊的數字,分別是0,無窮大和問號。
1.首先定義復雜度單位1,例如單表綜合查詢的功能。由於我們的估算過程是基於相對規模,我們首先定義比較基準的單位,並在團隊估算後有比較的基礎。
2.主持人大聲說出要求(例如用戶故事卡),以確保每個人都了解要求,每個人都有自己的估計複雜性。使用計劃撲克的原因是因為您評估的數字可以同時顯示,而不是旋轉您評估的數字。很容易將數字輸出並導致其背後的人的結果受到之前數字的影響。
3.如果團隊中有不同的估計,估計這兩個估計是最小的和最大的,他們將評估它們複雜或簡單的原因。在上面的例子中,在估計過程中,如果一個人估計故事點是13,大多數人估計20和另一個人估計40。13和40差不多3倍,所以基本上必須有一些重要信息沒有同步。
例如,估計13的人認為這種需求幾乎與過去的某個要求相同,而且這個要求並不像想像的那麼複雜。估計40的人可能會感到相對複雜,因為他對這個要求或過程不夠熟悉。
4.最低和最高數字完成評估的原因並進行進一步投票。如果仍然有不同的投票數,並且絕大多數人都達成了共識,並且沒有達成共識,估計的複雜性只是遠離共識複雜性的一個級別,您可以詢問估計不同數字的成員是否他們可以接受您評估的數字。
5.如果數字仍有差距一个级距以上,或者無法達成共識,請重複步驟3到5,直到達成共識。
同樣,只有那些實際執行任務或完成要求的人才能參與投票過程,而PO / PM不能干涉。
這種估算方法有幾個優點:
通過上述估算過程,這樣的決定是公開,透明,客觀和自願的。對於兩個角色:
本文提出的解決方案是一種常見的解決方案。重點不在於形式,而是在敏捷估計過程中每個環節的設計目的,以解決什麼樣的問題。最後,敏捷估計只是:估計。不是滴血為誓。