從軟件開發(fā)成本度量的角度來看,在完成了對軟件項目的規(guī)模、工作量和成本的估算后,并不意味著度量工作的結束。相反,在整個軟件項目的生命周期中,還需要持續(xù)不斷地對軟件成本進行測量和分析。這些測量和分析的工作,不僅僅是單個軟件項目成功的關鍵因素,也是組織軟件開發(fā)能力提升的基礎。
因此,在軟件項目前期完成項目的規(guī)模、工作量的估算后,為滿足項目計劃和監(jiān)控的要求,在項目過程中應該對實際規(guī)模、工作量進行測量;為滿足項目收尾的要求,在項目結束后對項目進行決算時,也需要對項目的實際規(guī)模、工作量進行測量。
規(guī)模測量
軟件項目的規(guī)模一般會隨著需求的逐漸清晰而不斷明確,規(guī)模測量的時間點可以在軟件項目的里程碑點進行。常見的項目里程碑點包括:
a) 需求完成:需求調研和分析完成,形成基線化的需求文檔。需求完成后,功能規(guī)模理論上已確定,但考慮到實際的需求文檔質量,可能要在設計完成后才可以進行詳細功能點計數(shù)。
b) 設計完成:設計人員根據(jù)用戶需求文檔,完成設計文檔并形成基線,以便提交開發(fā)人員進行編碼和開發(fā)。
c) 編碼完成;開發(fā)人員根據(jù)設計完成編碼。
d) 內部測試完成;一般可選擇系統(tǒng)測試完成時。
e) 項目結束后:系統(tǒng)上線并通過試運行,或通過用戶驗收測試等活動,得到用戶可以結項的確認之后。
在各個里程碑點進行規(guī)模測量時,所采用的方法建議與規(guī)模估算所采用的方法一致。如規(guī)模估算階段采用IFPUG方法,則后續(xù)各個里程碑點進行規(guī)模測量時,也應采用IFPUG方法。
此外,除了上述項目里程碑點之外,當項目發(fā)生正式的需求變更時,也有必要對規(guī)模進行測量。測量結果既是變更評估的依據(jù),也將是之后項目計劃調整的輸入。
工作量測量
當項目的規(guī)模發(fā)生變化的情況下,典型情況如發(fā)生需求變更后,毫無疑問要對工作量進行測量,以保證規(guī)模變化之后工作量的準確性。
很多項目,在軟件規(guī)模不發(fā)生大的變化的情況下,項目在具體執(zhí)行過程中的工作量仍可能受到技術和人員等多方面的影響。如一個軟件在開發(fā)過程中遇到重大技術問題需要攻克,即便軟件規(guī)模本身沒有大的變化,仍需要對工作量進行調整。
由于工作量受影響的因素較多,因此需要較為頻繁地對實際工作量進行測量。一般來說,可以按下述兩種時間點對工作量進行測量:
a) 定期。隨著項目的進行,可定期對工作量進行測量,常見的頻率為每周、每半月或每月。如項目管理過程中本身有定期的報告制度,如項目周報、月報等,可隨項目報告的周期進行工作量的測量。其測量的結果也會對項目報告、以及后續(xù)項目計劃造成影響。
b) 事件驅動。除定期地對工作量進行測量之外,如在項目過程中出現(xiàn)較為重大的事件,也應隨著事件的發(fā)生而對工作量進行重新測量。需求變更之后的工作量測量就是典型的事件驅動。除此之外,如上文提到的例子,在軟件開發(fā)過程中突遇重大技術問題,可能需要投入人力加以解決,勢必對工作量造成影響,需要重新測量工作量。
此外,除了需要對項目總體的工作量進行測量之外,宜對項目的不同活動、不同階段的工作量分別進行測量。例如:對不同類型的活動如需求活動、設計活動、開發(fā)活動等進行單獨測量,也可以對策劃階段、設計階段、開發(fā)階段等不同階段進行單獨測量。這樣做的目的,一方面是為了支持項目管理工作,為項目計劃的調整帶來更準確的輸入;另一方面可以積累各個活動和階段的度量數(shù)據(jù),為組織級的度量分析工作做數(shù)據(jù)的準備,進而可以指導后續(xù)項目的策劃工作。
因此,在軟件項目前期完成項目的規(guī)模、工作量的估算后,為滿足項目計劃和監(jiān)控的要求,在項目過程中應該對實際規(guī)模、工作量進行測量;為滿足項目收尾的要求,在項目結束后對項目進行決算時,也需要對項目的實際規(guī)模、工作量進行測量。
規(guī)模測量
軟件項目的規(guī)模一般會隨著需求的逐漸清晰而不斷明確,規(guī)模測量的時間點可以在軟件項目的里程碑點進行。常見的項目里程碑點包括:
a) 需求完成:需求調研和分析完成,形成基線化的需求文檔。需求完成后,功能規(guī)模理論上已確定,但考慮到實際的需求文檔質量,可能要在設計完成后才可以進行詳細功能點計數(shù)。
b) 設計完成:設計人員根據(jù)用戶需求文檔,完成設計文檔并形成基線,以便提交開發(fā)人員進行編碼和開發(fā)。
c) 編碼完成;開發(fā)人員根據(jù)設計完成編碼。
d) 內部測試完成;一般可選擇系統(tǒng)測試完成時。
e) 項目結束后:系統(tǒng)上線并通過試運行,或通過用戶驗收測試等活動,得到用戶可以結項的確認之后。
在各個里程碑點進行規(guī)模測量時,所采用的方法建議與規(guī)模估算所采用的方法一致。如規(guī)模估算階段采用IFPUG方法,則后續(xù)各個里程碑點進行規(guī)模測量時,也應采用IFPUG方法。
此外,除了上述項目里程碑點之外,當項目發(fā)生正式的需求變更時,也有必要對規(guī)模進行測量。測量結果既是變更評估的依據(jù),也將是之后項目計劃調整的輸入。
工作量測量
當項目的規(guī)模發(fā)生變化的情況下,典型情況如發(fā)生需求變更后,毫無疑問要對工作量進行測量,以保證規(guī)模變化之后工作量的準確性。
很多項目,在軟件規(guī)模不發(fā)生大的變化的情況下,項目在具體執(zhí)行過程中的工作量仍可能受到技術和人員等多方面的影響。如一個軟件在開發(fā)過程中遇到重大技術問題需要攻克,即便軟件規(guī)模本身沒有大的變化,仍需要對工作量進行調整。
由于工作量受影響的因素較多,因此需要較為頻繁地對實際工作量進行測量。一般來說,可以按下述兩種時間點對工作量進行測量:
a) 定期。隨著項目的進行,可定期對工作量進行測量,常見的頻率為每周、每半月或每月。如項目管理過程中本身有定期的報告制度,如項目周報、月報等,可隨項目報告的周期進行工作量的測量。其測量的結果也會對項目報告、以及后續(xù)項目計劃造成影響。
b) 事件驅動。除定期地對工作量進行測量之外,如在項目過程中出現(xiàn)較為重大的事件,也應隨著事件的發(fā)生而對工作量進行重新測量。需求變更之后的工作量測量就是典型的事件驅動。除此之外,如上文提到的例子,在軟件開發(fā)過程中突遇重大技術問題,可能需要投入人力加以解決,勢必對工作量造成影響,需要重新測量工作量。
此外,除了需要對項目總體的工作量進行測量之外,宜對項目的不同活動、不同階段的工作量分別進行測量。例如:對不同類型的活動如需求活動、設計活動、開發(fā)活動等進行單獨測量,也可以對策劃階段、設計階段、開發(fā)階段等不同階段進行單獨測量。這樣做的目的,一方面是為了支持項目管理工作,為項目計劃的調整帶來更準確的輸入;另一方面可以積累各個活動和階段的度量數(shù)據(jù),為組織級的度量分析工作做數(shù)據(jù)的準備,進而可以指導后續(xù)項目的策劃工作。