制訂軟體專案計劃的方法與策略(轉)

ger8發表於2007-08-13
[摘要]軟體專案計劃的制訂是一項複雜而又富有經驗性的工作,計劃的好壞直接關係到專案的成敗。如何制訂出高質量的軟體專案計劃?積累了豐富的軟體開發經驗後,我把它寫出來,願此文對大家的實際工作有所幫助。

[關鍵詞]軟體 專案計劃 方法 策略

制訂軟體專案計劃的目的在於建立並維護軟體專案各項活動的計劃,軟體專案計劃其實就是一個用來協調軟體專案中其它所有計劃,指導專案組對專案進行執行和監控的檔案。一個好的軟體專案計劃可為專案的成功實施打下堅實的基礎。

軟體專案有其特殊性,不確定因素多,工作量估計困難,專案初期難於制定一個科學、合理的專案計劃。我曾主持和參與過大大小小的軟體專案十餘項,下面我將把我制訂軟體專案計劃的經驗分享給大家。

1.注重專案計劃的層次性

軟體專案計劃的層次及其關係如下圖所示。


高階計劃,是專案的早期計劃。高階計劃應當是粗粒度的,主要是進行專案的階段劃分,確定重大的里程碑,所需相關的資源,包括人力資源、裝置資源、資金資源,即所謂的人、財、物三個要素。

大的階段交替之前,應做好下一階段的詳細計劃,我們稱之為二級計劃。詳細計劃要確定各項任務的負責人,開始時間,結束時間,任務之間的依賴關係,裝置資源,小的事件點(即里程碑)。

如果專案規模相對較大,可以有多級的計劃,比如說,一個專案組可能分為幾個開發組,二級計劃是各開發組制訂的適合的自己小組的計劃。如果開發組還分了小組,可以有小組的三級計劃。

開發人員的個人計劃是低階計劃,由開發人員根據自己的任務自行制定,要把任務細化到人·日。

一般的,軟體專案計劃至多有四級就夠了,過多的等級將會引發效率的瓶頸。大的專案不見得要有龐大的組織和人員數量來支撐,合理的劃分小組,減少組織的層次,有利於專案計劃的制訂和實施。較小的軟體專案由於工期不長,人員較少,有二級計劃(高階計劃與低階計劃)也是可行的。

2.重視與客戶的溝通

與客戶的溝通是很重要的。不必害怕客戶知道我們的開發計劃,特別是專案進度情況,應當和客戶共享這些資訊。

首先,客戶會提出一些對專案時間、進度、效果上的要求,這個指標往往經不起推敲,有的還帶有較強的政策性。如:在我主持的一個某單位人事MIS系統的開發中就發現,客戶方對時間上的約束是有成形的檔案的,是他們單位領導們開會的決定。客戶給出的從專案啟動到驗收的時間只有三個月,但是,經過我們認真的需求調研,做出專案進度的粗計劃和部分的二級計劃後,發現三個月的時間是難於實現的。我們把做出的調研文件和專案計劃擺出來和和客戶討論,最終使專案的開發時間延長為六個月。站在為了科學地分析和解決問題的立場上來看,專案組和客戶的目的是一致的,所以對於合理的專案進度客戶是會理解與支援的。

其次,我們有義務要讓客戶知道專案的計劃。這樣才能讓客戶和使用者主動、積極參與專案,達到專案的最終目標。專案計劃取得雙方簽字認可是一種好的習慣。客戶可能不願意籤正式的檔案,那麼在文件的封面上籤上雙方負責人的姓名、聯絡方式也行,雖然是非正式的,但留下了專案工作的痕跡。有必要想辦法讓客戶清楚簽字意味著什麼。這就意味說雙方有了一個約定,既讓使用者感覺心裡踏實,也讓自己的專案組有了責任感,有一種督促和促進的作用。

3.該詳細的詳細,該簡略的就簡略

軟體專案計劃就如同軟體專案本身一樣有它特殊性,一個三五個人花兩三個月就可以完工的小專案,可能專案計劃就四五頁紙,包括一個WBS(工作分解結構)和一個Gantee圖(甘特圖)。一個需要五六十個人甚至上百人,要花上半年或更長時間的大型軟體專案則會有更多的專案計劃內容。我們得按照專案的的特定情況量體裁衣。

如下表表1所示,這是我主持的一個某高校教務辦公資訊系統專案的風險管理計劃表。專案較小,我們只用了兩個月的時間就開發完工,透過驗收。正因如此,我們在專案計劃中大量的採用了這種表格來制訂人員計劃、培訓計劃、風險計劃、成本估計、文件大小估計、進度計劃,一目瞭然,責任到人,其效果和效益是很明顯的。


專案的工作安排一定要責任到人,這點是要詳細的。如果是多個人共同完成的任務也要指定一位主要負責人,否則開發人員會操作不便,甚至互相推卸責任。

4.制訂的專案計劃要現實

軟體專案中的專案經理和系統分析員大都是從程式設計師成長起來的,我亦是如此,擔任專案經理之前我寫了五年的VB、Java和資料庫SQL程式碼。專案經理和系統分析員做出來的專案計劃最終要能夠被專案組成員所實現。

制訂專案計劃僅靠“個人經驗”是不夠的,不可能面面俱到,不要期希望於“個人經驗”。解決的辦法有兩個方面。

一是充分鼓勵、積極接納專案干係人(包括客戶、公司高層領導、專案組成員)來參與專案計劃的制定。

可以邀請客戶和公司高層領導來共同討論高階計劃的制訂。客戶會樂意參與的,因為追求專案的成功是大家的共同目標。公司高層領導的支援是專案組的堅強後盾,專案組需要獲取必要的資源,需要及時獲取對專案特殊要的審批,需要在領導事務上得到適當的指導和幫助,有些事項有時是需要公司高層領導加入才能解決的,如合同款項的按期支付。

制訂二級、三級專案計劃要與專案組成員互動。當規劃由一個人做出而由另一個人實施時,如果專案沒有按時完成,會使得他們懷疑專案計劃的可行性,也會影響開發人員計程車氣。與專案組內部人員的溝通亦很重要。軟體程式設計師平時通常表現得內向、清高,作為專案經理應當學會調節工作中的氣氛,在輕鬆的氛圍中去融合開發人員的意見。

可以讓開發人員對自己職責範圍內的事提出建議的時間和資源,再作討論約定。這樣開發人員在主觀上會更加投入工作。客觀上,開發人員的能力很難用時間及工作量來衡量,一名熟練的Java程式設計師比一名初學Java的程式設計師開發效率可能快上四五倍,因而安排的時間週期、任務量當然要不一樣。我比較傾向於召開一次專題討論會,事先寫出一個初稿,再各抒已見,最後作出結論。

二是要充分利用一些歷史資料。歷史資料是寶貴的財富,是可複用的資源。不僅要注意積累這些資料,也要學會從中提煉出可以為我所用的資料。如,專案計劃的模板,計劃的資源資料等。

5.運用過程化的思想指導開發

軟體專案計劃是CMM2級的一個KPA。可用軟體過程化的思想指導計劃的編制與實施。

CMM2共有6個KPA,它們是:需求管理、軟體專案計劃、專案跟蹤和監控、軟體轉包合同管理、軟體質量保證、軟體配置管理。一個軟體組織如果達到了CMM2的各個過程方面的全部目標,就表明這個組織的軟體能力達到了第2級成熟度等級。

這也可以是針對一個專案而言。通常需要根據專案的進展情況對專案計劃進行修改,以便應付需求和承諾的變更、不夠準確的估計、糾正措施和過程更改等。在策劃和重新策劃中涉及的活動,都包含在這個過程方面裡。

6.利用成熟的專案管理工具

Microsoft Project 2000(或更高的版本)是一款公認的功能強大、操作方便的專案管理工具軟體。它自帶了一個叫做“軟體開發”的模板,可以用它來生成大體的框架,再作細節方面的改動,也可以自己製作一個符合自己公司軟體專案運作流程的模板。

Microsoft Project 2000的操作面版中可以安排任務,並設定開始時間、結束時間、前置任務、資源名稱等引數,它能自動生成Gantt圖、Pert圖,找出專案中的關鍵路徑。

7.結束語

軟體專案計劃分為高階計劃、二次計劃、三級計劃和低階計劃,制訂軟體專案計劃應注意及時與客戶溝通,該詳細的詳細,該簡略的就簡略,製出來的計劃要是現實的,可以運用CMM2的思想指導計劃的制訂,Microsoft Project是倍受推薦的專案計劃軟體工具。願我們多做出高質量的軟體計劃,從而打造軟體精品。
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7839396/viewspace-954800/,如需轉載,請註明出處,否則將追究法律責任。

相關文章