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