[摘要]軟件項(xiàng)目計(jì)劃的制訂是一項(xiàng)復(fù)雜而又富有經(jīng)驗(yàn)性的工作,計(jì)劃的好壞直接關(guān)系到項(xiàng)目的成敗。如何制訂出高質(zhì)量的軟件項(xiàng)目計(jì)劃?積累了豐富的軟件開發(fā)經(jīng)驗(yàn)后,我把它寫出來,愿此文對大家的實(shí)際工作有所幫助。
[關(guān)鍵詞]軟件 項(xiàng)目計(jì)劃 方法 策略
制訂軟件項(xiàng)目計(jì)劃的目的在于建立并維護(hù)軟件項(xiàng)目各項(xiàng)活動的計(jì)劃,軟件項(xiàng)目計(jì)劃其實(shí)就是一個用來協(xié)調(diào)軟件項(xiàng)目中其它所有計(jì)劃,指導(dǎo)項(xiàng)目組對項(xiàng)目進(jìn)行執(zhí)行和監(jiān)控的文件。一個好的軟件項(xiàng)目計(jì)劃可為項(xiàng)目的成功實(shí)施打下堅(jiān)實(shí)的基礎(chǔ)。
軟件項(xiàng)目有其特殊性,不確定因素多,工作量估計(jì)困難,項(xiàng)目初期難于制定一個科學(xué)、合理的項(xiàng)目計(jì)劃。我曾主持和參與過大大小小的軟件項(xiàng)目十余項(xiàng),下面我將把我制訂軟件項(xiàng)目計(jì)劃的經(jīng)驗(yàn)分享給大家。
1.注重項(xiàng)目計(jì)劃的層次性
軟件項(xiàng)目計(jì)劃的層次及其關(guān)系如下圖所示。
高級計(jì)劃,是項(xiàng)目的早期計(jì)劃。高級計(jì)劃應(yīng)當(dāng)是粗粒度的,主要是進(jìn)行項(xiàng)目的階段劃分,確定重大的里程碑,所需相關(guān)的資源,包括人力資源、設(shè)備資源、資金資源,即所謂的人、財(cái)、物三個要素。
大的階段交替之前,應(yīng)做好下一階段的詳細(xì)計(jì)劃,我們稱之為二級計(jì)劃。詳細(xì)計(jì)劃要確定各項(xiàng)任務(wù)的負(fù)責(zé)人,開始時間,結(jié)束時間,任務(wù)之間的依賴關(guān)系,設(shè)備資源,小的事件點(diǎn)(即里程碑)。
如果項(xiàng)目規(guī)模相對較大,可以有多級的計(jì)劃,比如說,一個項(xiàng)目組可能分為幾個開發(fā)組,二級計(jì)劃是各開發(fā)組制訂的適合的自己小組的計(jì)劃。如果開發(fā)組還分了小組,可以有小組的三級計(jì)劃。
開發(fā)人員的個人計(jì)劃是低級計(jì)劃,由開發(fā)人員根據(jù)自己的任務(wù)自行制定,要把任務(wù)細(xì)化到人·日。
一般的,軟件項(xiàng)目計(jì)劃至多有四級就夠了,過多的等級將會引發(fā)效率的瓶頸。大的項(xiàng)目不見得要有龐大的組織和人員數(shù)量來支撐,合理的劃分小組,減少組織的層次,有利于項(xiàng)目計(jì)劃的制訂和實(shí)施。較小的軟件項(xiàng)目由于工期不長,人員較少,有二級計(jì)劃(高級計(jì)劃與低級計(jì)劃)也是可行的。
2.重視與客戶的溝通
與客戶的溝通是很重要的。不必害怕客戶知道我們的開發(fā)計(jì)劃,特別是項(xiàng)目進(jìn)度情況,應(yīng)當(dāng)和客戶共享這些信息。
首先,客戶會提出一些對項(xiàng)目時間、進(jìn)度、效果上的要求,這個指標(biāo)往往經(jīng)不起推敲,有的還帶有較強(qiáng)的政策性。如:在我主持的一個某單位人事MIS系統(tǒng)的開發(fā)中就發(fā)現(xiàn),客戶方對時間上的約束是有成形的文件的,是他們單位領(lǐng)導(dǎo)們開會的決定??蛻艚o出的從項(xiàng)目啟動到驗(yàn)收的時間只有三個月,但是,經(jīng)過我們認(rèn)真的需求調(diào)研,做出項(xiàng)目進(jìn)度的粗計(jì)劃和部分的二級計(jì)劃后,發(fā)現(xiàn)三個月的時間是難于實(shí)現(xiàn)的。我們把做出的調(diào)研文檔和項(xiàng)目計(jì)劃擺出來和和客戶討論,最終使項(xiàng)目的開發(fā)時間延長為六個月。站在為了科學(xué)地分析和解決問題的立場上來看,項(xiàng)目組和客戶的目的是一致的,所以對于合理的項(xiàng)目進(jìn)度客戶是會理解與支持的。
其次,我們有義務(wù)要讓客戶知道項(xiàng)目的計(jì)劃。這樣才能讓客戶和用戶主動、積極參與項(xiàng)目,達(dá)到項(xiàng)目的最終目標(biāo)。項(xiàng)目計(jì)劃取得雙方簽字認(rèn)可是一種好的習(xí)慣??蛻艨赡懿辉敢夂炚降奈募?,那么在文檔的封面上簽上雙方負(fù)責(zé)人的姓名、聯(lián)系方式也行,雖然是非正式的,但留下了項(xiàng)目工作的痕跡。有必要想辦法讓客戶清楚簽字意味著什么。這就意味說雙方有了一個約定,既讓用戶感覺心里踏實(shí),也讓自己的項(xiàng)目組有了責(zé)任感,有一種督促和促進(jìn)的作用。
3.該詳細(xì)的詳細(xì),該簡略的就簡略
軟件項(xiàng)目計(jì)劃就如同軟件項(xiàng)目本身一樣有它特殊性,一個三五個人花兩三個月就可以完工的小項(xiàng)目,可能項(xiàng)目計(jì)劃就四五頁紙,包括一個WBS(工作分解結(jié)構(gòu))和一個Gantee圖(甘特圖)。一個需要五六十個人甚至上百人,要花上半年或更長時間的大型軟件項(xiàng)目則會有更多的項(xiàng)目計(jì)劃內(nèi)容。我們得按照項(xiàng)目的的特定情況量體裁衣。
如下表表1所示,這是我主持的一個某高校教務(wù)辦公信息系統(tǒng)項(xiàng)目的風(fēng)險(xiǎn)管理計(jì)劃表。項(xiàng)目較小,我們只用了兩個月的時間就開發(fā)完工,通過驗(yàn)收。正因如此,我們在項(xiàng)目計(jì)劃中大量的采用了這種表格來制訂人員計(jì)劃、培訓(xùn)計(jì)劃、風(fēng)險(xiǎn)計(jì)劃、成本估計(jì)、文檔大小估計(jì)、進(jìn)度計(jì)劃,一目了然,責(zé)任到人,其效果和效益是很明顯的。
項(xiàng)目的工作安排一定要責(zé)任到人,這點(diǎn)是要詳細(xì)的。如果是多個人共同完成的任務(wù)也要指定一位主要負(fù)責(zé)人,否則開發(fā)人員會操作不便,甚至互相推卸責(zé)任。
4.制訂的項(xiàng)目計(jì)劃要現(xiàn)實(shí)
軟件項(xiàng)目中的項(xiàng)目經(jīng)理和系統(tǒng)分析員大都是從程序員成長起來的,我亦是如此,擔(dān)任項(xiàng)目經(jīng)理之前我寫了五年的VB、Java和數(shù)據(jù)庫SQL代碼。項(xiàng)目經(jīng)理和系統(tǒng)分析員做出來的項(xiàng)目計(jì)劃最終要能夠被項(xiàng)目組成員所實(shí)現(xiàn)。
制訂項(xiàng)目計(jì)劃僅靠“個人經(jīng)驗(yàn)”是不夠的,不可能面面俱到,不要期希望于“個人經(jīng)驗(yàn)”。解決的辦法有兩個方面。
一是充分鼓勵、積極接納項(xiàng)目干系人(包括客戶、公司高層領(lǐng)導(dǎo)、項(xiàng)目組成員)來參與項(xiàng)目計(jì)劃的制定。
可以邀請客戶和公司高層領(lǐng)導(dǎo)來共同討論高級計(jì)劃的制訂??蛻魰芬鈪⑴c的,因?yàn)樽非箜?xiàng)目的成功是大家的共同目標(biāo)。公司高層領(lǐng)導(dǎo)的支持是項(xiàng)目組的堅(jiān)強(qiáng)后盾,項(xiàng)目組需要獲取必要的資源,需要及時獲取對項(xiàng)目特殊要的審批,需要在領(lǐng)導(dǎo)事務(wù)上得到適當(dāng)?shù)闹笇?dǎo)和幫助,有些事項(xiàng)有時是需要公司高層領(lǐng)導(dǎo)加入才能解決的,如合同款項(xiàng)的按期支付。
制訂二級、三級項(xiàng)目計(jì)劃要與項(xiàng)目組成員互動。當(dāng)規(guī)劃由一個人做出而由另一個人實(shí)施時,如果項(xiàng)目沒有按時完成,會使得他們懷疑項(xiàng)目計(jì)劃的可行性,也會影響開發(fā)人員的士氣。與項(xiàng)目組內(nèi)部人員的溝通亦很重要。軟件程序員平時通常表現(xiàn)得內(nèi)向、清高,作為項(xiàng)目經(jīng)理應(yīng)當(dāng)學(xué)會調(diào)節(jié)工作中的氣氛,在輕松的氛圍中去融合開發(fā)人員的意見。
可以讓開發(fā)人員對自己職責(zé)范圍內(nèi)的事提出建議的時間和資源,再作討論約定。這樣開發(fā)人員在主觀上會更加投入工作??陀^上,開發(fā)人員的能力很難用時間及工作量來衡量,一名熟練的Java程序員比一名初學(xué)Java的程序員開發(fā)效率可能快上四五倍,因而安排的時間周期、任務(wù)量當(dāng)然要不一樣。我比較傾向于召開一次專題討論會,事先寫出一個初稿,再各抒已見,最后作出結(jié)論。
二是要充分利用一些歷史數(shù)據(jù)。歷史數(shù)據(jù)是寶貴的財(cái)富,是可復(fù)用的資源。不僅要注意積累這些數(shù)據(jù),也要學(xué)會從中提煉出可以為我所用的數(shù)據(jù)。如,項(xiàng)目計(jì)劃的模板,計(jì)劃的資源數(shù)據(jù)等。
5.運(yùn)用過程化的思想指導(dǎo)開發(fā)
軟件項(xiàng)目計(jì)劃是CMM2級的一個KPA??捎密浖^程化的思想指導(dǎo)計(jì)劃的編制與實(shí)施。
CMM2共有6個KPA,它們是:需求管理、軟件項(xiàng)目計(jì)劃、項(xiàng)目跟蹤和監(jiān)控、軟件轉(zhuǎn)包合同管理、軟件質(zhì)量保證、軟件配置管理。一個軟件組織如果達(dá)到了CMM2的各個過程方面的全部目標(biāo),就表明這個組織的軟件能力達(dá)到了第2級成熟度等級。
這也可以是針對一個項(xiàng)目而言。通常需要根據(jù)項(xiàng)目的進(jìn)展情況對項(xiàng)目計(jì)劃進(jìn)行修改,以便應(yīng)付需求和承諾的變更、不夠準(zhǔn)確的估計(jì)、糾正措施和過程更改等。在策劃和重新策劃中涉及的活動,都包含在這個過程方面里。
6.利用成熟的項(xiàng)目管理工具
Microsoft Project 2000(或更高的版本)是一款公認(rèn)的功能強(qiáng)大、操作方便的項(xiàng)目管理工具軟件。它自帶了一個叫做“軟件開發(fā)”的模板,可以用它來生成大體的框架,再作細(xì)節(jié)方面的改動,也可以自己制作一個符合自己公司軟件項(xiàng)目運(yùn)作流程的模板。
Microsoft Project 2000的操作面版中可以安排任務(wù),并設(shè)置開始時間、結(jié)束時間、前置任務(wù)、資源名稱等參數(shù),它能自動生成Gantt圖、Pert圖,找出項(xiàng)目中的關(guān)鍵路徑。
7.結(jié)束語
軟件項(xiàng)目計(jì)劃分為高級計(jì)劃、二次計(jì)劃、三級計(jì)劃和低級計(jì)劃,制訂軟件項(xiàng)目計(jì)劃應(yīng)注意及時與客戶溝通,該詳細(xì)的詳細(xì),該簡略的就簡略,制出來的計(jì)劃要是現(xiàn)實(shí)的,可以運(yùn)用CMM2的思想指導(dǎo)計(jì)劃的制訂,Microsoft Project是倍受推薦的項(xiàng)目計(jì)劃軟件工具。愿我們多做出高質(zhì)量的軟件計(jì)劃,從而打造軟件精品。
【?發(fā)表評論?0條?】