????? 在《人月神話》開始的時(shí)候,作者Frederick P. Brooks Jr.寫道:史前史中,沒有別的場(chǎng)景比巨獸們?cè)诮褂涂又写顾罀暝膱?chǎng)面更令人震撼。上帝見證著恐龍、猛犸象、劍齒虎在焦油中掙扎。他們掙扎的越猛烈,焦油糾纏的就越緊,沒有任何猛獸足夠強(qiáng)壯或具有足夠的技巧,能夠掙脫束縛,他們最后都沉到了坑底。
?????? Frederick P. Brooks Jr.寫下上面的文字,用以比喻我們的軟件項(xiàng)目,一旦開始,就類似于各種動(dòng)物在焦油坑中的掙扎。項(xiàng)目開始時(shí)的興奮、激動(dòng)迅速轉(zhuǎn)變?yōu)閷?duì)項(xiàng)目結(jié)束遙遙無期的詛咒和絕望。
?????? 對(duì)于目前國(guó)內(nèi)的許多軟件項(xiàng)目而言,這似乎成為了定律,無論你做怎樣的掙扎,項(xiàng)目就是無法結(jié)束,只能靠和用戶比拼耐性,預(yù)期6個(gè)月的項(xiàng)目,做18個(gè)月是常有的事。我也經(jīng)歷了無數(shù)的夢(mèng)魘般的項(xiàng)目,對(duì)于如何有效的結(jié)束一個(gè)項(xiàng)目,在學(xué)習(xí)了PMBOK之后,我想結(jié)合最近剛剛完成的一個(gè)稅收MIS項(xiàng)目,談?wù)勛约旱目捶ā?br />?????? 在PMBOK中,對(duì)于項(xiàng)目的階段,劃分為以下五個(gè)部分:
?

?????? 我將基本按照這五部分,描述在這個(gè)項(xiàng)目中,是如何將項(xiàng)目結(jié)束的。
??????1、啟動(dòng)
?????? 該項(xiàng)目的客戶屬于我們公司長(zhǎng)期合作的客戶,客戶與銷售經(jīng)理的關(guān)系非常密切,客戶需要開發(fā)該軟件時(shí),直接找到了我們公司,我作為技術(shù)負(fù)責(zé)人和銷售經(jīng)理一起和客戶交流了該軟件的情況。在第一次接觸中,我感到客戶對(duì)于自己將要開發(fā)的軟件的需要還不是十分清楚,但是客戶方的項(xiàng)目經(jīng)理,也就是該稅務(wù)局的信息中心主任對(duì)于軟件開發(fā)卻有著比較豐富的經(jīng)驗(yàn),曾經(jīng)參與過金稅工程等大型軟件的開發(fā)。這使我感到這樣的客戶比較容易交流。實(shí)際情況也確實(shí)如此,在與客戶交流了幾次之后,該項(xiàng)目基本確定,我被公司任命該該項(xiàng)目的項(xiàng)目經(jīng)理,負(fù)責(zé)該項(xiàng)目的開發(fā)。
?????? 在這個(gè)過程中,我想作為項(xiàng)目經(jīng)理,有一個(gè)思想必須明確,那就是項(xiàng)目管理的目標(biāo)就是實(shí)現(xiàn)項(xiàng)目的目標(biāo),結(jié)束項(xiàng)目。這個(gè)理念應(yīng)該貫穿項(xiàng)目管理的始終,所以,在最初和用戶交流時(shí),我們就要考慮該項(xiàng)目如何才能結(jié)束,它需要達(dá)到什么樣的目標(biāo)用戶才能夠認(rèn)可,該項(xiàng)目的大體成本是多少,公司對(duì)于項(xiàng)目開發(fā)周期有沒有限制,該項(xiàng)目存在的風(fēng)險(xiǎn)作為項(xiàng)目團(tuán)隊(duì)能夠承受等。
?????? 具體到這個(gè)項(xiàng)目中,一開始,我就發(fā)現(xiàn)該項(xiàng)目最大的風(fēng)險(xiǎn)在與用戶覺得這個(gè)項(xiàng)目很簡(jiǎn)單,同時(shí)對(duì)于需求卻還是比較模糊,當(dāng)然這也是大多數(shù)項(xiàng)目的通病,我承認(rèn)這個(gè)項(xiàng)目與金稅工程比起來確實(shí)非常簡(jiǎn)單(比金稅工程復(fù)雜的項(xiàng)目也不多:),但是如果用戶抱著這樣的心態(tài),必然會(huì)出現(xiàn)項(xiàng)目開發(fā)時(shí)狂趕工期,后期Bug滿天飛,需求改來改去,用戶諸多抱怨,公司一面獎(jiǎng)勵(lì)銷售,一面拿研發(fā)人員開刀的情況。因此,我想怎樣找個(gè)合適的機(jī)會(huì)將項(xiàng)目開發(fā)的難度以及項(xiàng)目管理的理念與用戶溝通。
?????? 正在我苦惱的時(shí)候,用戶提出他們信息中心的技術(shù)人員希望進(jìn)行一次培訓(xùn),以掌握該項(xiàng)目中的Java等技術(shù)。我知道,機(jī)會(huì)來了,在十天的技術(shù)課程的安排上,我專門抽出了一天的時(shí)間講解項(xiàng)目管理,課程安排發(fā)給用戶后,用戶發(fā)現(xiàn)了我的小秘密:,專門打來電話問我用一天時(shí)間講解項(xiàng)目管理是否有必要,抓住這個(gè)機(jī)會(huì),我先給信息中心主任講了講項(xiàng)目管理的重要性,以及這個(gè)軟件的難度、風(fēng)險(xiǎn)、周期等,讓用戶同意了該要求。在項(xiàng)目開始的時(shí)候,獲得客戶方項(xiàng)目經(jīng)理的認(rèn)可是非常必要的,如果你的理念和做法在一開始讓客戶方的項(xiàng)目經(jīng)理感到很難認(rèn)可,我想,項(xiàng)目做起來的難度會(huì)非常大。
?????? 接下來就是合同的簽訂和為期十天的培訓(xùn),在培訓(xùn)中,我將PMBOK的項(xiàng)目管理理念貫穿到整個(gè)培訓(xùn)中,尤其是最后的項(xiàng)目管理的講解,基本上達(dá)到了預(yù)期的效果,讓客戶認(rèn)識(shí)到軟件的開發(fā)絕對(duì)不是程序的編寫,它涉及到方方面面,一個(gè)成功的項(xiàng)目沒有客戶的配合和參與是很難成功的。對(duì)于項(xiàng)目的結(jié)束,我也與信息中心主任作了多次溝通,雙方基本互相了解了對(duì)方的需求和想法。這對(duì)于后來項(xiàng)目的順利進(jìn)行打下了良好的基礎(chǔ)。
?????? 通過該項(xiàng)目的啟動(dòng),我發(fā)現(xiàn),在啟動(dòng)時(shí)如果有條件,對(duì)客戶進(jìn)行一次培訓(xùn)非常有利于項(xiàng)目的順利進(jìn)行。在培訓(xùn)過程中,可以和客戶成為朋友,同時(shí)把自己項(xiàng)目團(tuán)隊(duì)的開發(fā)方法和客戶作認(rèn)真的交流,讓客戶認(rèn)可開發(fā)團(tuán)隊(duì),而且經(jīng)過培訓(xùn)時(shí)間的緩沖,一方面,可以組織其他技術(shù)人員對(duì)于項(xiàng)目中可能出現(xiàn)的技術(shù)難關(guān)進(jìn)行突破,另一方面可以在私下里和客戶交流項(xiàng)目需求,這種非正式的需求交流往往比正式的需求交流更容易知道客戶發(fā)起項(xiàng)目的初衷和客戶希望達(dá)到的目標(biāo)。
?????? 2、計(jì)劃
?????? 在計(jì)劃階段,一開始應(yīng)該結(jié)合啟動(dòng)階段對(duì)需求的大致了解做出大略的計(jì)劃,明確項(xiàng)目的結(jié)束日期,該計(jì)劃一方面要提交給用戶,另一方面要知會(huì)全體項(xiàng)目組成員和公司項(xiàng)目管理部門或公司領(lǐng)導(dǎo)。當(dāng)然,這里明確的項(xiàng)目結(jié)束日期一般情況下都和項(xiàng)目的真正結(jié)束日期相去甚遠(yuǎn)(到目前為止我還沒遇到過特殊情況),這不要緊,因?yàn)樵谛枨笳{(diào)研結(jié)束后,還會(huì)再細(xì)化項(xiàng)目計(jì)劃,重新明確項(xiàng)目結(jié)束日期。但是不管如何明確,這時(shí)的項(xiàng)目結(jié)束如期往往受到來自客戶、公司等方面的壓力,做出的計(jì)劃總是按照一種理想狀況安排的,例如下面就是我在需求結(jié)束后作的項(xiàng)目計(jì)劃:

???????這個(gè)項(xiàng)目計(jì)劃就是在客戶方的領(lǐng)導(dǎo)及公司的雙重壓力下做出的,這個(gè)時(shí)候,項(xiàng)目經(jīng)理必須保持清醒的頭腦,不管計(jì)劃上的項(xiàng)目結(jié)束時(shí)間是多少,心里必須清楚實(shí)際完成的大致時(shí)間和計(jì)劃時(shí)間的差距,以及這種差距客戶機(jī)公司是否能夠承受。這樣,在項(xiàng)目進(jìn)行過程中,再根據(jù)情況對(duì)計(jì)劃逐步調(diào)整,逐步向客戶和公司匯報(bào)調(diào)整原因,容易達(dá)到客戶和公司雙方都基本滿意的結(jié)局。如果差距過大,就要據(jù)理力爭(zhēng)調(diào)整計(jì)劃,當(dāng)然,這是比較困難的,但比起最終被客戶和公司雙重責(zé)難,還是比較值得的。
上面的計(jì)劃提交后,我估計(jì)最終的結(jié)束時(shí)間大約要比計(jì)劃晚5周左右,主要是對(duì)于系統(tǒng)修缺,也就是試運(yùn)行開始后,用戶必然會(huì)提出許多意見,2周的時(shí)間應(yīng)該完成不了,但是,如果直接在計(jì)劃上提出7周的時(shí)間,用戶絕對(duì)無法接受,公司也無法接受,項(xiàng)目可能就會(huì)陷入停滯,在壓力下,我做了2周的修缺,那么,到時(shí)候怎么辦呢?我通常的做法是,在盡量爭(zhēng)取長(zhǎng)的修缺時(shí)間后,首先保證試運(yùn)行的基本按時(shí)進(jìn)行,這一點(diǎn),相信大多數(shù)項(xiàng)目團(tuán)隊(duì)都能夠保證,然后,在開發(fā)時(shí)采取多版本上線的方式,盡量讓用戶盡早提出修改意見,爭(zhēng)取盡早開始修改,第三,在試運(yùn)行開始后,用戶提出意見時(shí),及時(shí)調(diào)整項(xiàng)目計(jì)劃并及時(shí)通知用戶,讓用戶明白當(dāng)他的意見被采納后,項(xiàng)目結(jié)束時(shí)間將被推遲到什么時(shí)候,給用戶一定的壓力,可以減少意見量,盡早結(jié)束項(xiàng)目。還有,就是在可能的情況下,盡量將實(shí)際的估計(jì)時(shí)間和自己的主管領(lǐng)導(dǎo)進(jìn)行溝通,獲得他的支持,保證無后顧之憂(這一點(diǎn)很重要,不過就看你和領(lǐng)導(dǎo)的關(guān)系了:)。
?????? 事后證明,我當(dāng)初的估計(jì)基本是對(duì)的,項(xiàng)目結(jié)束的時(shí)間大約比計(jì)劃時(shí)間晚了4周左右,這是由于用戶對(duì)于軟件開發(fā)的熟悉和配合,如果碰上比較麻煩的客戶,時(shí)間大約會(huì)再晚一些,但只要事先有充分的估計(jì),就不會(huì)手忙腳亂。
?????? 3、執(zhí)行
?????? 執(zhí)行過程相對(duì)比較順利,由于和客戶保持了良好的關(guān)系,得到了客戶的大力支持,基本上沒有提出刁鉆的問題。在這個(gè)過程中,一開始的部分,我們是在公司開發(fā),這個(gè)過程中,我們開發(fā)了部分模塊,作為0.1版,到現(xiàn)場(chǎng)給用戶進(jìn)行了安裝。
這樣做,我認(rèn)為有幾個(gè)好處,首先,可以讓用戶感到項(xiàng)目一直在進(jìn)行,而不至于破壞和用戶的信任關(guān)系,其次,可以盡早了解現(xiàn)場(chǎng)的實(shí)際情況,如果發(fā)現(xiàn)問題,及時(shí)調(diào)整開發(fā)方向或者讓用戶調(diào)整現(xiàn)場(chǎng)環(huán)境。再次,可以讓用戶對(duì)部分模塊盡早提出修改意見,在開發(fā)其余模塊時(shí),就可以對(duì)這部分進(jìn)行修改,同時(shí)把意見貫穿到其他模塊中去,減少后面修改的時(shí)間。
?????? 開發(fā)大致結(jié)束后,我們進(jìn)入現(xiàn)場(chǎng)給用戶進(jìn)行安裝調(diào)試,然后再進(jìn)行系統(tǒng)修改,這是最艱苦的時(shí)期,在這時(shí),用戶、公司、項(xiàng)目團(tuán)隊(duì)都很容易疲憊、厭煩、憤怒、絕望,并把這一切的罪過都堆到項(xiàng)目經(jīng)理的頭上。所以這時(shí)作為項(xiàng)目經(jīng)理,要保持高度的警惕,必須有完整的項(xiàng)目日志,記錄每天的進(jìn)度;必須保持和用戶方項(xiàng)目經(jīng)理良好的溝通,隨時(shí)將問題及進(jìn)度報(bào)告客戶及公司,讓他們明白每天項(xiàng)目團(tuán)隊(duì)在做什么,為什么結(jié)束時(shí)間會(huì)一推再推;必須觀察項(xiàng)目組成員的情況,防止由于疲憊而出現(xiàn)人員流失的現(xiàn)象;必須隨時(shí)提醒自己,項(xiàng)目的目標(biāo)就是結(jié)束項(xiàng)目,所作的一切都要圍繞結(jié)束項(xiàng)目而進(jìn)行。
?????? 在這個(gè)過程中,我們項(xiàng)目組基本熬了過來,在我的預(yù)想時(shí)間內(nèi)結(jié)束了項(xiàng)目,雖然還有很多不令人滿意的地方,但畢竟隨著項(xiàng)目的結(jié)束,大家的壓力減輕,可以更好的總結(jié)經(jīng)驗(yàn)。
?????? 4、控制
?????? 在項(xiàng)目進(jìn)行的過程中,會(huì)出現(xiàn)各種各樣想象不到的問題,遇到這種突發(fā)情況,需要項(xiàng)目經(jīng)理及時(shí)解決。
?????? 在這個(gè)項(xiàng)目進(jìn)行的過程中,在開發(fā)進(jìn)入最關(guān)鍵的時(shí)刻,項(xiàng)目組的技術(shù)骨干突然提出要離職,這是我事先沒有思想準(zhǔn)備的,如果他真的離職,將會(huì)對(duì)項(xiàng)目造成極大的麻煩。這個(gè)時(shí)候,我和他進(jìn)行了長(zhǎng)時(shí)間的溝通,了解他離職的原因,如果能夠挽留,盡量挽留。
?????? 經(jīng)過交流,發(fā)現(xiàn)他提出離職是基于三個(gè)原因,一是對(duì)公司長(zhǎng)期的不滿,在一個(gè)公司待長(zhǎng)了就會(huì)對(duì)公司產(chǎn)生種種不滿,這是人之常情,雖然我提出增加薪水及提升職位,但很難讓他對(duì)于公司的不滿得到根本解決,二是具體生活的壓力,在我們這個(gè)二級(jí)城市的薪水待遇很難解決結(jié)婚買房等具體壓力,因此他希望能夠到北京這樣薪水待遇比較好的地方,這也是我們公司目前面臨的人員流失的重大挑戰(zhàn),但這個(gè)問題短期內(nèi)恐怕沒有更好的方法,三是對(duì)于外面世界的向往,在一個(gè)二級(jí)城市呆的時(shí)間長(zhǎng)了,對(duì)于北京這樣緊挨的全國(guó)信息中心必然產(chǎn)生向往,希望技術(shù)、思想等各方面能夠在北京得到提升。
?????? 這些問題也是普遍問題,我無法通通為他解決,但為項(xiàng)目考慮,經(jīng)過勸說,由于平時(shí)大家關(guān)系非常好,他答應(yīng)留下來一個(gè)月左右的時(shí)間,解決好他負(fù)責(zé)部分的技術(shù)問題,同時(shí)做好交接工作。這對(duì)于項(xiàng)目來說,危機(jī)就解除了,因?yàn)橛幸粋€(gè)月的時(shí)間,完全可以安排好一切。
?????? 針對(duì)這樣的危機(jī),我想,作為項(xiàng)目經(jīng)理,一是平時(shí)就要注意和團(tuán)隊(duì)成員的關(guān)系,當(dāng)發(fā)生各種情況時(shí),即便是用人情,也可以幫助自己度過危機(jī);二是對(duì)于許多問題,要在平時(shí)就了解到團(tuán)隊(duì)成員的需要,能幫大家解決的,盡力解決,不要等到發(fā)生問題的時(shí)候,實(shí)在解決不了的,要讓大家知道公司的難處和具體環(huán)境的限制,不要讓大家記恨公司;三是要牢記團(tuán)隊(duì)建設(shè)的核心是團(tuán)隊(duì)成員的個(gè)人發(fā)展,要給每個(gè)成員成長(zhǎng)的空間,包括技術(shù)、薪水、職位等,否則,一旦團(tuán)隊(duì)成員達(dá)到發(fā)展的頂峰,就會(huì)感到?jīng)]有前途,離職恐怕是必然的選擇。
??????
?????? 5、收尾
?????? 收尾階段最大的困難是什么?進(jìn)度!這個(gè)時(shí)候,面臨項(xiàng)目結(jié)束,所有人對(duì)會(huì)對(duì)進(jìn)度非常關(guān)注。如何設(shè)法說服用戶,結(jié)束沒完沒了地更改,順利地結(jié)束項(xiàng)目,是每個(gè)項(xiàng)目經(jīng)理都必須面對(duì)的問題。
?????? 在這個(gè)項(xiàng)目中,由于前期作了大量的工作,在臨近收尾時(shí),我們準(zhǔn)備了完備的文檔,解決了當(dāng)前存在的Bug,并承諾了以后的服務(wù),雙方都比較滿意,順利地簽署了初驗(yàn)報(bào)告,用戶也支付了項(xiàng)目款項(xiàng),結(jié)束了該項(xiàng)目。
?????? 所以,我覺得,順利地收尾并不取決于收尾階段的工作,而是要把收尾工作貫穿到項(xiàng)目始終,如果前期準(zhǔn)備充分,收尾時(shí)最大的沖突,進(jìn)度,就不會(huì)成為項(xiàng)目經(jīng)理最大的問題,相反,如果收尾階段才開始考慮如何結(jié)束項(xiàng)目,那恐怕項(xiàng)目的結(jié)束就會(huì)遙遙無期。
?????? 這個(gè)項(xiàng)目目前除了日常維護(hù)和簡(jiǎn)單的修改外,已經(jīng)沒有大量的工作了,雖然項(xiàng)目的順利結(jié)束,有很多偶然的因素,例如用戶的積極配合(這在其他項(xiàng)目中是少見的,一般是用戶的百般刁難),但我想,他仍然具備一些中小項(xiàng)目共同的特點(diǎn),作為項(xiàng)目經(jīng)理,我提出來和大家分享的目的是希望我們總結(jié)經(jīng)驗(yàn),能跳出項(xiàng)目的焦油坑,順利地結(jié)束每一個(gè)項(xiàng)目。