4.2 工作流程
說明項目采用什么樣的工作流程進行。如瀑布法工作流程,原型法工作流程、螺旋型工作流程、迭代法工作流程,也可以是自己創(chuàng)建的工作流程。不同的流程將影響后面的工作計劃的制定。必要時畫出本項目采用的工作流程圖及適當?shù)奈淖终f明。
4.3 總體進度計劃
這里所說的總體進度計劃為高層計劃。作為補充,應當分階段制定項目的階段計劃,這些階段計劃不在這份文檔中,當要以這份總體計劃為依據(jù)。
總體進度計劃要依據(jù)確定的項目規(guī)模,列表項目階段劃分、階段進度安排及每階段應提交的階段成果,在階段時間安排中要考慮項目階段成果完成、提交評審、修改的時間。
對于項目計劃、項目準備、需求調研、需求分析、構架設計或概要設計、編碼實現(xiàn)、測試、移交、內部培訓、用戶培訓、安裝部署、試運行、驗收等工作,給出每項工作任務的預定開始日期、完成日期及所需的資源,規(guī)定各項工作任務完成的先后順序以及表征每項工作任務完成的標志性事件(里程碑)。
例如
需求評審
設計評審
表格中檢查點/里程碑等階段劃分為舉例,實際作業(yè)階段劃分、階段成果等請根據(jù)項目需要確定。
制定軟件項目進度計劃可以使用一些專門的工具,常用的是Microsoft的Project作為輔助工具,功能比較強大,比較適合于規(guī)模較大的項目,但無法完全代替項目計劃書,特別是一些主要由文字來說明的部分。小規(guī)模的項目可簡便地使用EXCEL作為輔助工具。關于如何使用這些工具不在此作詳細說明。
制定軟件項目進度計劃應當考慮以下一些因素:
1)對于系統(tǒng)需求和項目目標的掌握程度。如開始時對于系統(tǒng)需求和項目目標只有比較數(shù)的了解,只能制定出比較粗的進度計劃,等到需求階段或設計階段結束,應該進一步細化進度計劃。
2)軟件系統(tǒng)規(guī)模和項目規(guī)模,這兩個不是一個概念。軟件系統(tǒng)規(guī)模往往是從功能點的估算或其他估算方式得來的,而項目規(guī)模還要考慮對文檔數(shù)量與質量的要求,使用的開發(fā)工具、新技術、多少復用、溝通的方便程度、客戶方的情況、需要遵守的標準規(guī)范等等等等。例如,完成一個大型的系統(tǒng),在一定的時間內一個人或幾個人的智力和體力是承受不了的。由于軟件是邏輯、智力產品,盲目增加軟件開發(fā)人員并不能成比例地提高軟件開發(fā)能力。相反,隨著人員數(shù)量的增加,人員的組織、協(xié)調、通信、培訓和管理方面的問題將更為嚴重。
3)軟件系統(tǒng)復雜程度和項目復雜程度:和軟件系統(tǒng)規(guī)模和項目規(guī)模一樣,軟件系統(tǒng)的復雜程度主要是考慮軟件系統(tǒng)本身的功能、架構的復雜程度,而項目的復雜程度主要是指項目團隊成員的構成、項目任務的復雜程度、項目干系人的復雜程度、需求調研的難易程度,多項目情況下資源保障的情況,等等等等。軟件系統(tǒng)的規(guī)模與軟件系統(tǒng)的復雜程度未必是成比例的關系;同樣項目的規(guī)模與項目的復雜程度未必是成比例的關系。
4)項目的工期要求,是項目的緊急程度。有些項目規(guī)模大,卻因為與顧客簽訂了合同,或者為了搶先占領市場,工期壓縮得很緊,這時要考慮如何更好地合理安排進度,多增加人選多采用加班的方式是一種萬不得已的選擇。增加人選除了增加人的成本外必定會增加溝通的成本(熟悉項目任務所需要的時間);加班如果處理不好會造成情緒上的問題,也可能會因為過于忙碌而無法顧及質量,造成質量的下滑。
5)項目成員的能力。這些能力包括項目經(jīng)理的管理能力,系統(tǒng)分析員的分析能力、系統(tǒng)設計人員的設計能力、程序員的編碼能力、測試人員的測試能力,以及企業(yè)或項目團隊激發(fā)出這些能力的能力。從另外一個角度看還有總體上對客戶行業(yè)業(yè)務的熟悉程度;對于建模工具、開發(fā)工具、測試工具等技術的掌握程度;企業(yè)內部對行業(yè)業(yè)務知識和主要技術的知識積累。