【編者按】
IT行業(yè)直到現(xiàn)在,如何管理好軟件項(xiàng)目還一直是大家討論的話題,這是因?yàn)檐浖?xiàng)目失敗的太多。就中國(guó)目前很多軟件開(kāi)發(fā)團(tuán)隊(duì)的實(shí)際情況來(lái)看,從某種程度上來(lái)說(shuō),錯(cuò)誤的使用和依賴兩個(gè)軟件來(lái)管理項(xiàng)目是項(xiàng)目失敗的一個(gè)重要理由。
【正文】
IT行業(yè)自上個(gè)世紀(jì)70年代蓬勃發(fā)展,直到現(xiàn)在,如何管理好軟件項(xiàng)目還一直是大家討論的話題。這是因?yàn)檐浖?xiàng)目失敗的太多,比如項(xiàng)目徹底被取消、項(xiàng)目的工期拖延等等。
就中國(guó)目前很多軟件開(kāi)發(fā)團(tuán)隊(duì)的實(shí)際情況來(lái)看,從某種程度上來(lái)說(shuō),錯(cuò)誤的使用和依賴兩個(gè)軟件來(lái)管理項(xiàng)目是項(xiàng)目失敗的一個(gè)重要理由。這兩個(gè)軟件就是Microsoft Project和Microsoft Word。 就像釘釘子,總是用一把斧子。
工程項(xiàng)目 vs. 軟件項(xiàng)目
Microsoft Project本身是一個(gè)不錯(cuò)的項(xiàng)目管理工具,能夠做任務(wù)分配,Petri-NET, Gannt圖,資源使用分析等等。但是,Project是用來(lái)管理工程項(xiàng)目的,如造房子,修大橋等等。這些工程類的項(xiàng)目一般使用以任務(wù)驅(qū)動(dòng)的管理方法。而軟件項(xiàng)目和傳統(tǒng)的工程項(xiàng)目有本質(zhì)的差別,那就是任務(wù)的不確定性。舉個(gè)例子,目前房地產(chǎn)很火,造什么樣的房子,只要資金到位,都能保質(zhì)保量的造好。造10層樓,1層用多少人天,每天做什么,很容易計(jì)劃,分配任務(wù),人力資源。而且需求是不會(huì)變的。沒(méi)見(jiàn)過(guò)造房子,蓋了3層之后改主意了,拆了重新蓋。
而軟件就大大不同了,需求的變化是不可避免的,而且凡是做過(guò)項(xiàng)目的人都知道,需求的變化實(shí)際上還挺頻繁。這樣一來(lái),很容易造成計(jì)劃趕不上變化,用Project定義任務(wù),計(jì)劃工期通常要耗費(fèi)項(xiàng)目經(jīng)理大量的時(shí)間,而且沒(méi)有意義。
有人問(wèn),為什么需求不能固定下來(lái)呢?定下來(lái)就不許變。通常工程師會(huì)問(wèn)這樣的問(wèn)題。如果他變成了客戶,他可能就不會(huì)問(wèn)這個(gè)問(wèn)題了。需求總是會(huì)變的。第一:出錢的總是有更多的話語(yǔ)權(quán)(當(dāng)然改需求是要應(yīng)該付費(fèi)的);第二:市場(chǎng)的情況在變,比如競(jìng)爭(zhēng)對(duì)手突然發(fā)布了一個(gè)新的產(chǎn)品功能, 那我們也必須做出應(yīng)對(duì),這就要變更需求;第三:寫(xiě)需求的不是神仙,人都或犯錯(cuò)誤的,犯錯(cuò)誤允許改正(但犯錯(cuò)誤要有懲罰,就是需求變更是要付費(fèi)的)。 因此傳統(tǒng)的純瀑布式的開(kāi)發(fā)方式已經(jīng)成為歷史了,愈來(lái)愈多的開(kāi)發(fā)團(tuán)隊(duì)采用極限編程,迭代的開(kāi)發(fā),來(lái)應(yīng)付需求的變更。
那么軟件項(xiàng)目的這種特點(diǎn),需要與之相應(yīng)的項(xiàng)目管理工具。用斧子釘釘子的做法就有點(diǎn)不合時(shí)宜了。
和傳統(tǒng)項(xiàng)目還有一個(gè)很大的不同,當(dāng)工程項(xiàng)目拖后了工期,可以多加人手,把工期趕回來(lái)。而軟件就不這么簡(jiǎn)單了,新來(lái)的人要熟悉項(xiàng)目的內(nèi)容就要花時(shí)間,工期很難完全趕上。很多IT的老總們體會(huì)不到這個(gè)問(wèn)題,總以為多加人手,加班就能搞定。真正的有效的項(xiàng)目管理是要靠一個(gè)有效的管理體系來(lái)支撐的。
需求的描述
軟件項(xiàng)目有很多不同類型。目前我們所說(shuō)的軟件項(xiàng)目,多數(shù)指的是應(yīng)用類(Application)的軟件項(xiàng)目,而不是系統(tǒng)類(System)的項(xiàng)目,如數(shù)據(jù)庫(kù),文件系統(tǒng),開(kāi)發(fā)工具。系統(tǒng)類的軟件項(xiàng)目和應(yīng)用類的項(xiàng)目有很大的不同。系統(tǒng)類的項(xiàng)目花很長(zhǎng)時(shí)間研究體系架構(gòu)(Architecture),設(shè)計(jì)系統(tǒng)的框架,模塊之間的關(guān)系等等。而應(yīng)用類的軟件基本上會(huì)用現(xiàn)成的框架,如J2EE, 或Microsoft的平臺(tái)等等,主要精力放在需求的實(shí)現(xiàn)上。中國(guó)目前的應(yīng)用系統(tǒng)多數(shù)是為客戶做定制開(kāi)發(fā)的項(xiàng)目,比如各大企業(yè)、政府、機(jī)構(gòu)、國(guó)防等做的系統(tǒng),也有一些做產(chǎn)品的,如中小企業(yè)的財(cái)務(wù)系統(tǒng),通用辦公軟件等等。 針對(duì)應(yīng)用類的項(xiàng)目,我們看看使用Word寫(xiě)這類的需求有什么問(wèn)題,為什么有問(wèn)題。
一般用Word來(lái)寫(xiě)需要,隱