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

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

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