有關(guān)合同范圍的普遍性定義和管理,我們在這里就不再贅述,本文主要針對軟件項(xiàng)目開發(fā)過程的特點(diǎn),結(jié)合CMM的相關(guān)知識,試圖給出一個(gè)軟件項(xiàng)目合同特有的范圍定義,并以合同條款的形式予以表現(xiàn)。
我們在對CMM的研究中發(fā)現(xiàn),作為CMM的重要組成部分——關(guān)鍵過程區(qū)域(Key Practivice Area簡稱KPA),具有類似于合同條款的功能。每個(gè)KPA識別出一串相關(guān)活動,當(dāng)這些活動全部完成時(shí),能達(dá)到一組對增強(qiáng)過程能力至關(guān)重要的目標(biāo)。這與合同中列出相應(yīng)條款,指出項(xiàng)目要達(dá)到的目標(biāo)相吻合。所不同的,KPA的直接目的是增強(qiáng)軟件過程能力,合同條款的直接目的是實(shí)現(xiàn)項(xiàng)目目標(biāo),但兩者的終目標(biāo)都是確保軟件項(xiàng)目的成功。從這個(gè)意義上說,二者是一致的。為此,我們認(rèn)為,采用KPA來界定合同范圍是可取的。所要注意的是,CMM中的KPA共有18個(gè),我們不能完全照般,而必須結(jié)合合同自身的特點(diǎn)以及軟件項(xiàng)目的實(shí)際,予以取舍,并作恰當(dāng)?shù)淖兺?。從目前我國的軟件開發(fā)實(shí)際情況看,要提高軟件過程能力成熟度,應(yīng)該從CMM 2級做起。為此,本文主要結(jié)合CMM 2級的六個(gè)KPA,談?wù)勅绾螖U(kuò)充軟件項(xiàng)目合同的范圍定義,以此來促進(jìn)項(xiàng)目過程的改善。
1.需求管理
需求管理的目的是在客戶和軟件項(xiàng)目開發(fā)方之間建立對客戶需求的共同理解。它包括和客戶一起建立和維護(hù)有關(guān)軟件項(xiàng)目需求的協(xié)議。因此,合同具有如下條款:
a.在整個(gè)項(xiàng)目開發(fā)過程中,開發(fā)方應(yīng)明確保證對系統(tǒng)需求及其分配進(jìn)行管理,并建立文檔;
b.項(xiàng)目雙方協(xié)商制定影響軟件項(xiàng)目活動的非技術(shù)性需求(協(xié)議、條件和附加合同條款),主要包括交付產(chǎn)品的形式、交付日期、項(xiàng)目里程碑等,并建立文檔;
c.項(xiàng)目雙方協(xié)商制定影響軟件項(xiàng)目活動的技術(shù)性需求,主要包括對軟件的性能要求、界面要求、設(shè)計(jì)約束、終用戶的要求以及選用何種編程語言;
d. 項(xiàng)目雙方協(xié)商制定確認(rèn)軟件產(chǎn)品滿足客戶需求的驗(yàn)收準(zhǔn)則,包括采用何種方法、何種工具進(jìn)行驗(yàn)收;
e. 項(xiàng)目雙方協(xié)商制定對客戶進(jìn)行軟件操作方面的培訓(xùn)準(zhǔn)則,以及其他相關(guān)服務(wù)的說明。
2.軟件項(xiàng)目策劃
軟件項(xiàng)目策劃的目的是為了完成軟件項(xiàng)目開發(fā)而制定合理的計(jì)劃。它包括以下步驟:估計(jì)軟件工作產(chǎn)品規(guī)模以所需的資源,制定時(shí)間表,鑒別和評估軟件風(fēng)險(xiǎn)和協(xié)商約定。因此,合同具有如下條款:
a.開發(fā)方應(yīng)在合同中指定負(fù)責(zé)協(xié)商約定和制定軟件項(xiàng)目開發(fā)計(jì)劃的項(xiàng)目經(jīng)理;
b.開發(fā)方應(yīng)確保在項(xiàng)目經(jīng)理和軟件開發(fā)人員、其他工程組相關(guān)人員之間達(dá)成軟件項(xiàng)目的約定,并建立文檔;
c. 項(xiàng)目雙方應(yīng)對軟件項(xiàng)目的規(guī)模、工作量、成本、進(jìn)度等做出科學(xué)的估計(jì);
d.項(xiàng)目雙方(以開發(fā)方為主)共同建立高級管理者評審方法,對所有的軟件項(xiàng)目約定和計(jì)劃進(jìn)行評審,并使其保持在監(jiān)控狀態(tài)下;
e. 項(xiàng)目雙方(以開發(fā)方為主)共同明確開發(fā)工作的范圍、技術(shù)目標(biāo)和對象、終用戶的識別、成本和進(jìn)度的約束及目標(biāo)、項(xiàng)目伙伴;
f.開發(fā)方應(yīng)確保能夠?yàn)椴邉澻浖?xiàng)目提供足夠的資源和投資,必要時(shí)應(yīng)采取的應(yīng)對措施;
g. 項(xiàng)目雙方(以開發(fā)方為主)共同對與項(xiàng)目成本資源、進(jìn)度和技術(shù)方面相聯(lián)系的軟件風(fēng)險(xiǎn)進(jìn)行鑒別、評估和建立文檔。
3.軟件項(xiàng)目跟蹤和監(jiān)督
軟件項(xiàng)目跟蹤和監(jiān)督的目的是建立對實(shí)際進(jìn)展的適當(dāng)?shù)目梢曅?,使?xiàng)目經(jīng)理能在軟件項(xiàng)目性能明顯偏離軟件計(jì)劃時(shí)采取有效措施。它包括對照已文檔化的估計(jì)、約定和計(jì)劃,評審和跟蹤軟件完成情況和結(jié)果,基于實(shí)際的完成情況和結(jié)果調(diào)整這些計(jì)劃。因此,合同具有如下條款:
a.開發(fā)方能夠采用并維護(hù)一個(gè)已文檔化的軟件開發(fā)計(jì)劃作為跟蹤軟件項(xiàng)目的基礎(chǔ),隨時(shí)向項(xiàng)目經(jīng)理報(bào)告軟件項(xiàng)目的狀態(tài)和問題;
b. 開發(fā)方應(yīng)確保能夠?yàn)楦欆浖?xiàng)目提供足夠的資源和投資,必要時(shí)應(yīng)采取的應(yīng)對措施;
c.在管理軟件的技術(shù)和人員方面,軟件經(jīng)理受到培訓(xùn),使其能熟練地管理技術(shù)項(xiàng)目,跟蹤和監(jiān)督軟件規(guī)模、工作量、成本以及進(jìn)度,管理職員;
d. 開發(fā)方應(yīng)確保一線軟件開發(fā)人員在軟件項(xiàng)目的技術(shù)方面受到定向培訓(xùn),包括項(xiàng)目的軟件工程標(biāo)準(zhǔn)和規(guī)程、項(xiàng)目的應(yīng)用領(lǐng)域;
e.跟蹤軟件工作產(chǎn)品的規(guī)模,跟蹤項(xiàng)目的軟件工作量和成本,跟蹤項(xiàng)目的關(guān)鍵計(jì)算機(jī)資源,跟蹤項(xiàng)目的軟件進(jìn)度,必要時(shí)能采取應(yīng)對措施;
f.軟件開發(fā)方應(yīng)進(jìn)行定期的內(nèi)部評審以便對照軟件開發(fā)計(jì)劃跟蹤技術(shù)進(jìn)展、計(jì)劃、性能和問題,并在里程碑處進(jìn)行正式評審。
我們在對CMM的研究中發(fā)現(xiàn),作為CMM的重要組成部分——關(guān)鍵過程區(qū)域(Key Practivice Area簡稱KPA),具有類似于合同條款的功能。每個(gè)KPA識別出一串相關(guān)活動,當(dāng)這些活動全部完成時(shí),能達(dá)到一組對增強(qiáng)過程能力至關(guān)重要的目標(biāo)。這與合同中列出相應(yīng)條款,指出項(xiàng)目要達(dá)到的目標(biāo)相吻合。所不同的,KPA的直接目的是增強(qiáng)軟件過程能力,合同條款的直接目的是實(shí)現(xiàn)項(xiàng)目目標(biāo),但兩者的終目標(biāo)都是確保軟件項(xiàng)目的成功。從這個(gè)意義上說,二者是一致的。為此,我們認(rèn)為,采用KPA來界定合同范圍是可取的。所要注意的是,CMM中的KPA共有18個(gè),我們不能完全照般,而必須結(jié)合合同自身的特點(diǎn)以及軟件項(xiàng)目的實(shí)際,予以取舍,并作恰當(dāng)?shù)淖兺?。從目前我國的軟件開發(fā)實(shí)際情況看,要提高軟件過程能力成熟度,應(yīng)該從CMM 2級做起。為此,本文主要結(jié)合CMM 2級的六個(gè)KPA,談?wù)勅绾螖U(kuò)充軟件項(xiàng)目合同的范圍定義,以此來促進(jìn)項(xiàng)目過程的改善。
1.需求管理
需求管理的目的是在客戶和軟件項(xiàng)目開發(fā)方之間建立對客戶需求的共同理解。它包括和客戶一起建立和維護(hù)有關(guān)軟件項(xiàng)目需求的協(xié)議。因此,合同具有如下條款:
a.在整個(gè)項(xiàng)目開發(fā)過程中,開發(fā)方應(yīng)明確保證對系統(tǒng)需求及其分配進(jìn)行管理,并建立文檔;
b.項(xiàng)目雙方協(xié)商制定影響軟件項(xiàng)目活動的非技術(shù)性需求(協(xié)議、條件和附加合同條款),主要包括交付產(chǎn)品的形式、交付日期、項(xiàng)目里程碑等,并建立文檔;
c.項(xiàng)目雙方協(xié)商制定影響軟件項(xiàng)目活動的技術(shù)性需求,主要包括對軟件的性能要求、界面要求、設(shè)計(jì)約束、終用戶的要求以及選用何種編程語言;
d. 項(xiàng)目雙方協(xié)商制定確認(rèn)軟件產(chǎn)品滿足客戶需求的驗(yàn)收準(zhǔn)則,包括采用何種方法、何種工具進(jìn)行驗(yàn)收;
e. 項(xiàng)目雙方協(xié)商制定對客戶進(jìn)行軟件操作方面的培訓(xùn)準(zhǔn)則,以及其他相關(guān)服務(wù)的說明。
2.軟件項(xiàng)目策劃
軟件項(xiàng)目策劃的目的是為了完成軟件項(xiàng)目開發(fā)而制定合理的計(jì)劃。它包括以下步驟:估計(jì)軟件工作產(chǎn)品規(guī)模以所需的資源,制定時(shí)間表,鑒別和評估軟件風(fēng)險(xiǎn)和協(xié)商約定。因此,合同具有如下條款:
a.開發(fā)方應(yīng)在合同中指定負(fù)責(zé)協(xié)商約定和制定軟件項(xiàng)目開發(fā)計(jì)劃的項(xiàng)目經(jīng)理;
b.開發(fā)方應(yīng)確保在項(xiàng)目經(jīng)理和軟件開發(fā)人員、其他工程組相關(guān)人員之間達(dá)成軟件項(xiàng)目的約定,并建立文檔;
c. 項(xiàng)目雙方應(yīng)對軟件項(xiàng)目的規(guī)模、工作量、成本、進(jìn)度等做出科學(xué)的估計(jì);
d.項(xiàng)目雙方(以開發(fā)方為主)共同建立高級管理者評審方法,對所有的軟件項(xiàng)目約定和計(jì)劃進(jìn)行評審,并使其保持在監(jiān)控狀態(tài)下;
e. 項(xiàng)目雙方(以開發(fā)方為主)共同明確開發(fā)工作的范圍、技術(shù)目標(biāo)和對象、終用戶的識別、成本和進(jìn)度的約束及目標(biāo)、項(xiàng)目伙伴;
f.開發(fā)方應(yīng)確保能夠?yàn)椴邉澻浖?xiàng)目提供足夠的資源和投資,必要時(shí)應(yīng)采取的應(yīng)對措施;
g. 項(xiàng)目雙方(以開發(fā)方為主)共同對與項(xiàng)目成本資源、進(jìn)度和技術(shù)方面相聯(lián)系的軟件風(fēng)險(xiǎn)進(jìn)行鑒別、評估和建立文檔。
3.軟件項(xiàng)目跟蹤和監(jiān)督
軟件項(xiàng)目跟蹤和監(jiān)督的目的是建立對實(shí)際進(jìn)展的適當(dāng)?shù)目梢曅?,使?xiàng)目經(jīng)理能在軟件項(xiàng)目性能明顯偏離軟件計(jì)劃時(shí)采取有效措施。它包括對照已文檔化的估計(jì)、約定和計(jì)劃,評審和跟蹤軟件完成情況和結(jié)果,基于實(shí)際的完成情況和結(jié)果調(diào)整這些計(jì)劃。因此,合同具有如下條款:
a.開發(fā)方能夠采用并維護(hù)一個(gè)已文檔化的軟件開發(fā)計(jì)劃作為跟蹤軟件項(xiàng)目的基礎(chǔ),隨時(shí)向項(xiàng)目經(jīng)理報(bào)告軟件項(xiàng)目的狀態(tài)和問題;
b. 開發(fā)方應(yīng)確保能夠?yàn)楦欆浖?xiàng)目提供足夠的資源和投資,必要時(shí)應(yīng)采取的應(yīng)對措施;
c.在管理軟件的技術(shù)和人員方面,軟件經(jīng)理受到培訓(xùn),使其能熟練地管理技術(shù)項(xiàng)目,跟蹤和監(jiān)督軟件規(guī)模、工作量、成本以及進(jìn)度,管理職員;
d. 開發(fā)方應(yīng)確保一線軟件開發(fā)人員在軟件項(xiàng)目的技術(shù)方面受到定向培訓(xùn),包括項(xiàng)目的軟件工程標(biāo)準(zhǔn)和規(guī)程、項(xiàng)目的應(yīng)用領(lǐng)域;
e.跟蹤軟件工作產(chǎn)品的規(guī)模,跟蹤項(xiàng)目的軟件工作量和成本,跟蹤項(xiàng)目的關(guān)鍵計(jì)算機(jī)資源,跟蹤項(xiàng)目的軟件進(jìn)度,必要時(shí)能采取應(yīng)對措施;
f.軟件開發(fā)方應(yīng)進(jìn)行定期的內(nèi)部評審以便對照軟件開發(fā)計(jì)劃跟蹤技術(shù)進(jìn)展、計(jì)劃、性能和問題,并在里程碑處進(jìn)行正式評審。

