相信對(duì)很多業(yè)內(nèi)人士來說,領(lǐng)導(dǎo)一個(gè)新的項(xiàng)目是一種激動(dòng)人心的經(jīng)歷,也是公司管理層對(duì)其專業(yè)水平的肯定。當(dāng)然,這也是一種讓人感到有些緊張的經(jīng)歷。突然要處理一些自己可能并不很了解的事情,這的確會(huì)讓人感到不知所措。這里我想根據(jù)我的經(jīng)歷談?wù)勎覍?duì)項(xiàng)目管理的一點(diǎn)看法。
6月份,煙臺(tái)港客運(yùn)售票信息系統(tǒng)的項(xiàng)目正式開始。這是一個(gè)實(shí)時(shí)性非常強(qiáng)的項(xiàng)目,而且功能模塊較多(500個(gè)左右),但從獲取需求信息到正式運(yùn)行卻只有4個(gè)月的時(shí)間。其中包括基于因特網(wǎng)的遠(yuǎn)程售票系統(tǒng),這一部分要涉及到分布式多層應(yīng)用技術(shù),而這對(duì)我們來說還很陌生。此外,還包括公司的網(wǎng)站和Web在線售、訂票系統(tǒng),涉及到在線支付。不得不說這是一個(gè)不小的挑戰(zhàn),能不能在限定的時(shí)間內(nèi)按質(zhì)量要求完成開發(fā)任務(wù),我沒有確切的把握。
一、需求調(diào)研&總體設(shè)計(jì)
這是我第一次接觸這種規(guī)模比較大的軟件項(xiàng)目,以至于一開始就出現(xiàn)了一些失誤。比如,整個(gè)項(xiàng)目是在悄無聲息中進(jìn)行的,沒有要求管理層召開正式的項(xiàng)目啟動(dòng)會(huì)議,開發(fā)小組的人員也沒有全部到位,甚至于連一份簡(jiǎn)單的項(xiàng)目計(jì)劃都沒有!部門從別的項(xiàng)目組臨時(shí)抽調(diào)了一位項(xiàng)目總監(jiān)參加我們的需求分析與總體設(shè)計(jì),他對(duì)業(yè)務(wù)比較熟悉,參與多個(gè)類似項(xiàng)目的研發(fā)工作,精通數(shù)據(jù)模型設(shè)計(jì),算是我們中間的內(nèi)行。初期主要就是依靠他一個(gè)人的工作,我們調(diào)研小組的其他成員(我和另外一名項(xiàng)目經(jīng)理)只是協(xié)助做一些事情,主要是整理一下材料,與客戶做一些簡(jiǎn)單的溝通。需求調(diào)研工作一共進(jìn)行了三天!現(xiàn)在想起來都覺得不可思議,這個(gè)階段工作結(jié)束的時(shí)候形成了一份非常簡(jiǎn)單的《用戶需求說明書》,其實(shí)只是一份功能清單,連功能描述都沒有。當(dāng)時(shí)項(xiàng)目總監(jiān)出差,我們負(fù)責(zé)項(xiàng)目的另一個(gè)項(xiàng)目經(jīng)理也被調(diào)去參加其他項(xiàng)目的實(shí)施工作,實(shí)在沒有人力來完成規(guī)范的需求文檔。 很快我們進(jìn)入總體設(shè)計(jì)階段,項(xiàng)目總監(jiān)開出了一份數(shù)據(jù)模型設(shè)計(jì)文檔,包含了基本表和另外十幾個(gè)核心業(yè)務(wù)相關(guān)的表和視圖,羅列了幾個(gè)關(guān)鍵的存儲(chǔ)過程和觸發(fā)器。此時(shí),我也根據(jù)與用戶的溝通做出了關(guān)鍵模塊的用戶界面,對(duì)功能也做了第一次大的調(diào)整。然后我們召開了一次正式的用戶溝通會(huì)議,在功能設(shè)計(jì)上與用戶取得了一致意見,此時(shí)項(xiàng)目已經(jīng)進(jìn)行了一個(gè)多月的時(shí)間(40天),人員基本到位,項(xiàng)目逐步進(jìn)入正規(guī)。
二、詳細(xì)設(shè)計(jì)與編碼
根據(jù)公司的ISO9001文件,我們必須做出比較詳細(xì)的《詳細(xì)設(shè)計(jì)說明書》,這樣的一份文檔起碼要有幾百頁(yè)。但是,由于我們是第一次接觸客運(yùn)售票這種業(yè)務(wù),我個(gè)人認(rèn)為不可能做出非常好的詳細(xì)設(shè)計(jì),因?yàn)槲覀儗?duì)業(yè)務(wù)的認(rèn)識(shí)程度不夠,設(shè)計(jì)上可能會(huì)存在很大的不確定性。因此我不支持在詳細(xì)設(shè)計(jì)的文檔上花費(fèi)太多的時(shí)間,我們把更多的精力放在核心功能模塊的分析設(shè)計(jì)上。我們不斷的圍繞航班、售票的數(shù)據(jù)流進(jìn)行討論,同時(shí)對(duì)售票的并發(fā)、實(shí)時(shí)控制進(jìn)行詳細(xì)設(shè)計(jì),對(duì)裝車的算法反復(fù)論證,做優(yōu)化設(shè)計(jì)。設(shè)計(jì)結(jié)束的時(shí)候,我們得到了一份核心模塊的功能設(shè)計(jì)文檔,開發(fā)人員對(duì)他負(fù)責(zé)的功能模塊相關(guān)的業(yè)務(wù)也基本熟悉了。這就是敏捷設(shè)計(jì),在兼顧規(guī)范的同時(shí),更注重實(shí)用性,更注重核心功能的把握。 一切順利,在大家的艱苦努力下,我們順利完成了本地網(wǎng)售票系統(tǒng)基本框架的編碼工作。太令人高興了,我告訴團(tuán)隊(duì)的成員,我們可以休息一下了。但是,麻煩就在這時(shí)候出現(xiàn)了。
三、迭代開發(fā)階段與項(xiàng)目的延期
9月份,終于完成了售票系統(tǒng)的“毛坯”,我們搶了整整兩個(gè)周的進(jìn)度,這是前個(gè)階段辛苦的結(jié)果。 按照計(jì)劃,我約請(qǐng)客戶代表來看程序,提意見。我們每天接待一批客戶派