軟件項(xiàng)目“免坑”指南
一、坑有多深?
當(dāng)我們進(jìn)入一個(gè)項(xiàng)目時(shí),通過(guò)不斷觀(guān)察我們可以發(fā)現(xiàn)我們的項(xiàng)目到底是不是一個(gè)坑。造坑的項(xiàng)目,往往具有某些“臭味”,以下是我的一些認(rèn)識(shí),這些“臭味”即是項(xiàng)目健康狀態(tài)不佳的明顯標(biāo)志:
● 編碼規(guī)范形同廢紙,代碼質(zhì)量低下。每個(gè)項(xiàng)目都有編碼規(guī)范,但真正嚴(yán)格實(shí)施卻是另一回事。太多的項(xiàng)目把編碼規(guī)范作為形式的存在,沒(méi)人在乎讓開(kāi)發(fā)人員寫(xiě)出“人能讀懂的程序”,注釋和命名也成了開(kāi)發(fā)人員的隨心所欲。project上永遠(yuǎn)只有開(kāi)發(fā)任務(wù),而幾乎找不到單元測(cè)試的時(shí)間和代碼審查的時(shí)間。在高壓進(jìn)度之下的項(xiàng)目,顯得如此山寨。當(dāng)我們還在抱怨自己工資低的時(shí)候,就先看看我們的程序還能稱(chēng)作OOP嗎。
● 缺乏文檔或文檔質(zhì)量低下。前 期文檔很重要,不論是框架的API使用手冊(cè),還是需求或設(shè)計(jì)文檔,以及各種既定流程的規(guī)范,不同種類(lèi)的模板及核對(duì)表,等等這些文檔,對(duì)于項(xiàng)目來(lái)說(shuō)都是非常 重要的資源。而往往有些項(xiàng)目,這類(lèi)文檔就是交由非軟件行業(yè)的人員來(lái)編寫(xiě),或者前期根本不打算在文檔上浪費(fèi)時(shí)間。這就導(dǎo)致了,缺少相關(guān)文檔或文檔質(zhì)量低下, 在軟件構(gòu)建過(guò)程中,開(kāi)發(fā)者和團(tuán)隊(duì),不得不為這種“表面工程”的產(chǎn)物而糾結(jié)。甚至?xí)嘶氐角捌跍?zhǔn)備工作,完成所需的文檔。有些文檔可以在后期補(bǔ),但有些必須在前期進(jìn)行準(zhǔn)備,以保住團(tuán)隊(duì)降低風(fēng)險(xiǎn),減少缺陷引人的幾率并提高編碼質(zhì)量,如果前期這類(lèi)文檔沒(méi)有做好,那么就會(huì)像考前不復(fù)習(xí)一樣,自食惡果。
● 無(wú)盡的需求變更,永遠(yuǎn)追不上的進(jìn)度。這 是最常見(jiàn)也是最可怕的,因?yàn)闊o(wú)論怎樣,我們都無(wú)法完成它。客戶(hù)可能認(rèn)為改個(gè)程序,就像改個(gè)Excel一樣簡(jiǎn)單省事,甚至?xí)褂每蓜?dòng)用的一切權(quán)利和資源來(lái)推 行變更。好吧,我承認(rèn)這樣的客戶(hù)我遇到過(guò)很多。當(dāng)我向客戶(hù)解釋過(guò)變更的代價(jià)并提供備選方案后,也就只能等待客戶(hù)的選擇了,這多少有些運(yùn)數(shù)的成分,但也是無(wú) 奈之舉。
● 僅僅靠加班應(yīng)對(duì)進(jìn)度落后。進(jìn)度落后并不可怕,可怕的是僅靠加班來(lái)追趕進(jìn)度。這是問(wèn)題的 關(guān)鍵,長(zhǎng)時(shí)間的趕工仍然無(wú)法趕上進(jìn)度,這只意味著項(xiàng)目有某種更深層次的問(wèn)題,已經(jīng)不是單開(kāi)趕工可以解決的了。留意那些長(zhǎng)時(shí)間加班的項(xiàng)目,他們往往在管理上 存在很大問(wèn)題,發(fā)現(xiàn)這些問(wèn)題,在你成為PM時(shí),不要犯類(lèi)似錯(cuò)誤。
● 溝通無(wú)門(mén)。如果你在一個(gè)“叫天 天不應(yīng),叫地地不靈”的項(xiàng)目里,那你最好省心吧。項(xiàng)目中溝通很重要,但總有些項(xiàng)目,領(lǐng)導(dǎo)的工作太忙,人就是找不到,發(fā)出去的郵件就是沒(méi)人回,遇到問(wèn)題就是 自己扛。在這樣的項(xiàng)目里也有一些好處,比如鍛煉自己的自學(xué)能力,以及磨練意志與根性。不過(guò)這些,也都是我的自嘲。低效的溝通將導(dǎo)致不必要的返工,這才是我 所痛恨之處。我最為惱火的一段經(jīng)歷是,甲方要進(jìn)行變更,開(kāi)了一周的會(huì)沒(méi)人通知我,我的小組在這一周里完成了原計(jì)劃的數(shù)個(gè)需求并進(jìn)入到測(cè)試階段, 但這些需求均被砍掉 。本來(lái)只有甲方告知是可以調(diào)整進(jìn)度開(kāi)發(fā)其它模塊的,但最終演變?yōu)橘Y源的浪費(fèi)。可見(jiàn),溝通是多么的重要。
● 沒(méi)人關(guān)心質(zhì)量。因 為軟件構(gòu)建屬于專(zhuān)業(yè)領(lǐng)域,客戶(hù)并不具備相應(yīng)領(lǐng)域的知識(shí),由于這種信息不對(duì)稱(chēng),助長(zhǎng)了軟件的質(zhì)量低下。我們開(kāi)發(fā)的軟件可以是“低等級(jí)高質(zhì)量”的,但不能夠是 “高等級(jí)低質(zhì)量”的。但是,太多的項(xiàng)目不在注重編碼質(zhì)量,這與軟件構(gòu)建的復(fù)雜度有關(guān),也與整個(gè)行業(yè)的風(fēng)氣有關(guān)。但不管何種原因,提高代碼質(zhì)量仍然應(yīng)該作為 團(tuán)隊(duì)的努力方向。團(tuán)隊(duì)?wèi)?yīng)該獎(jiǎng)勵(lì)那些,編寫(xiě)高質(zhì)量代碼的程序員。如果你的團(tuán)隊(duì)獎(jiǎng)勵(lì)的是那些,“BUG殺手”(每天修改上百個(gè)BUG),而冷落那些缺陷檢出數(shù) 量很低的程序員,那么,你的PM是個(gè)不懂技術(shù)的,至少我本人認(rèn)為,任何有技術(shù)背景的PM都應(yīng)該獎(jiǎng)勵(lì)那些正在保持職業(yè)操守,認(rèn)真對(duì)待需求,保證代碼質(zhì)量的程 序員。他們?yōu)轫?xiàng)目付出了更多,更多的異常處理, 更多的測(cè)試調(diào)試,更多的檢查,更多的重構(gòu),雖然他們的進(jìn)度并不快,但他們引人的缺陷數(shù)量很少。每個(gè)做過(guò)開(kāi)發(fā)的人都會(huì)在質(zhì)量和進(jìn)度上做出取舍,而我敬佩那些 選擇質(zhì)量程序員,因?yàn)樗麄儾攀钦嬲瞄_(kāi)發(fā)當(dāng)事業(yè)的人。在此,向所有努力提高代碼質(zhì)量的程序員致敬!
● 沒(méi)人為缺陷買(mǎi)單,沒(méi)人為自己的成果負(fù)責(zé)。需 求產(chǎn)出了低質(zhì)量的文檔,設(shè)計(jì)沒(méi)有進(jìn)行充分的迭代,開(kāi)發(fā)可以怎么簡(jiǎn)單怎么寫(xiě),測(cè)試可以隨意測(cè)測(cè),沒(méi)人為自己的成果中的缺陷買(mǎi)單,除了項(xiàng)目經(jīng)理,他為項(xiàng)目承擔(dān) 唯一責(zé)任。當(dāng)項(xiàng)目組所有人員都在混時(shí),就是在給自己挖坑。這種缺陷的堆積,會(huì)像放射性元素在食物鏈中的堆積一樣,早晚項(xiàng)目會(huì)因此而崩潰。
● 過(guò)高的離職率。這 個(gè)是最明顯的“臭味”,這說(shuō)明我們的同行已經(jīng)在這里無(wú)法忍受了。它所帶來(lái)的惡略影響不光體現(xiàn)在可用資源的減少,還體現(xiàn)在對(duì)成員士氣的極大影響。如果不及時(shí) 改善,這將是一個(gè)非常惡性的循環(huán),當(dāng)往一個(gè)進(jìn)度落后的項(xiàng)目中添加資源只會(huì)使進(jìn)度進(jìn)一步落后,而非正離職導(dǎo)致必須補(bǔ)充新的資源,資源從入職到培訓(xùn)都會(huì)對(duì)對(duì)團(tuán) 隊(duì)產(chǎn)生震蕩,并降低現(xiàn)行團(tuán)隊(duì)的生產(chǎn)力。一個(gè)頻繁處于形成階段的團(tuán)隊(duì),很難要求其有什么凝聚力,團(tuán)隊(duì)問(wèn)題將會(huì)凸顯,尤其是在溝通上,在項(xiàng)目忙的時(shí)候很少能照 顧到新人。花費(fèi)在對(duì)新人進(jìn)行培訓(xùn),和與其溝通上的時(shí)間,很可能得不償失。
● 團(tuán)隊(duì)中的不良情緒。不 同團(tuán)隊(duì)開(kāi)始扎堆并相互敵視,例如開(kāi)發(fā)組認(rèn)為設(shè)計(jì)組是一幫搞業(yè)務(wù)的白癡,根本不懂編程;測(cè)試組認(rèn)為開(kāi)發(fā)組的人就是垃圾,BUG提交了多少便還是無(wú)法關(guān) 閉;PM開(kāi)始抱怨,自己的成員不配合;成員開(kāi)始抱怨,PM是個(gè)純管理沒(méi)資格指揮內(nèi)行做事。等等,諸如此類(lèi)的怨念會(huì)在團(tuán)隊(duì)中積累,并以某個(gè)導(dǎo)火索為契機(jī)爆 發(fā)。面對(duì)現(xiàn)實(shí)吧,至少,我遠(yuǎn)沒(méi)有自己想象的那樣高尚。我承認(rèn)我曾經(jīng)會(huì)和別的程序員說(shuō):“你看XX他們寫(xiě)的代碼...什么呀...”,這樣的話(huà)。在過(guò)去我也 吐槽過(guò)別人代碼,這種做法是錯(cuò)誤的,我為此表示歉意。現(xiàn)在,如果有必要,我會(huì)說(shuō)代碼有缺陷,但絕不會(huì)說(shuō)他的代碼不好。我希望,我們能彼此尊重。對(duì)于技術(shù)人 來(lái)說(shuō),不尊重他的成果就是不尊重他的人,所以我還是建議PM在管理工作中,多用“缺陷”,少用“不行”、“不對(duì)”。但是,項(xiàng)目中也總是有些人,靠鄙視別人 的成果來(lái)彰顯自己的實(shí)力。這些人,有,但很少。至少我遇到的很少,遇到過(guò)幾個(gè),讓他們的話(huà)語(yǔ)成為你學(xué)習(xí)的動(dòng)力吧。我曾經(jīng)被人諷刺UI做的太丑,之后我學(xué)會(huì)了SL和FLEX;被人鄙視基礎(chǔ)太差,之后開(kāi)始閱讀《CLR Via C#》;我朋友被人嘲笑過(guò)數(shù)據(jù)庫(kù)設(shè)計(jì),現(xiàn)在人家也開(kāi)始買(mǎi)書(shū)深造。團(tuán)隊(duì)中就是這樣,我們無(wú)法管住別人的嘴,但我們可以管住自己的。少說(shuō)多聽(tīng),一鳴驚人,乃上上之策。不要受情緒的影響,保持一個(gè)平靜的心。
● 沒(méi)有項(xiàng)目或階段的后評(píng)價(jià)。不 對(duì)項(xiàng)目的階段進(jìn)行后評(píng)價(jià),也意味著沒(méi)人在乎你到底干了些什么,所有人都只是進(jìn)度是否完成,而沒(méi)有對(duì)完成的好壞進(jìn)行評(píng)價(jià)。這也意味了,僅靠做好你的工作,你 是無(wú)法得到領(lǐng)導(dǎo)的重視的。最終只有那些加班時(shí)間最長(zhǎng)的程序員被領(lǐng)導(dǎo)認(rèn)可。而能力強(qiáng),口碑好的成員也只能在團(tuán)隊(duì)和客戶(hù)中間留下傳說(shuō)。
二、誰(shuí)在造坑?
軟件項(xiàng)目涉眾眾多,造坑的多為項(xiàng)目實(shí)施團(tuán)隊(duì)內(nèi)部,而究其原因也是多方面的,但是始終離不了項(xiàng)目的四個(gè)維度——時(shí)間、范圍、成本、質(zhì)量。很多時(shí)候 客戶(hù)并不具備軟件項(xiàng)目的實(shí)施經(jīng)驗(yàn),而實(shí)施團(tuán)隊(duì)為了迎合客戶(hù)意愿,也會(huì)多多少少的在這四了維度上做文章。資源、時(shí)間不足,輕質(zhì)量重功能,往往成為造坑的契 機(jī)。所以,不用懷疑,造坑的往往是我們自己。很難理解,真正挖出大坑的人,最后也是填坑的人。一個(gè)人很容易被外部事務(wù)所左右,就如“同假的多了,真的到成 假的了一樣”,多數(shù)人不愿意在一個(gè)新環(huán)境中表現(xiàn)得特立獨(dú)行。但也有老的程序員對(duì)我說(shuō)過(guò):“當(dāng)別人做錯(cuò)了,你就不要跟著去做!”所以,我認(rèn)為工作就是工作, 不需要我們?cè)谄渲腥诤隙嗌倥d趣,也不要求我們有過(guò)多的付出,但對(duì)于工作的成果則要求我們認(rèn)真的對(duì)待。俗話(huà)說(shuō):“拿多少錢(qián),辦多少事!”如果多少有些團(tuán)隊(duì)意 識(shí),能夠?qū)ψ约旱墓ぷ髫?fù)責(zé),那至少在意識(shí)上,我們能給自己少造些坑。
三、如何免坑?
(一)清除盲區(qū)
以下觀(guān)點(diǎn),僅是我對(duì)軟件項(xiàng)目中一些錯(cuò)誤認(rèn)識(shí)的歸納:
● 寫(xiě)出能用的程序就行啦!我們應(yīng)該首先清楚我們做的是什么,一個(gè)成熟的團(tuán)隊(duì)產(chǎn)出的可交付成果應(yīng)該包括軟件 編程產(chǎn)品,相關(guān)文檔,項(xiàng)目實(shí)施過(guò)程中的經(jīng)驗(yàn)教訓(xùn)已經(jīng)其它一些非形式的成果(培訓(xùn))。這里,我們必須清楚的認(rèn)識(shí)到,我們所開(kāi)發(fā)是是編程產(chǎn)品,而不是我們個(gè)人 的技術(shù)實(shí)踐或大學(xué)的畢設(shè)。對(duì)于編程產(chǎn)品,我們必須認(rèn)識(shí)到,其是產(chǎn)品級(jí)別的,必須保證質(zhì)量,必須提高用戶(hù)體驗(yàn),必須考慮系統(tǒng)的諸多特性或維度。這一過(guò)程遠(yuǎn)比 我們自己寫(xiě)個(gè)程序要復(fù)雜的多。設(shè)計(jì)需要不斷地進(jìn)行迭代;開(kāi)發(fā)人員需要遵守嚴(yán)苛的規(guī)范,編寫(xiě)大量的注釋和大量的異常處理;測(cè)試人員需要不斷地進(jìn)行各種重復(fù)測(cè) 試,但是正是這種全局的規(guī)范,全體團(tuán)隊(duì)的不懈努力,才保證了我們的編程產(chǎn)物可以稱(chēng)之為產(chǎn)品。所以,一定要明確,我們要完成的是一個(gè)產(chǎn)品,而不是一個(gè)畢業(yè)設(shè) 計(jì),它不是一個(gè)人的技術(shù)實(shí)踐,而是整個(gè)團(tuán)隊(duì)傾注精力去完成的最佳成果。我們可以輕松的實(shí)現(xiàn)客戶(hù)的某些需求,但需求背后的某些東西,需要我們認(rèn)真對(duì)待,比如 安全性和性能等。實(shí)現(xiàn)功能的程序誰(shuí)都會(huì)寫(xiě),而寫(xiě)出高質(zhì)量的程序的才是真正的藝術(shù)。
● 盡快開(kāi)始編碼吧!軟件構(gòu)件是一個(gè)精心設(shè)計(jì)的過(guò)程,其前期準(zhǔn)備十分重要。在后期修復(fù)缺陷的成本要遠(yuǎn)遠(yuǎn)高于前期。因此,在項(xiàng)目執(zhí)行前,前期的規(guī)化十分必要。在前期每發(fā)現(xiàn)一個(gè)缺陷,都會(huì)為后期節(jié)省大量的成本。
● 需求怎么變了!沒(méi)有不變的需求。
● 進(jìn)度落后了就招人唄!這是種典型的錯(cuò)誤認(rèn)識(shí),《人月神話(huà)》中已經(jīng)說(shuō)明的很清楚了——往一個(gè)進(jìn)度落后的項(xiàng) 目中注入資源,只會(huì)使進(jìn)度進(jìn)一步落后。雖然,這本著作成為PM必讀之作,其思想也被業(yè)界所廣泛認(rèn)可,但是,還是會(huì)有很多管理者單純的認(rèn)為,通過(guò)注入資源能 解決問(wèn)題。對(duì)于這些人,只能讓實(shí)踐來(lái)檢驗(yàn)真理了。
● 軟件質(zhì)量保證是測(cè)試的工作!這是一種逃避責(zé)任的說(shuō)辭。如果把代碼質(zhì)量比喻為減肥,那么測(cè)試無(wú)疑是一個(gè)磅秤,減肥工作還是要有開(kāi)發(fā)人員來(lái)完成。所以,不要將代碼質(zhì)量都寄希望于測(cè)試工作上。即使是大規(guī)模的用戶(hù)測(cè)試,其錯(cuò)誤檢出率也不足五成。而真正挑起代碼質(zhì)量重?fù)?dān)的是代碼審查。
● 程序員你8小時(shí)就寫(xiě)了這么點(diǎn)代碼?讓開(kāi)發(fā)人員將全部時(shí)間都花在編碼上是不可能的。開(kāi)發(fā)人員需要時(shí)間預(yù)讀 文檔,需要與相關(guān)干系人進(jìn)行溝通,需要花時(shí)間來(lái)搜索資源。此外,可能還需要編寫(xiě)文檔,參加會(huì)議,培訓(xùn)以及處理個(gè)人事務(wù)等等。這些時(shí)間都會(huì)無(wú)情的奪走編碼的 時(shí)間。程序員大約有近似20%的時(shí)間甚至更多會(huì)用在與編碼無(wú)關(guān)的事情上(不算上班或聊QQ),所以不要錯(cuò)誤的以為每個(gè)程序員每天能寫(xiě)8小時(shí)的程序。
● 你今天寫(xiě)了這么多行代碼真有效率!編碼不是在掃地,比誰(shuí)掃的面積大。不能單純用行數(shù)來(lái)評(píng)價(jià)開(kāi)發(fā)人員的工作量。評(píng)判的標(biāo)準(zhǔn)應(yīng)該結(jié)合模塊的復(fù)雜度,編碼的缺陷檢出量以及最終交付時(shí)可用代碼的比例(實(shí)踐表明,我們報(bào)廢了大量的無(wú)用代碼)。
● 他今天把自己100多個(gè)BUG都改了,我們得在組里表?yè)P(yáng)下他!在我看來(lái)這樣的領(lǐng)導(dǎo)不跟也罷,這就是讓人 相當(dāng)無(wú)語(yǔ)的行為。好的開(kāi)發(fā)者在提交測(cè)試前,覺(jué)得會(huì)對(duì)自己的代碼進(jìn)行走查和調(diào)試,甚至使用單元測(cè)試工具,因此其代碼的缺陷檢出量很小。這樣的程序員,才值得 被表?yè)P(yáng)。而那個(gè)一天改了自己100多個(gè)BUG的人,作為管理者應(yīng)該想想,流程哪里錯(cuò)了,需要進(jìn)行改進(jìn)。
● 設(shè)計(jì)我來(lái)定,開(kāi)發(fā)你閉嘴!這樣的例子也不少,這種做法有一種聽(tīng)起來(lái)非常合理的理由——保證項(xiàng)目架構(gòu)的概 念完整性。其解釋為,如果將設(shè)計(jì)人員從開(kāi)發(fā)人員剝離,那么就可以將架構(gòu)的概念完整性統(tǒng)一,因?yàn)樵O(shè)計(jì)人員的數(shù)量比開(kāi)發(fā)人員是數(shù)量要少的多,更容易統(tǒng)一認(rèn)識(shí)。 而這樣做的項(xiàng)目組,也默認(rèn)地認(rèn)為設(shè)計(jì)組的技術(shù)實(shí)力要明顯高于開(kāi)發(fā)組。他們往往從開(kāi)發(fā)組中選擇優(yōu)秀的設(shè)計(jì)人員到設(shè)計(jì)組,但也會(huì)有走眼的時(shí)候。其一,硬手沒(méi)有 被提拔。這時(shí)候多半是硬手對(duì)設(shè)計(jì)不滿(mǎn),并對(duì)團(tuán)隊(duì)管理層產(chǎn)生質(zhì)疑,并想法設(shè)法進(jìn)行溝通。如果處理的好,可能硬手會(huì)被重視,如果溝通無(wú)門(mén),那之后,可能會(huì)充斥 著抱怨和不滿(mǎn),以及人際關(guān)系的惡化。有些強(qiáng)硬些的可能會(huì)選擇拒絕不合理的設(shè)計(jì)或更為極端的是離職。走眼的另一種情況是,挑的人干不了設(shè)計(jì)。這樣往往就是讓 他鍛煉,而不是撤換(彼得原理——每個(gè)人都會(huì)被晉升到他不適合的崗位)。這就郁悶到極點(diǎn)了,設(shè)計(jì)者將會(huì)與相應(yīng)的數(shù)名開(kāi)發(fā)人員進(jìn)行一場(chǎng)曠日持久的暗戰(zhàn)。其 中,已經(jīng)不只是個(gè)人的抱怨,甚至?xí)葑兂沙蓡T集體的士氣低落,并最終促成小組的重組。我認(rèn)為,有必要將開(kāi)發(fā)人員納入設(shè)計(jì)活動(dòng)。應(yīng)該參考開(kāi)發(fā)人員的意見(jiàn),其 原因有三:其一,開(kāi)發(fā)人員對(duì)實(shí)現(xiàn)相當(dāng)熟悉,往往發(fā)現(xiàn)設(shè)計(jì)中的不足;其二,通過(guò)授權(quán)開(kāi)發(fā)者參與設(shè)計(jì),能讓其感受到認(rèn)同感,提升其參與項(xiàng)目的欲望,和責(zé)任心; 其三,讓開(kāi)發(fā)參與設(shè)計(jì),可以對(duì)設(shè)計(jì)人員進(jìn)行儲(chǔ)備,在需要時(shí)作為備選資源使用。
● 客戶(hù)(領(lǐng)導(dǎo))說(shuō)必須完成,我也沒(méi)辦法!這就是“領(lǐng)導(dǎo)一句話(huà),勞動(dòng)人民跑斷腿!”這是非常典型的加班借 口。軟件構(gòu)建過(guò)程如同耕種,你每次只處理它的一小部分,一點(diǎn)一點(diǎn)的加到整個(gè)系統(tǒng),使系統(tǒng)一點(diǎn)一點(diǎn)的“生長(zhǎng)”。這也暗示了,工作應(yīng)該按部就班,正如春種秋收 一樣,各個(gè)環(huán)節(jié)有強(qiáng)硬的邏輯存在。所以,我們必須學(xué)會(huì)對(duì)不合理的要求說(shuō)“不”。這里并不是說(shuō)要拒絕客戶(hù)的需求,而是指應(yīng)該向客戶(hù)說(shuō)明情況并提出相應(yīng)的備選 方案以供參考。例如通過(guò)通過(guò)削減范圍來(lái)達(dá)到按時(shí)完工的目的。PM需要向客戶(hù)說(shuō)明情況,并向其提供幾套可行的解決方案,以促成項(xiàng)目向良性發(fā)展。
● 我是領(lǐng)導(dǎo)我來(lái)排進(jìn)度!工作進(jìn)度的安排不能是領(lǐng)導(dǎo)的單方?jīng)Q策,而應(yīng)該參考做了解這項(xiàng)工作的人的意見(jiàn)。
● 系統(tǒng)上線(xiàn)了,項(xiàng)目就算結(jié)束了!只有當(dāng)可交付成果成功移交,項(xiàng)目進(jìn)行的相應(yīng)的收尾工作,項(xiàng)目的經(jīng)驗(yàn)教訓(xùn)文檔被總結(jié)和歸納,一個(gè)項(xiàng)目才算真正意義上的完成。
(二)參考建議
● 做好前期準(zhǔn)備。前期準(zhǔn)備很重要,如果在開(kāi)始構(gòu)建之前認(rèn)真的地進(jìn)行適當(dāng)?shù)臏?zhǔn)備活動(dòng),那么項(xiàng)目會(huì)運(yùn)作的良 好。充足的準(zhǔn)備防止我們制造一個(gè)錯(cuò)誤的產(chǎn)品。前期工作的好壞,多少會(huì)為這個(gè)項(xiàng)目的成功和失敗打下基礎(chǔ)。即使進(jìn)入構(gòu)建階段,如果我們發(fā)現(xiàn)前期工作做的不好, 也完全有理由退回去。前期準(zhǔn)備工作和核心目標(biāo)就是降低風(fēng)險(xiǎn)——一個(gè)好的項(xiàng)目規(guī)劃者能夠盡可能早地將主要的風(fēng)險(xiǎn)清除掉,以使項(xiàng)目的大部分工作能夠盡可平穩(wěn)地 進(jìn)行。目前,對(duì)后期影響最嚴(yán)重的風(fēng)險(xiǎn)是糟糕的需求分析和項(xiàng)目規(guī)劃,因此準(zhǔn)備工作就傾向于集中改進(jìn)需求分析和項(xiàng)目規(guī)劃。
● 預(yù)先行其事,必先利其器。用軟件武裝團(tuán)隊(duì)提高生產(chǎn)效率,例如:版本控制,錯(cuò)誤跟蹤,信息發(fā)布,自動(dòng)發(fā)布,CASE工具,調(diào)試工具,測(cè)試工具,文檔管理,代碼生成工具等等。
● 分析項(xiàng)目類(lèi)型,在管理和構(gòu)建之間找尋平衡。商業(yè)系統(tǒng)、使命攸關(guān)的系統(tǒng)、性命攸關(guān)的系統(tǒng)在整個(gè)項(xiàng)目階段具備不同的控制粒度。需要根據(jù)項(xiàng)目的具體類(lèi)型來(lái)確定管理的嚴(yán)謹(jǐn)程度,避免“過(guò)度控制”或“控制不足”。
● 需求必須被凍結(jié)。需求必須被凍結(jié),如果需求不能凍結(jié),那么誰(shuí)來(lái)了都沒(méi)有用。再?gòu)?qiáng)的團(tuán)隊(duì)也無(wú)法完成一個(gè)無(wú)盡的任務(wù)。
● 變更必須走流程。正確應(yīng)對(duì)變更,變更并不可怕,可怕的是失控的變更。以下建議希望對(duì)讀者有所幫助:
在構(gòu)建期間處理需求變更
1、核對(duì)需求,評(píng)估質(zhì)量:如果需求不夠好,停下來(lái),把它做好再開(kāi)始。
2、確保每一個(gè)人都知道需求變更的代價(jià):讓客戶(hù)知道需求辦更并不像在Excel上進(jìn)行幾個(gè)修改那樣容易,“進(jìn)度”和“成本”是你最有力的武器。
3、建立一套變更控制程序:固定的變更控制程序讓你知道在什么時(shí)候處理變更,讓客戶(hù)知道你會(huì)處理他們的提議。
4、使用能適應(yīng)變更的開(kāi)發(fā)方法:迭代與增量。
5、放棄這個(gè)項(xiàng)目:如果以上提議沒(méi)有一條奏效,需求變更極其頻繁,那么,評(píng)估你的項(xiàng)目,考慮放棄它吧,繼續(xù)下去你只會(huì)越陷越深。
6、注意項(xiàng)目的商業(yè)案例:性?xún)r(jià)比,沒(méi)必要滿(mǎn)足超出項(xiàng)目成本的需求。
● 關(guān)于加班。做IT的加班是很正常的,但加班要加的有意義,而且不應(yīng)該長(zhǎng)期加班。必須針對(duì)關(guān)鍵路徑上的工 作進(jìn)行趕工,而不是做些無(wú)法加快整體進(jìn)度的工作。而且,應(yīng)當(dāng)安排調(diào)休,而不是支付加班費(fèi)。其主要原因也是我不贊成加班的原因——疲勞更容易引人缺陷。加班 無(wú)疑會(huì)使人疲勞,每個(gè)人都想盡快結(jié)束手上的工作后回家休息。在長(zhǎng)期疲憊的情況下,人員的工作效率會(huì)下降,士氣會(huì)低落,非正常離職率增加,最重要的是疲憊的 團(tuán)隊(duì)很難保證軟件的質(zhì)量,缺陷在不知不覺(jué)中引人,在后期無(wú)疑會(huì)為此付出代價(jià)。項(xiàng)目的總成本和周期,都會(huì)隨著引人缺陷的數(shù)量的增加而倍增,而且發(fā)現(xiàn)的越晚越 嚴(yán)重。
● 做好版本控制和配置管理。版本控制和配置管理是必須有的,即便是再小的項(xiàng)目也不能忽視,必須加以重視,一旦版本混亂,多多少少會(huì)對(duì)構(gòu)活動(dòng)造成影響。所以,平時(shí)不要偷懶,管理好每個(gè)基線(xiàn)。
posted on 2012-04-26 09:22 順其自然EVO 閱讀(192) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): 管理方向