軟體估算看似簡單,實則複雜且容易被忽視。這不僅僅是開發者的責任,還涉及許多外部因素和企業文化,這些因素會導致估算不準確,甚至毫無意義。在敏捷方法中,產品負責人(PO)根據範疇、資源和時間來做決策。估算直接影響這些決策。例如,一個估算需要一天的任務可能會立即被批准,而一個估算需要一年的任務可能會被推遲或取消。因此,準確的估算對於有效的決策至關重要。
然而,許多企業在實際推行敏捷方法時,存在一些問題。雖然表面上PO聽從開發者的估算,但實際上這些估算往往忽略了軟體工程或軟體品質所需的時間。PO可能認為這些工作是不必要的浪費,從而不願意為這些活動分配時間。
因此,開發者為了維持軟體品質,不得不將這些時間納入一般商業工作項目中,這導致每個商業項目的開發時程被放大,進而造成軟體估算的巨大偏差。這是一種非常不良的模式。長此以往,會讓人們覺得為什麼開發一個需求需要如此長的時間,最終導致敏捷開發表面上存在,但交付時程卻不如預期。
這種情況表明,企業在推行敏捷方法時,必須重視軟體工程和軟體品質的重要性,並在估算中充分考慮這些因素。只有這樣,才能真正實現敏捷開發的目標,並提高交付的準確性和效率。
下面這張圖,在很多軟體開發估算的文章中都出現過,就來回顧在軟體估算中,有哪些估算方式
1.明確需求
第一個原則是明確需求。「不確定性」顯示,明確的需求能顯著提高估算準確性。隨著項目進展和需求變得清晰,估算的變異性會減少。因此,從明確的需求開始是準確估算的關鍵。
2.定義完成的標準
第二個原則是定義項目的「完成定義」。設定了明確的完成任務的標準,包括質量保證步驟。這防止了低估,確保所有必要的步驟(如單元測試、代碼審查和質量檢查)都被納入估算中。
3.避免追求完美
第三個原則是避免追求完美。估算應被視為一個知情的猜測,而不是嚴格的截止日期。應該以持續改進為目標,根據實際表現進行定期審查和調整。三點估算:最壞情況、最佳情況和最可能情況也能提高準確性。
4.利用集體智慧
第四個原則是利用集體智慧。群體估算比個人估算更準確,因為它能綜合多方觀點。技術如德爾菲法和實踐如「三人行」(涉及商業人員、測試人員和軟體工程師)能確保全面和準確的估算。
5.避免使用Story Points
第五個原則是避免使用Story Points進行估算。Story Points通常無法幫助商業決策。應使用通用的商業度量標...
全文可以參閱 這裡