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

