“項(xiàng)目”,在二千多年之前就已經(jīng)存在。著名的埃及金字塔、我國(guó)的萬里長(zhǎng)城都是國(guó)際上眾人稱頌的典型項(xiàng)目。項(xiàng)目管理發(fā)展到今天,應(yīng)用相對(duì)成功的領(lǐng)域主要是在土木工程上,現(xiàn)已逐步應(yīng)用于軟件工程、航空、國(guó)防、金融、體育等行業(yè)。
一般來說,“項(xiàng)目”具有技術(shù)復(fù)雜,參與的人員還眾多,時(shí)間又非常緊迫,因此,人們開始關(guān)注如何有效地實(shí)行項(xiàng)目管理來實(shí)現(xiàn)既定的目標(biāo)。在這里,主要談?wù)勗谲浖こ填I(lǐng)域中項(xiàng)目管理的運(yùn)用,也就是項(xiàng)目管理能夠給人們提供一種解決問題的思路和方法。
I. 當(dāng)前項(xiàng)目管理存在的問題
一項(xiàng)調(diào)查表明,大約70%的軟件開發(fā)項(xiàng)目超出了估算的時(shí)間,大型項(xiàng)目平均超出計(jì)劃交付時(shí)間20%至50%,90%以上的軟件項(xiàng)目開發(fā)費(fèi)用超出預(yù)算,并且項(xiàng)目越大,超出項(xiàng)目計(jì)劃的程度越高。國(guó)內(nèi)絕大多數(shù)的IT企業(yè)正或多或少地承受著“項(xiàng)目黑洞”的痛楚:項(xiàng)目無法按期完成、項(xiàng)目合作方的工作難以協(xié)調(diào)、用戶需求經(jīng)常變動(dòng)、工作質(zhì)量難以保證。很多企業(yè)常常抱怨說,我們的技術(shù)實(shí)力不比國(guó)外差,我們的員工也很努力,但是我們的產(chǎn)品和工作效率為什么總比不上國(guó)外?
諸如此類的問題,就是當(dāng)前軟件開發(fā)中,實(shí)現(xiàn)項(xiàng)目管理實(shí)施時(shí)帶來的問題。雖然,項(xiàng)目管理在土木工程中,項(xiàng)目管理在中國(guó)已經(jīng)實(shí)施得十分成熟。但是,軟件開發(fā)不同于其他產(chǎn)品的制造,軟件的整個(gè)過程都是設(shè)計(jì)過程(沒有制造過程);另外,軟件開發(fā)不需要使用大量的物質(zhì)資源,而主要是人力資源;并且,軟件開發(fā)的產(chǎn)品只是程序代碼和技術(shù)文件,并沒有其他的物質(zhì)結(jié)果?;谏鲜鎏攸c(diǎn),軟件項(xiàng)目管理與其他項(xiàng)目管理相比,有很大的獨(dú)特性。其問題的具體表現(xiàn)為:
一、工期失控,計(jì)劃失控。項(xiàng)目做多,往往會(huì)形成一種錯(cuò)覺:不按計(jì)劃工期完成的項(xiàng)目是正常的;能按計(jì)劃工期準(zhǔn)時(shí)完成的,往往是不正常的。這說明,項(xiàng)目的實(shí)際工期和計(jì)劃工期不符,是“家常便飯”。大多數(shù)工期延期,很少提前的。工期延期、失控,自然而言會(huì)導(dǎo)致計(jì)劃無法執(zhí)行;計(jì)劃無法執(zhí)行,成本就失控;產(chǎn)品就會(huì)變形......
二、項(xiàng)目前期多數(shù)出現(xiàn)“沒事做”,后期“沒人做”。在項(xiàng)目啟動(dòng)后,因?yàn)槿藛T的配置,人員的銜接,硬件的配置,客戶需求的確定性,一般會(huì)造成很多人“沒事做”。而有些事是必須放在項(xiàng)目前期做的。前期不做,會(huì)對(duì)中后期有很大的影響?;蛘叻诺街泻笃谧觯瑫?huì),要多花幾倍的人力、物力。到了項(xiàng)目后期,會(huì)出現(xiàn)“虎頭蛇尾”,大量的事情需要人來做,項(xiàng)目的人員又是固定的,其他人因?yàn)椴涣私庹麄€(gè)項(xiàng)目,無法“空降”,則只能刪除一些事情咯。這樣就造成很多事情,沒人做,后果可想而知。
三、開發(fā)人員心態(tài)失控。延期,趕進(jìn)度;晚上加班。還是延期,星期六也加班吧。
還是不能按期完成,又到項(xiàng)目后期,只好封閉開發(fā)。平時(shí)晚上加班,星期六、星期天也加班。這就是很多開發(fā)人員開發(fā)項(xiàng)目漸進(jìn)式的流程。不同項(xiàng)目的開發(fā)人員,只要問問對(duì)方是否加班,就大概可以了解到對(duì)方參加的項(xiàng)目的開發(fā)階段拉。先拋棄加班對(duì)開發(fā)人員的效率的影響,對(duì)開發(fā)人員心態(tài)的影響才是最重要的。每個(gè)人都有趨利弊害的天性,開發(fā)人員也不例外。既然要趕進(jìn)度,效率沒有提高的情況下,要縮短開發(fā)時(shí)間,那只有簡(jiǎn)化功能,減少處理異常的情況,能把功能完成再說,等以后測(cè)試或用戶哪里出問題再說。如果僥幸不出問題,那就沒問題拉。這種情況下,當(dāng)然希望測(cè)試的水平越“水”越好拉。哦,別忘了,測(cè)試也是開發(fā)人員的一部分。工期延期了,上面要求的進(jìn)度又越來越緊,測(cè)試時(shí)間就更短,強(qiáng)度大,那只有有意無意去逃避錯(cuò)誤,這樣就皆大歡喜拉。
這些共性的問題,就是項(xiàng)目管理所要解決的問題。只有解決了這些問題,項(xiàng)目管理水平就會(huì)得到質(zhì)的飛躍!當(dāng)然要解決這些問題,不是一兩篇文章,一兩個(gè)公司就能解決的,需要所有人的不斷探索才能解決的。這里,主要是個(gè)人的一些思考,供大家參考。
II. 定位問題
有人會(huì)問,產(chǎn)品或項(xiàng)目的需求不就是包含了定位,何須重復(fù)講呢。其實(shí),這是一個(gè)誤區(qū)。同樣一個(gè)需求,在一個(gè)中學(xué)生中實(shí)現(xiàn)和在一個(gè)大學(xué)生中實(shí)現(xiàn)是完全不同的;在一個(gè)有經(jīng)驗(yàn)的群體中實(shí)現(xiàn)和在一個(gè)缺乏經(jīng)驗(yàn)的群體中實(shí)現(xiàn)是完全不同的。有些項(xiàng)目,由于定位未做好,未開始注定是失敗的,無論是需求分析得如何好,編碼、測(cè)試控制得十分完美,終究逃不過失敗這一關(guān)。
做軟件的都知道,是沒有真正的軟件。即使是通用做的最好的WINDOWS,也不可能是通用到每一類人,每一個(gè)國(guó)家,每一個(gè)民族的人,通用到那些只有幾千人的少數(shù)民族。因此,一個(gè)項(xiàng)目的定位是十分重要的。
產(chǎn)品和項(xiàng)目的定位是不一樣的。做項(xiàng)目不比賣產(chǎn)品,產(chǎn)品賣出就是成功,項(xiàng)目投產(chǎn)才算成功;產(chǎn)品是靜態(tài)的,項(xiàng)目是動(dòng)態(tài)的;產(chǎn)品質(zhì)量有問題可以包換、保修,項(xiàng)目一旦失敗,時(shí)間不能倒流,客戶損失的可能就是市場(chǎng)競(jìng)爭(zhēng)優(yōu)勢(shì)和機(jī)遇。
對(duì)于用戶定制的項(xiàng)目,定位相對(duì)簡(jiǎn)單,只要了解到定制用戶的使用范圍,使用者的知識(shí)結(jié)構(gòu)、行業(yè)經(jīng)驗(yàn)、電腦的基本知識(shí)及是否用過相關(guān)軟件即可。特別地,如果是用過相關(guān)地軟件,一定要了解清楚,哪些操作、功能是必須保留地,哪些操作、功能是可以修改或必須修改的。一段用戶的已習(xí)慣了某種辦法、操作方式,是很能更改的,如果定制的項(xiàng)目不遵照用戶的習(xí)慣進(jìn)行開發(fā),在軟件的運(yùn)行初期,往往會(huì)出現(xiàn)很多意想不到的問題。此外,還必須注視用戶方人員流動(dòng)、機(jī)構(gòu)變化造成的影響。
對(duì)于產(chǎn)品的開發(fā),定位則相對(duì)復(fù)雜些。由于產(chǎn)品的使用者是不確定的,是預(yù)測(cè)的。因而產(chǎn)品的定位顯得特別重要。國(guó)內(nèi)的產(chǎn)品,是不存在通用產(chǎn)品的。通用,只相對(duì)于某些大行業(yè)或某個(gè)行業(yè)而言。有些產(chǎn)品,號(hào)稱是通用產(chǎn)品,既不能使通用領(lǐng)域的用戶滿意,更不能使專用領(lǐng)域的用戶滿意,是一個(gè)徹底失敗的產(chǎn)品。相反,一些產(chǎn)品,一開始就定位于某個(gè)行業(yè),某個(gè)細(xì)分的行業(yè),反而做的很好,用戶量比所謂的通用的產(chǎn)品的用戶量還要多。
如產(chǎn)品定位于專用,必須考慮,專用的范圍,是否能進(jìn)一步細(xì)分,在細(xì)分的基礎(chǔ)上,所屬范圍的特征,有哪些情況是不適用,哪些情況是適用的等等。對(duì)范圍的特征分析得越清楚,定位越準(zhǔn)確,產(chǎn)品失敗得概率就越少。同理,對(duì)于定位于通用的產(chǎn)品,就是將要通用所屬的范圍的同性提取出來?;趪?guó)內(nèi)軟件水平的現(xiàn)實(shí),做通用產(chǎn)品,應(yīng)該是基于某些專用范圍,再兼顧其他的范圍,即以專用范圍為主。因此,定位的準(zhǔn)確,是確保項(xiàng)目成功的底線(Bottom Line)之一。
III. 項(xiàng)目經(jīng)理及與開發(fā)人員的溝通
項(xiàng)目經(jīng)理類似于電影中的英雄人物,是項(xiàng)目的靈魂,他的一舉一動(dòng)影響著項(xiàng)目的成敗。在危難時(shí)刻,優(yōu)秀的項(xiàng)目經(jīng)理甚至可以力挽狂瀾。眾所周知,衡量項(xiàng)目經(jīng)理一般是以在資質(zhì)、素質(zhì)、能力和經(jīng)驗(yàn)等作為主要的依據(jù),即統(tǒng)籌能力、領(lǐng)導(dǎo)能力、交往能力、處理壓力、解決問題的能力和技術(shù)能力。但是,個(gè)人認(rèn)為,項(xiàng)目經(jīng)理的心態(tài)才是決定一個(gè)項(xiàng)目成敗的關(guān)鍵因素。當(dāng)然,能力和經(jīng)驗(yàn)也會(huì)影響項(xiàng)目經(jīng)理的心態(tài)。
一般出任項(xiàng)目經(jīng)理,要么是由開發(fā)骨干兼任(這在中、小型項(xiàng)目中很普片),要么是由銷售或其他部門空降,專職項(xiàng)目經(jīng)理。這兩種方式都有各自的弊端。專職項(xiàng)目經(jīng)理,專做項(xiàng)目管理而不做任何分析、設(shè)計(jì)、編碼、測(cè)試等具體的技術(shù)實(shí)施工作,就會(huì)感覺“沒事做”,或是在打雜;開發(fā)骨干,由于主要或全部精力均忙于具體技術(shù)工作,各種項(xiàng)目管理任務(wù)(如:項(xiàng)目分析/評(píng)估、項(xiàng)目計(jì)劃的制定/檢查/調(diào)整、上下左右的溝通、專業(yè)資源調(diào)配、項(xiàng)目組織調(diào)整、項(xiàng)目財(cái)務(wù)控制、風(fēng)險(xiǎn)分析/對(duì)策等)不可避免地疏于顧及,項(xiàng)目管理的事情“沒人做”,導(dǎo)致項(xiàng)目控制的問題“積勞成疾”,后悔莫及。
專職項(xiàng)目經(jīng)理,在項(xiàng)目管理過程中,一般比較注重對(duì)外的聯(lián)絡(luò)合作方面,即比較注重和銷售、用戶,其他部門的協(xié)調(diào)工作。相反,就會(huì)對(duì)技術(shù)及開發(fā)的技術(shù)重視不足。在很多情況下,只根據(jù)用戶、銷售確定的功能、工期來安排計(jì)劃,對(duì)相應(yīng)的技術(shù)難點(diǎn)不理解,每項(xiàng)功能所耗費(fèi)的時(shí)間估計(jì)出現(xiàn)很大偏差,對(duì)每個(gè)開發(fā)人員的技術(shù)、知識(shí)水平認(rèn)識(shí)不透徹。因此會(huì)造成有些任務(wù)需要強(qiáng)制、壓迫才能完成,開發(fā)人員不是建立在心服口服的情況下完成的。正所謂,上有政策,下有對(duì)策。開發(fā)人員都是高智商的動(dòng)物,騙“外行”就更容易了。一般都是采取虛報(bào)工作難度,把本來一天能做完的,拖到一個(gè)星期,十天才做完;或者把正常要半個(gè)月才能做完的工作,在上面“強(qiáng)制”要求下,壓縮到一個(gè)星期做完,當(dāng)然拉,其中必然要偷工減料,只有極正常的操作才能會(huì)滿足要求,對(duì)非法操作,特殊情況的處理,項(xiàng)目經(jīng)理或測(cè)試工程師發(fā)現(xiàn)一個(gè)才處理一個(gè)。不能發(fā)現(xiàn)的,就等用戶去發(fā)現(xiàn)。項(xiàng)目的實(shí)施情況就可想而知拉。
在這種情況下,必須做到幾點(diǎn):
一、 從開發(fā)人員的角度出發(fā),結(jié)合市場(chǎng)的角度確定項(xiàng)目的功能,動(dòng)之以情,曉之以理,盡量使開發(fā)人員心服口服地開發(fā)某個(gè)功能。
二、 由項(xiàng)目組討論確定每一項(xiàng)功能的開發(fā)耗時(shí),以不是通過拍腦袋的方式確定耗時(shí);
三、 加強(qiáng)測(cè)試;
四、 加強(qiáng)對(duì)開發(fā)人員責(zé)任心、成就感的教育。
技術(shù)骨干擔(dān)任的項(xiàng)目經(jīng)理,不可避免地存在著“技術(shù)崇拜”,盡可能采用新技術(shù)。即使是需求明確的功能,由于實(shí)現(xiàn)方式有多種路徑,一般都是從技術(shù)上采取最優(yōu)的路徑,而不是從用戶操作方便的角度上選擇操作最方便、快捷的路徑,用戶必須嚴(yán)格按開發(fā)人員所預(yù)設(shè)的操作方式進(jìn)行操作。說句老實(shí)話,用戶是不管你用什么技術(shù)的,先進(jìn)或落后的技術(shù)都可以,只要能滿足用戶的需求即可。這種類似閉門造車生產(chǎn)出來的產(chǎn)品,自然就是操作不便,功能差強(qiáng)人意的。還有一種情況是,這種情況一般發(fā)生在項(xiàng)目后期,開發(fā)產(chǎn)品的情況較多,隨著開發(fā)的深入,總會(huì)發(fā)現(xiàn)缺少某些功能,或者某些功能不夠強(qiáng)大。項(xiàng)目經(jīng)理對(duì)功能的增加、刪除、修改,不是通過集體討論確定或通過從市場(chǎng)前線人員中了解確定,而是通過憑空想象,拍腦袋來作出決定。特別是對(duì)于某些功能的添加,由于項(xiàng)目經(jīng)理都無法把握用戶是否需要這個(gè)功能,需要這個(gè)功能的程度,因此是很難令開發(fā)人員把握此功能的目的。當(dāng)然,既然大家都無法把握用戶是否會(huì)用這個(gè)功能,那自然是應(yīng)付式開發(fā)。只要過了測(cè)試,過了項(xiàng)目經(jīng)理這一關(guān)就OK拉。
初當(dāng)項(xiàng)目經(jīng)理的人,經(jīng)驗(yàn)不足是必然的,這并不是構(gòu)成產(chǎn)品、項(xiàng)目失敗的關(guān)鍵因素,心態(tài)才是主要的。新官上任三把火,而且還是懷著“感謝黨,感謝組織,感謝領(lǐng)導(dǎo)”,有著一顆報(bào)恩的心態(tài)當(dāng)上項(xiàng)目經(jīng)理,自然就事事追求完美,沒有缺陷。但是,理想和現(xiàn)實(shí)是永遠(yuǎn)都有很大的差距的。學(xué)會(huì)取舍才是項(xiàng)目、產(chǎn)品成功的因素,也是項(xiàng)目經(jīng)理走向成熟的關(guān)鍵。
成熟的項(xiàng)目經(jīng)理,應(yīng)確保項(xiàng)目實(shí)施中業(yè)務(wù)參與的全面性、深度和權(quán)威性。
在一、二十年前,也許您會(huì)經(jīng)常聽到某位大俠單獨(dú)完成了某種創(chuàng)舉,成了人們崇拜的對(duì)象。可今天,這種大俠,已經(jīng)很難有生存空間了。取而代之的是,某軍團(tuán),又攻克了一座什么樣的堡壘。這樣,溝通,可以說已經(jīng)變得無比的重要。在軟件業(yè),溝通可以說是快速學(xué)習(xí)和掌握新知識(shí),達(dá)到技術(shù)上的更高層次的最佳途徑。因此,無論是項(xiàng)目,管理都必須在以人為本的前提下進(jìn)行,必須重視溝通。
以人為本,指的不只是軟件開發(fā)人員這一部分。這里的人主要指的是一些與項(xiàng)目有利害關(guān)系的一些人,即項(xiàng)目干系人(stakeholders),一般包括客戶或者用戶、項(xiàng)目團(tuán)隊(duì)、項(xiàng)公司的管理層等一些主要的利害關(guān)系者。 一個(gè)項(xiàng)目能否成功,很大程度上取決于能不能分清楚這些項(xiàng)目利害關(guān)系者各自對(duì)項(xiàng)目的影響,能不能利用好這些人力資源,溝通協(xié)調(diào)好他們之間的關(guān)系。
溝通是掌握各方信息,進(jìn)行項(xiàng)目決策和項(xiàng)目協(xié)調(diào)的基礎(chǔ),也是項(xiàng)目管理的基本內(nèi)容。項(xiàng)目經(jīng)理最重要的工作之一就是溝通,通常花在這方面的時(shí)間應(yīng)該占到全部工作的75%~90%。良好的交流才能獲取足夠的信息、發(fā)現(xiàn)潛在的問題、控制好項(xiàng)目的各個(gè)方面。盡早溝通、主動(dòng)溝通就是其中的兩個(gè)原則。總之溝通是一門很重要的學(xué)問,在項(xiàng)目管理中也有專門的溝通管理,因而在本文中我們就不再討論了。
項(xiàng)目經(jīng)理只有以人為本,重視溝通,才會(huì)避免出現(xiàn)以下的情況:客戶在檢查項(xiàng)目階段成果時(shí),指出曾經(jīng)要求的某個(gè)產(chǎn)品特性沒有包含在其中,并且抱怨說早就以口頭的方式反映給了項(xiàng)目組的成員,糟糕的是作為項(xiàng)目經(jīng)理的你卻一無所知,而那位成員解釋說把這點(diǎn)忘記了;或者,你手下的程序員在設(shè)計(jì)評(píng)審時(shí)描述了他所負(fù)責(zé)的模塊架構(gòu),然而軟件開發(fā)出來后,你發(fā)現(xiàn)這和你所理解的結(jié)構(gòu)大相徑庭......
IV. 產(chǎn)品的需求、系統(tǒng)分析、設(shè)計(jì)
總的而言,軟件開發(fā)主要分為六個(gè)階段:需求分析階段、概要設(shè)計(jì)階段、詳細(xì)設(shè)計(jì)階段、編碼階段、測(cè)試階段、安裝及維護(hù)階段。開發(fā)軟件就如八股文一樣:總體規(guī)劃、項(xiàng)目立項(xiàng)、需求分析、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編碼實(shí)現(xiàn)、項(xiàng)目測(cè)試、文檔制作(八股文:破題、承題、起講、入手、起股、中股、后股、束股),一切都按部就班。同理,信息系統(tǒng)集成項(xiàng)目管理一般的過程分為:需求分析、項(xiàng)目調(diào)研、方案論證、實(shí)施方案、具體實(shí)施、測(cè)試、驗(yàn)收、售后服務(wù)。同時(shí)項(xiàng)目管理按管理的方式可以分為售前、售中和售后。
在國(guó)內(nèi),做的項(xiàng)目越多,就越容易產(chǎn)生這樣的感覺:項(xiàng)目感覺總是做不完,就像一個(gè)“無底洞”。用戶總是有新的需求要項(xiàng)目開發(fā)方來做,就像用戶在“漫天要價(jià)”,而開發(fā)方在“就地還錢”。 實(shí)際上,這里涉及到一個(gè)“范圍管理”的概念。項(xiàng)目中哪些該做,哪些不該做,做到什么程度,都是由“范圍管理”來決定的。“范圍管理”的相關(guān)知識(shí),可以參考項(xiàng)目管理知識(shí)體系指南、項(xiàng)目管理九大知識(shí)體系的相關(guān)內(nèi)容。這里只說說兩點(diǎn),核心需求和需求的變更。
一般說來,需求對(duì)用戶來說,可以分為核心需求和輔助需求。對(duì)于中國(guó)貪心的用戶來說,功能從來不嫌多的。核心需求就是用戶使用本軟件是,一定會(huì)使用的功能,沒有這些功能,會(huì)影響用戶的忠誠(chéng)度。輔助功能,就是用戶可用可不用的功能。有了這些功能,用戶更喜歡,沒有這些功能,用戶不會(huì)太在意,或者是可以容忍。同樣一個(gè)軟件,不同的用戶,核心需求和輔助需求是不一樣的。在一個(gè)項(xiàng)目產(chǎn)品中我們應(yīng)該知道對(duì)方需要什么,自己要做什么,這是項(xiàng)目成功的基礎(chǔ)所在。
對(duì)于產(chǎn)品,因?yàn)橛脩羰遣淮_定的,確定哪些需求是核心需求,哪些是輔助需求,則比較難。但是如果定位合理,對(duì)定位的用戶范圍的特征分析得準(zhǔn)確,則不是什么太難得事。但無論是產(chǎn)品還是項(xiàng)目,都必須考慮以下三點(diǎn):1、對(duì)于用戶提出的每個(gè)需求都要知道“為什么”,并判斷用戶提出的需求是否有充足的理由,并考慮由此而引申出來的問題,觸類旁通,舉一反三;2、對(duì)于用戶提出的每個(gè)需求都要知道“為什么”,并判斷用戶提出的需求是否有充足的理由;3、分析由用戶需求衍生出的隱含需求,并識(shí)別用戶沒有明確提出來的隱含需求(有可能是實(shí)現(xiàn)用戶需求的前提條件),這一點(diǎn)往往容易忽略掉,經(jīng)常因?yàn)閷?duì)隱含需求考慮得不夠充分而引起需求變更。
需求確立后,重要的是規(guī)范化,文檔化,可參考常用的需求建模的方法如數(shù)據(jù)流圖(DFD)、實(shí)體關(guān)系圖(ERD)和用例圖(Use Case)三種方式。
需求的變更是不可避免的,如何以可控的方式管理軟件的需求,對(duì)于項(xiàng)目的順利進(jìn)行有著重要的意義?,F(xiàn)在,重要的不是限制需求的變更,而是讓用戶、銷售、開發(fā)都明白,不管是哪種情況下變更,只要是造成變更的一方,都要背負(fù)相應(yīng)的責(zé)任。這就需要一個(gè)明確的約束機(jī)制。在制定制度時(shí),大家都可以參議,提意見。但只要制度確定了,就必須恪守這個(gè)制度,是制度管人,而不是領(lǐng)導(dǎo)管人。也只有這樣,才不至于開發(fā)處于遙遙無期的狀態(tài),而到最后則草草收兵。
本人認(rèn)為,需求的確定可以分為三個(gè)階段則比較合適,這樣劃分也涉及到計(jì)劃、成本的管理,可參考后面的相關(guān)內(nèi)容。
一、 項(xiàng)目初期,用戶、銷售、開發(fā)三者,應(yīng)根據(jù)WBS方法確定整個(gè)項(xiàng)目的整體需求,即最起碼要確定WBS中最頂層的父作業(yè),如需求一,需求二...... 并盡可能詳細(xì)地確定需求地具體劃分,如需求一.1,需求一.2,需求二.1,需求二.1.(1)......對(duì)于開發(fā)周期比較長(zhǎng)的項(xiàng)目,則可以確定每個(gè)需求開發(fā)開始的大概時(shí)間,周期比較段的項(xiàng)目,則只需確定整個(gè)項(xiàng)目的開始時(shí)間即可。對(duì)沒有確定的需求,則要明確在開發(fā)前一個(gè)相應(yīng)的時(shí)間,必須在確定的時(shí)間之前來落實(shí)詳細(xì)的需求。對(duì)已確定的需求則明確在開發(fā)前的一個(gè)具體時(shí)間內(nèi)可以修改的內(nèi)容,主要是框架性的需求。
二、 項(xiàng)目開發(fā)前,核實(shí)項(xiàng)目的所有需求,應(yīng)當(dāng)包括詳細(xì)的需求,并明確告知用戶以后只能修改細(xì)節(jié)上需求,主要是操作上的需求。如果在以后要修改框架性的需求,必須受到一定的約束,所產(chǎn)生的成本必須為要變更的一方負(fù)責(zé)。如是因?yàn)殚_發(fā)的原因造成的,則增加成本納入到項(xiàng)目的成本中;如因銷售工程師因銷售壓力而盲目對(duì)用戶作承諾的功能,則相應(yīng)成本必須納入銷售成本中;確定落實(shí)需求后,進(jìn)行項(xiàng)目的開發(fā)階段。
三、 項(xiàng)目開發(fā)完成后,提交給用戶試用。用戶使用后,用戶明確要修改的內(nèi)容,主要范圍是操作上,細(xì)節(jié)的實(shí)現(xiàn)是否與需求一致,是否與用戶真正需要的一致。如要對(duì)框架性的需要修改,則必須按先前的約束條件進(jìn)行。確定修改內(nèi)容后,向用戶明確,以后的修改內(nèi)容都只能局限于當(dāng)前提出的修改范圍,當(dāng)然,程序出錯(cuò)除外。開發(fā)進(jìn)行修改,用戶使用,將修改范圍進(jìn)一步縮少。一次或多次迭代后,項(xiàng)目完成。
V. 工作量的估算及評(píng)價(jià)
項(xiàng)目管理最大的難度,就是每一模塊的工作量、開發(fā)時(shí)間的確定,這也是項(xiàng)目實(shí)施的主要風(fēng)險(xiǎn),最難預(yù)測(cè)、控制的風(fēng)險(xiǎn)。
比較常用的估算方法有:估計(jì)項(xiàng)目交付日期的方法有很多,如基于經(jīng)驗(yàn)的估計(jì)、基于模型的估計(jì)等。一種簡(jiǎn)便易行的估計(jì)方法是采用Wideband Delphi估計(jì)方法,此方法可以降低不同人員所作估計(jì)的偏差?;谀P偷墓烙?jì)方法則包括KLOC、FPA以及COCOMOⅡ等模型。在這里主要引用新的估算方法,以供參考。
如果,公司有著類似項(xiàng)目實(shí)施的豐富經(jīng)驗(yàn),則工作量、開發(fā)時(shí)間的確定則會(huì)更切實(shí)際。
首先,提取公司內(nèi)部數(shù)據(jù),統(tǒng)計(jì)出類似模塊的工作量(M公)、開發(fā)時(shí)間(S公)。如果,公司沒有這方面的經(jīng)驗(yàn),那如何辦呢?不做這一步?!對(duì),沒辦法,沒時(shí)間時(shí)也可以放棄這一步。有時(shí)間,有精力時(shí),可以通過了解社會(huì)對(duì)類似模塊的工作量、開發(fā)時(shí)間的平均值再結(jié)合本公司的情況進(jìn)行假設(shè)模塊的工作量、開發(fā)時(shí)間。
其次,項(xiàng)目開發(fā)成員對(duì)這一模塊的工作量、時(shí)間的估算。這一步是最耗時(shí),這是很多公司都沒有去做的,包括國(guó)內(nèi)一些知名的軟件公司。軟件開發(fā),不是工廠中的流水線生產(chǎn),可以對(duì)產(chǎn)品的生產(chǎn)過程中每一個(gè)過程,每一個(gè)步驟,進(jìn)行嚴(yán)格的控制和限制。在開發(fā)過程中,由于開發(fā)人員不同的學(xué)歷背景、知識(shí)水平、經(jīng)歷、開發(fā)經(jīng)驗(yàn)、對(duì)模塊的理解程度、思維方式、編程習(xí)慣等因素,對(duì)同樣的模塊,所需求的工作量,開發(fā)時(shí)間是有很大區(qū)別的。因此,需要每個(gè)開發(fā)成員對(duì)相關(guān)模塊了解熟悉后,進(jìn)行估計(jì),再根據(jù)不同的系數(shù),通過不同的公式進(jìn)行轉(zhuǎn)換后確定每一個(gè)模塊的工作量、開發(fā)時(shí)間。
公式為:M=M(公)*X1+M(項(xiàng))*X2;
S=S(公)*X1+S(項(xiàng))*X2;
M(項(xiàng))=M(開1)*Y1+M(開2)*Y2+…+ M(開n)*Y.n;
S(項(xiàng))=S(開1)*Y1+S(開2)*Y2+…+ S(開n)*Y.n;
每一模塊,每項(xiàng)功能完成后,對(duì)小于原定工作量或成本的,可以直接以原工作量和成本作為考核的依據(jù)。對(duì)于超出原定工作量或成本的,必須組織相關(guān)人員進(jìn)行成本、工作量的評(píng)估。主要的操作方法為,組織3到5人的評(píng)估小組,小組成員盡可能是在開發(fā)時(shí)對(duì)要評(píng)估模塊相當(dāng)熟悉的成員。小組成員利用一定的時(shí)間了解評(píng)估模塊的代碼,功能特點(diǎn),模塊實(shí)現(xiàn)思路,難點(diǎn),簡(jiǎn)單的單元測(cè)試等,然后小組的成員假設(shè)是成員本人來開發(fā)評(píng)估模塊,需要用的成本、工作量并轉(zhuǎn)換為開發(fā)人員相應(yīng)級(jí)別的工作量、成本,最后綜合小組成員的估計(jì)的工作量、成本和開發(fā)人員開發(fā)時(shí)所耗費(fèi)的成本、工作量進(jìn)行加權(quán)平均,得出最后的成本、工作量,并以此作為考核的依據(jù)。
VI. 計(jì)劃的編排
有人這樣形容計(jì)劃的,“計(jì)劃,計(jì)劃,紙上畫畫,墻上掛掛,計(jì)劃不如變化,計(jì)劃不頂領(lǐng)導(dǎo)一個(gè)電話。!”。根據(jù)美國(guó)Hackett公司的一項(xiàng)調(diào)查發(fā)現(xiàn),只有37%的信息化項(xiàng)目在計(jì)劃時(shí)間內(nèi)完成,只有42%的信息化項(xiàng)目在預(yù)算內(nèi)完成。計(jì)劃很容易成為空話,特別是在軟件工程中,影響計(jì)劃的因素太多,計(jì)劃就形同虛設(shè)了!但是,項(xiàng)目管理方法的主體就是項(xiàng)目計(jì)劃、計(jì)劃優(yōu)化方法,其目的就是綜合各種因素,制定合理的計(jì)劃,并通過計(jì)劃的實(shí)施,使其規(guī)范化,從而提高項(xiàng)目的效益,提高人員效率,降低項(xiàng)目的成本。
圍繞著項(xiàng)目計(jì)劃方法,可以把項(xiàng)目管理方法分為四個(gè)發(fā)展階段:Gannt圖階段、確定性網(wǎng)絡(luò)計(jì)劃技術(shù)階段,如關(guān)鍵路徑法CPM(Critical Path Method)等、概率型網(wǎng)絡(luò)計(jì)劃技術(shù)階段,如計(jì)劃評(píng)審技術(shù)PERT (Program Evaluation and Review Technique)和多因素隨機(jī)網(wǎng)絡(luò)計(jì)劃技術(shù)階段,如考慮資金因素的PERT/COST,考慮活動(dòng)風(fēng)險(xiǎn)的圖評(píng)審技術(shù)GERT(Graphics Evaluation and Review Technology)和風(fēng)險(xiǎn)評(píng)審技術(shù)VERT(Venture Evaluation and Review Technology),以及多種資源(資金、人力等)約束下的網(wǎng)絡(luò)優(yōu)化等等。無論項(xiàng)目管理發(fā)展到哪一階段,本人認(rèn)為計(jì)劃要合理,合乎以后項(xiàng)目實(shí)施的實(shí)際情況,以下三點(diǎn)是前提:
一、 對(duì)計(jì)劃的態(tài)度問題。如果計(jì)劃只是為了讓上面的頭頭看看,放在墻上掛掛。那基本上這些計(jì)劃也就是沒什么意義的計(jì)劃,不說也罷。這些計(jì)劃不是小數(shù)。筆者曾經(jīng)看過這樣的計(jì)劃,某位同事出差在外面兩周,但在最新的計(jì)劃中,還有本周必須在公司完成的開發(fā)任務(wù)。這種計(jì)劃,一經(jīng)編排就意味著無法完成,或者要進(jìn)行變更。還有,筆者親身經(jīng)歷的,在收到的計(jì)劃中(是8月15號(hào)制定的),已安排筆者在8月15號(hào)前的一個(gè)星期完成某一項(xiàng)工作。本人是在8月15號(hào)后才知道要完成這項(xiàng)工作的,自然就無法按時(shí)完成拉。這樣的例子還有很多,不勝枚舉。
二、 對(duì)計(jì)劃的編排要做到有粗有細(xì)。
傳統(tǒng)的計(jì)劃編制是這樣的:首先對(duì)項(xiàng)目進(jìn)行估算,粗算出項(xiàng)目的總體進(jìn)度。然后進(jìn)行精化:確定概要設(shè)計(jì)階段、詳細(xì)設(shè)計(jì)階段、編碼階段、測(cè)試階段、安裝及維護(hù)階段等階段的具體要求、完成時(shí)間、投入人力物力,并確定幾個(gè)關(guān)鍵階段。這些關(guān)鍵階段的要求進(jìn)度必須在指定日期之前完成。最后充分考慮影響項(xiàng)目計(jì)劃的因素,并做出相應(yīng)的措施,做出項(xiàng)目進(jìn)度表,列出在每個(gè)階段的難點(diǎn)要點(diǎn),要注意的問題。,并將需要分析階段的內(nèi)容和項(xiàng)目計(jì)劃、進(jìn)度表整理成文檔,分發(fā)到相關(guān)人員手上。
這樣的計(jì)劃編制,在土木工程等運(yùn)用項(xiàng)目管理比較成熟的行業(yè)時(shí),還算相當(dāng)成功,但具體運(yùn)用到軟件開發(fā)上,很多時(shí)候,就會(huì)出現(xiàn)變形,走樣。例如有些計(jì)劃,真是很細(xì)致,很細(xì)致,甚至細(xì)分到小時(shí),分鐘。這樣的計(jì)劃很難執(zhí)行,只要外界有變化,或者前面的計(jì)劃出現(xiàn)誤差,則這個(gè)計(jì)劃就完了。有些計(jì)劃,很粗,很粗,粗到只有時(shí)間點(diǎn),只有大框架,沒有具體的內(nèi)容。在實(shí)施時(shí),根本無法知道具體怎樣做。這樣的計(jì)劃,一般被稱為里程碑式的計(jì)劃,比較適合領(lǐng)導(dǎo)對(duì)計(jì)劃的檢查。
在國(guó)內(nèi),軟件開發(fā)中,計(jì)劃的制定,比較常用的方法為WBS方法,即將項(xiàng)目工作分解為更小、更易管理的工作包也叫活動(dòng)或任務(wù),這些小的活動(dòng)應(yīng)該是能夠保障完成交付產(chǎn)品的可實(shí)施的詳細(xì)任務(wù)。首先就是周密地做好范圍計(jì)劃編制;然后以項(xiàng)目進(jìn)度為依據(jù)劃分WBS,第一層是大的項(xiàng)目成果框架,每層下面再把工作分解,這種方式的優(yōu)點(diǎn)是結(jié)合進(jìn)度劃分直觀,時(shí)間感強(qiáng),評(píng)審中容易發(fā)現(xiàn)遺漏或多出的部分,也更容易被大多數(shù)人理解。其中,這部分內(nèi)容運(yùn)用專門的項(xiàng)目管理軟件比較適合。Microsoft的項(xiàng)目管理工具Project就可以自動(dòng)為各個(gè)層次的任務(wù)編碼,國(guó)內(nèi)的項(xiàng)目管理軟件中,同望EasyPlan不但具有自動(dòng)編碼功能,還可以在甘特圖,單網(wǎng)圖,雙網(wǎng)圖三種視圖下快速編制計(jì)劃圖,并可對(duì)計(jì)劃、資源、成本費(fèi)用的優(yōu)化,進(jìn)行跟蹤比較,盈余分析等等,是一個(gè)不錯(cuò)的軟件。
但是,WBS方法的前提是,對(duì)軟件開發(fā)所涉及的業(yè)務(wù)要比較熟悉,有多年的經(jīng)驗(yàn);要求涉及人員的流動(dòng)性小,管理模式要穩(wěn)定。人對(duì)事物的認(rèn)識(shí)是有一個(gè)過程的,不同的階段有不同的認(rèn)識(shí)。因此,對(duì)一個(gè)計(jì)劃來說,計(jì)劃前期盡可能細(xì)化每一項(xiàng)工作,越具體越好。對(duì)于以往計(jì)劃執(zhí)行得比較好得的公司,項(xiàng)目受到外界干擾比較少的項(xiàng)目,前期計(jì)劃可以細(xì)化到日,或半天。對(duì)執(zhí)行得一般的項(xiàng)目,可以細(xì)化到兩天、三天或一周。對(duì)執(zhí)行得比較差,或者容易受到外界影響的項(xiàng)目,如項(xiàng)目組成員要經(jīng)常出差,或支援其他項(xiàng)目,或者要中斷進(jìn)行前面項(xiàng)目的維護(hù)工作等等,可以細(xì)化到旬、半個(gè)月,最好不要超過一個(gè)月,否則計(jì)劃失去其本來的意義。對(duì)計(jì)劃后期工作的制定,則可以比較粗些,用以適應(yīng)前期計(jì)劃執(zhí)行情況造成的變化。
當(dāng)然,這樣的計(jì)劃,也要避免采取每周制定下周工作計(jì)劃的逐周項(xiàng)目計(jì)劃方式,避免“項(xiàng)目失控合法化”。項(xiàng)目計(jì)劃的Breakdown或曰“粒度”,是一個(gè)需要小心把握平衡的問題。越細(xì)則控制力度越大(筆者曾見過細(xì)到0.25小時(shí)/人的),但項(xiàng)目管理的成本越高;反之亦然。以國(guó)內(nèi)目前的狀況,個(gè)人看法,項(xiàng)目的周期越長(zhǎng),應(yīng)越粗。項(xiàng)目周期為三到六個(gè)月的,可以粗到一周或半個(gè)月。周期為一到兩年的,則可以粗到一個(gè)月,一個(gè)季度。無論多大的項(xiàng)目,應(yīng)該也不要超過半年。
三、關(guān)鍵線路的制定。一般來說,先確定關(guān)鍵工作,整個(gè)項(xiàng)目的關(guān)鍵線路。然后,確定非關(guān)鍵工作。最后通過甘特圖(橫道圖),網(wǎng)絡(luò)圖(單代號(hào)網(wǎng)絡(luò)圖,雙代號(hào)帶邏輯時(shí)標(biāo)的網(wǎng)絡(luò)圖)找出自由時(shí)差、總時(shí)差,并通過縮短關(guān)鍵線路的工期來對(duì)項(xiàng)目進(jìn)一步優(yōu)化。在這里,最重要的,關(guān)鍵線路的資源,即關(guān)鍵線路中的關(guān)鍵工作是由哪個(gè)開發(fā)人員負(fù)責(zé)?,F(xiàn)在的項(xiàng)目管理工作中,存在這樣一個(gè)誤區(qū),整個(gè)項(xiàng)目的關(guān)鍵路線通常是由一兩個(gè)開發(fā)精英、骨干、核心來承擔(dān)。這樣存在很大的風(fēng)險(xiǎn)。當(dāng)開發(fā)核心在項(xiàng)目中途離職或者不得不暫停開發(fā)工作,如生病,出差等,會(huì)造成整個(gè)項(xiàng)目延誤,而其他開發(fā)人員窩工。同時(shí),一個(gè)人長(zhǎng)期處于高壓下工作,當(dāng)前工作延誤了,導(dǎo)致整個(gè)項(xiàng)目的延誤;下一個(gè)工作延誤了,又導(dǎo)致整個(gè)項(xiàng)目的延誤。反正已經(jīng)連續(xù)延誤了,就無所謂了,做到哪里就算哪里好了,整個(gè)人崩潰了,對(duì)開發(fā)計(jì)劃確定的時(shí)間就放棄了,從而形成一人加班,全員加班。因此,一個(gè)好的計(jì)劃,出關(guān)鍵線路合理外,還必須時(shí)關(guān)鍵線路有多個(gè)人員在不同時(shí)段進(jìn)行承擔(dān),避免一兩個(gè)人長(zhǎng)期承擔(dān)整個(gè)關(guān)鍵線路,同時(shí),還要預(yù)料,還有哪些因素影響,使某些非關(guān)鍵工作會(huì)上升為關(guān)鍵工作,成為關(guān)鍵線路,影響整個(gè)關(guān)鍵線路。
VII. 計(jì)劃的執(zhí)行、變更
影響計(jì)劃執(zhí)行的因素可以分為主觀因素和客觀因素??陀^因素有客戶相關(guān)風(fēng)險(xiǎn),外部環(huán)境的影響,停電,機(jī)器損壞,不能上網(wǎng)等原因。主觀因素有:人的因素、技術(shù)因素,資源因素。如果項(xiàng)目計(jì)劃的Breakdown或曰“粒度”不符合實(shí)際情況,也是影響計(jì)劃執(zhí)行的因素。
設(shè)立里程碑,加強(qiáng)項(xiàng)目進(jìn)度的檢查(與進(jìn)度計(jì)劃比對(duì))和控制,維護(hù)項(xiàng)目計(jì)劃的嚴(yán)肅性,是規(guī)避計(jì)劃執(zhí)行風(fēng)險(xiǎn)的一個(gè)有效辦法。但這是不夠的。只有建立合理、實(shí)用的計(jì)劃,計(jì)劃的執(zhí)行才會(huì)有可能。依照前面所提到的計(jì)劃編排原則,那計(jì)劃的執(zhí)行應(yīng)是這樣進(jìn)行的。在執(zhí)行計(jì)劃A時(shí),應(yīng)先審查計(jì)劃B的內(nèi)容,利用WBS方法,確定計(jì)劃B的內(nèi)容是不可再細(xì)分,需求在現(xiàn)階段是否要作進(jìn)一步的調(diào)整,功能點(diǎn)是否要?jiǎng)h除、修改、添加等等,然后再確定計(jì)劃B的具體執(zhí)行時(shí)間,粗略調(diào)整由此引發(fā)后面的計(jì)劃的變更。換句話說,也就是,迭代計(jì)劃B,使計(jì)劃B更你能滿足現(xiàn)實(shí)的情況。計(jì)劃B的具體執(zhí)行時(shí)間已經(jīng)制定,就是“死的”,不允許作調(diào)整,必須想盡一切辦法按時(shí)、按質(zhì)完成計(jì)劃。因?yàn)檫@時(shí)計(jì)劃是比較符合實(shí)際的,不能按時(shí)按質(zhì)完成,不是態(tài)度問題,就是效率問題。完成計(jì)劃A,在執(zhí)行計(jì)劃B時(shí),迭代計(jì)劃C……通過執(zhí)行,迭代,完成整個(gè)計(jì)劃。總之,就是使計(jì)劃處于相對(duì)動(dòng)態(tài)中,不是靜態(tài),也不是動(dòng)態(tài)的,頻頻變化,要避免“項(xiàng)目失控合法化”。
一個(gè)項(xiàng)目的范圍計(jì)劃可能制訂的非常好,但是想不出現(xiàn)任何改變幾乎是不可能的。因此對(duì)變更的管理是項(xiàng)目經(jīng)理必備的素質(zhì)之一。在這里,我們定義在執(zhí)行計(jì)劃A前,對(duì)計(jì)劃B的修改,稱為調(diào)整;執(zhí)行計(jì)劃A后直到完成計(jì)劃B中對(duì)計(jì)劃B的修改,稱為計(jì)劃的變更。從常識(shí)來說,對(duì)計(jì)劃的調(diào)整,相對(duì)而言,成本的變化不大。因此,計(jì)劃的調(diào)整是約束最少的,只要有合理的理由,對(duì)整個(gè)系統(tǒng)沒有特別大的影響,都可以進(jìn)行調(diào)整。相反,對(duì)計(jì)劃變更的約束是最大的,不是哪個(gè)人,哪個(gè)領(lǐng)導(dǎo)拍個(gè)腦袋,想怎么變更就怎么變更的。誰變更,誰就應(yīng)該負(fù)擔(dān)變更所引發(fā)的成本。在變更之前,應(yīng)該進(jìn)行集體討論。這時(shí),千萬要避免項(xiàng)目領(lǐng)導(dǎo)閉著門,想個(gè)三天兩夜,然后對(duì)眾人來個(gè)宣布,決定要怎樣怎樣變更。這時(shí),來個(gè)“一言堂”,項(xiàng)目很容易失敗的。談?wù)摃r(shí),要明確以下目的:一,為什么要變更?二,可不可以通過其他方法來彌補(bǔ),而不需要變更?三,要變更,是最少的,最優(yōu)的變更嗎??四,變更造成的成本差,具體由誰來負(fù)擔(dān),這一定要明確,不能模糊??傊?,抓住一個(gè)宗旨:能不變更就不變更,能少變更就少變更,變更了就應(yīng)該有具體的人員來負(fù)擔(dān)相應(yīng)的責(zé)任、成本。一般來說,可以變更的原因有客觀原因和主觀原因??陀^原因,如項(xiàng)目組成員計(jì)劃外出差,生病,公司大型活動(dòng)等等而造成無法按計(jì)劃執(zhí)行,這時(shí)的變更所造成的成本,則只能有公司來負(fù)責(zé)或整個(gè)項(xiàng)目組來負(fù)責(zé)。主觀原因,即使是加班加點(diǎn),提高工作效率,也無法按計(jì)劃時(shí)間來執(zhí)行計(jì)劃。這種情況,是制定和調(diào)整計(jì)劃的人沒有做好,需求的功能比較模糊,細(xì)化得不徹底,難點(diǎn)估計(jì)不足。這種情況下的變更,則計(jì)劃的制定和調(diào)整者,應(yīng)負(fù)擔(dān)相當(dāng)大的責(zé)任和成本,開發(fā)人員所負(fù)擔(dān)的責(zé)任和成本則相應(yīng)小一些。如果是由于開發(fā)人員的責(zé)任心不夠而造成的變更,則開發(fā)人員要負(fù)擔(dān)大部分的成本,開發(fā)人員的領(lǐng)導(dǎo)也要負(fù)擔(dān)一小部分的成本。
不管怎么樣,只要變更確定了,就應(yīng)該嚴(yán)格執(zhí)行,絕對(duì)要避免同一內(nèi)容一而再,再而三地進(jìn)行變更,使計(jì)劃成為擺設(shè)。這時(shí),對(duì)計(jì)劃地對(duì)計(jì)劃地執(zhí)行,應(yīng)該是專制的,“一言堂”式地進(jìn)行。
VIII. 測(cè)試及產(chǎn)品的收尾階段
目前市場(chǎng)競(jìng)爭(zhēng)的激烈和市場(chǎng)的成熟度不足,可能導(dǎo)致應(yīng)用開發(fā)項(xiàng)目的惡性競(jìng)爭(zhēng)風(fēng)險(xiǎn)。客戶希望物美價(jià)廉而加需求、壓價(jià)格、壓進(jìn)度;廠商惟恐出局而拍胸脯、打包票。這是很多項(xiàng)目經(jīng)理面臨的類似的情況,特別是在項(xiàng)目后期。
到了項(xiàng)目后期,主要是在進(jìn)度和軟件質(zhì)量取得一個(gè)平衡點(diǎn)。在實(shí)際的項(xiàng)目質(zhì)量管理中,質(zhì)量管理總是圍繞著質(zhì)量保證(Quality Assurance)過程和質(zhì)量控制(Quality Control)過程兩方面。質(zhì)量管理就不在這里展開,主要還是說說,編碼等的修改和進(jìn)度與系統(tǒng)測(cè)試的關(guān)系。
一般而言,隨著項(xiàng)目的深入,環(huán)境各方面的變化,具體實(shí)現(xiàn)總是和原先的設(shè)計(jì)或多或少地出現(xiàn)偏差。這是很正常,不必驚慌。原則上是,能不修改則盡可能不修改。實(shí)在要修改,則只要不是原則性的錯(cuò)誤,盡量不要推倒前面所做的一切,重新做,畢竟以前做的時(shí)候也是考慮了方方面面的因素的,現(xiàn)在出現(xiàn)的問題只是在某方面考慮不周而已,一切都作廢,太浪費(fèi)了。還有,要是數(shù)據(jù)庫字段已存在,除非萬不得已,千萬不要修改數(shù)據(jù)庫字段,實(shí)在不行就添加字段。因?yàn)橐呀?jīng)存在的字段,很有可能已被軟件開發(fā)小組的其他成員在使用,不要因?yàn)槟愕男薷亩钇渌艘惨阕鱿鄳?yīng)的修改。最后,軟件界面的修改要慎重,界面的修改很容易使你忽略修改相應(yīng)的內(nèi)容,造成軟件大問題沒有,小問題一大堆。要盡量避免出現(xiàn)以下兩種情況:一,不顧進(jìn)度、成果,盡量修改,務(wù)必做到盡可能和預(yù)設(shè)功能一致;二,為了盡快完成項(xiàng)目,以時(shí)間點(diǎn)為準(zhǔn),做些表面修改,也就是不負(fù)責(zé)任的修改,以求盡快完整,早日解脫這個(gè)項(xiàng)目的苦海。這種情況,在管理過程中,出現(xiàn)波折,有大量、頻繁的修改的項(xiàng)目,出現(xiàn)得特別多。
到了項(xiàng)目后期,迫于公司、用戶的壓力、或者項(xiàng)目本身已經(jīng)延遲了,盡早結(jié)束整個(gè)項(xiàng)目,就是自然而言的事情了。大多數(shù)的做法是,壓縮系統(tǒng)測(cè)試時(shí)間。系統(tǒng)測(cè)試的時(shí)間少了,發(fā)現(xiàn)的問題也就少了,時(shí)間就更加可控了。這樣做,也沒大錯(cuò),但必須注意,如在系統(tǒng)測(cè)試發(fā)現(xiàn)的大部分問題是low的,則壓縮系統(tǒng)測(cè)試時(shí)間問題都不大;如發(fā)現(xiàn)的問題有相當(dāng)一部分是影響使用的,比較hight的,則不能壓縮系統(tǒng)測(cè)試時(shí)間,甚至要延長(zhǎng)系統(tǒng)測(cè)試時(shí)間。不要抱著現(xiàn)在先混過驗(yàn)收測(cè)試,等以后有時(shí)間再詳細(xì)測(cè)。從我了解的情況來說,這是不可能的,只要一過了驗(yàn)收測(cè)試,不管是程序員,還是測(cè)試員,其心態(tài)都已經(jīng)發(fā)生變化了,不可能全身心投入測(cè)試、修改中。即使是勉為其難投入,其效率就可想而知拉。不管怎樣,進(jìn)行系統(tǒng)測(cè)試時(shí),
最后的修改,必須預(yù)備一定的時(shí)間進(jìn)行較全面的測(cè)試,以避免修改而引發(fā)的錯(cuò)誤,特別是簡(jiǎn)單的錯(cuò)誤。經(jīng)驗(yàn)告訴我們,很多低級(jí)錯(cuò)誤,都是在最后修改時(shí)引入的,因?yàn)轭A(yù)料測(cè)試時(shí)間不足而沒有被發(fā)現(xiàn)。
到了項(xiàng)目后期,即使是進(jìn)度延誤得十分厲害,建議還是不要增加成員。因?yàn)?,新成員得加入,熟悉業(yè)務(wù)需要,了解、理解業(yè)務(wù)需要一定的時(shí)間,除本身所消耗的時(shí)間外,還會(huì)有意無意地?fù)p耗其他成員的時(shí)間,造成進(jìn)度的進(jìn)一步拖延,等完全熟悉時(shí),能上手,可能就是項(xiàng)目結(jié)束之日。此外,還會(huì)因?yàn)椴皇煜?,而引入新的錯(cuò)誤,新的不穩(wěn)定因素。
到了項(xiàng)目后期,除了進(jìn)度的執(zhí)行外,也要特別重視和相關(guān)人員的溝通及處理相應(yīng)的關(guān)系。主要溝通人員有:用戶方的項(xiàng)目管理人員、用戶方的業(yè)務(wù)人員、用戶方的決策層、開發(fā)方的項(xiàng)目管理人員、開發(fā)方的軟件編程人員等。主要的關(guān)系有:用戶方與開發(fā)方的關(guān)系、用戶方項(xiàng)目管理人員與使用人員(業(yè)務(wù)人員)及決策層的關(guān)系、項(xiàng)目管理人員與軟件編程人員的關(guān)系、硬件與軟件的關(guān)系、性能與靈活的關(guān)系。
這樣,整個(gè)項(xiàng)目才會(huì)取得成功??!