小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

軟件項(xiàng)目“免坑”指南

 newencn 2012-04-08

軟件項(xiàng)目“免坑”指南

目錄

一 坑有多深?

二 誰(shuí)在造坑?

三 如何免坑?

  “誰(shuí)也無(wú)法改變現(xiàn)狀,唯有無(wú)數(shù)程序員血灑大地,才能使項(xiàng)目重建天日。”這一點(diǎn)也不夸張,軟件項(xiàng)目做爛了就是個(gè)坑,參與者也不過(guò)是填坑的。就像是在魔獸世界戰(zhàn)場(chǎng)遇到國(guó)家隊(duì)一樣,你贏也贏不了,出也出不去。

一 坑有多深?

  當(dāng)我們進(jìn)入一個(gè)項(xiàng)目時(shí),通過(guò)不斷觀察我們可以發(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ì)量 因?yàn)檐浖?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í)候很少能照顧到新人?;ㄙM(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ě)的代碼...什么呀...”,這樣的話。在過(guò)去我也吐槽過(guò)別人代碼,這種做法是錯(cuò)誤的,我為此表示歉意。現(xiàn)在,如果有必要,我會(huì)說(shuō)代碼有缺陷,但絕不會(huì)說(shuō)他的代碼不好。我希望,我們能彼此尊重。對(duì)于技術(shù)人來(lái)說(shuō),不尊重他的成果就是不尊重他的人,所以我還是建議PM在管理工作中,多用“缺陷”,少用“不行”、“不對(duì)”。但是,項(xiàng)目中也總是有些人,靠鄙視別人的成果來(lái)彰顯自己的實(shí)例。這些人,有,但很少。至少我遇到的很少,遇到過(guò)幾個(gè),讓他們的話語(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ì)待。俗話說(shuō):“拿多少錢(qián),辦多少事!”如果多少有些團(tuán)隊(duì)意識(shí),能夠?qū)ψ约旱墓ぷ髫?fù)責(zé),那至少在意識(shí)上,我們能給自己少造些坑。

三 如何免坑?

(一) 清除盲區(qū)

  以下觀點(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í),《人月神話》中已經(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)一句話,勞動(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à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è)基線。
  • 授權(quán)的好處 授權(quán)好處多多,包括:一,減少管理者工作量;二,對(duì)人員有意識(shí)地進(jìn)行鍛煉,培養(yǎng)儲(chǔ)備人才;三,提高人員對(duì)項(xiàng)目的參與度,從而提高士氣。
  • 樂(lè)觀管理與悲觀管理 樂(lè)觀與悲觀完全取決于人的性格,一般來(lái)講多數(shù)傾向于樂(lè)觀,應(yīng)該清楚這兩種性格在項(xiàng)目中的優(yōu)勢(shì)與劣勢(shì)。我本人傾向于悲觀,可能是性格使然,但悲觀的管理至少不會(huì)誤事。樂(lè)觀管理的優(yōu)勢(shì)在于,很容易營(yíng)造氣氛,擅長(zhǎng)給客戶(hù)或領(lǐng)導(dǎo)描繪一個(gè)美好的未來(lái)。這種作風(fēng),前期很舒服,但后期可能要吃苦了。樂(lè)觀管理容易出現(xiàn)的問(wèn)題是對(duì)風(fēng)險(xiǎn)的預(yù)計(jì)不足,不能預(yù)留充足的緩沖時(shí)間,沒(méi)有準(zhǔn)備足夠的預(yù)防措施。其表現(xiàn)就是,在進(jìn)行進(jìn)度計(jì)劃時(shí),總是認(rèn)為今天的問(wèn)題今天可以解決,已經(jīng)修復(fù)的BUG將不會(huì)再次出現(xiàn),用戶(hù)需求是最后一次變更,等等諸如此類(lèi)的樂(lè)觀想法會(huì)使管理者蒙蔽雙眼,而沒(méi)有做足風(fēng)險(xiǎn)應(yīng)對(duì),其結(jié)果就是不管怎么加班就是趕不上進(jìn)度,因?yàn)檫M(jìn)度計(jì)劃被設(shè)計(jì)為最順利的情形,而不是現(xiàn)實(shí)場(chǎng)景。悲觀管理的好處是,為潛在風(fēng)險(xiǎn)做足了準(zhǔn)備。但悲觀管理有一個(gè)非常大的缺陷,就是“過(guò)度控制”,可以比喻為“疑心病”(小心的都有些病態(tài)了)。其表現(xiàn)是為:按照之前的措施,發(fā)現(xiàn)遺漏了一個(gè)問(wèn)題,那么悲觀管理者會(huì)在之前措施基礎(chǔ)上增加新的保障措施,然后又發(fā)現(xiàn)遺漏了一個(gè)問(wèn)題,之后會(huì)繼續(xù)追加保障措施。乍看之下沒(méi)啥問(wèn)題,因?yàn)槭窃诓粩嗟剡M(jìn)行過(guò)程改進(jìn),但問(wèn)題出在保障措施的增長(zhǎng)速度過(guò)于驚人,稱(chēng)其為“疑心病”一點(diǎn)也不為過(guò),悲觀管理者容易在很小的地方施加過(guò)多的控制,造成人日的浪費(fèi),而忽略掉本應(yīng)該關(guān)注的更為重要的問(wèn)題。不管那種性格的管理,清楚自己的弱點(diǎn)總是好的。
  • 有效的溝通,不要踢皮球 軟件項(xiàng)目因?yàn)槠浔旧淼膹?fù)雜度和涉眾眾多,所以更加需要溝通。溝通問(wèn)題是所有大型項(xiàng)目都共用的問(wèn)題,在大多數(shù)團(tuán)隊(duì)中往往也不認(rèn)為溝通是個(gè)問(wèn)題。但我還是想請(qǐng)讀者認(rèn)真對(duì)待溝通,比如郵件。郵件可以回復(fù)的慢,但請(qǐng)回復(fù)郵件。當(dāng)我在一個(gè)連發(fā)出的郵件都沒(méi)人回復(fù)的團(tuán)隊(duì)中工作時(shí),除了無(wú)法解決問(wèn)題,讓我感受到的只有無(wú)奈以及冷漠。
  • 客戶(hù)是我們的朋友 把你的客戶(hù)當(dāng)成朋友,客戶(hù)是我們做重要的資源之一。在每個(gè)客戶(hù)背后往往隱藏著更多潛在的客戶(hù)。我們必須清楚,客戶(hù)作為非專(zhuān)業(yè)人士,其可能并不理解我們的工作,在項(xiàng)目執(zhí)行階段產(chǎn)生摩擦是難免的。但是,這些都不能成為我們遷怒客戶(hù)或故意在工作中放水的借口。即便是為了項(xiàng)目能成功收尾,我們也必須維護(hù)好與客戶(hù)的關(guān)系。
  • 不要超前設(shè)計(jì),不要項(xiàng)目鍍金 超前設(shè)計(jì)和項(xiàng)目鍍金都是不可取的,因?yàn)樗窃诶速M(fèi)資源。滿(mǎn)足需求以外的東西,不會(huì)對(duì)你的項(xiàng)目有任何好處,但是卻可能引人缺陷。
  • 總結(jié)經(jīng)驗(yàn)教訓(xùn) 必須對(duì)階段進(jìn)行經(jīng)驗(yàn)教訓(xùn)總結(jié),沒(méi)有什么比這些收獲更有價(jià)值。這樣文檔就是組織的資產(chǎn),是以后類(lèi)似項(xiàng)目的參考和依據(jù),并在持續(xù)優(yōu)化方面發(fā)揮更為重要的作用。
  • 不要讓會(huì)議和文檔拖了團(tuán)隊(duì)的后腿 “當(dāng)船快要沉的時(shí)候,我們需要的是一個(gè)發(fā)號(hào)施令的領(lǐng)袖,而不是開(kāi)會(huì)?!避浖?xiàng)目的核心問(wèn)題是降低復(fù)雜度,越是復(fù)雜的項(xiàng)目就越需要溝通,但別讓開(kāi)會(huì)拖了我們的后腿。沒(méi)有必要的會(huì)盡量少開(kāi)或不開(kāi),要常開(kāi)會(huì),開(kāi)小會(huì),每次會(huì)議就幾個(gè)相關(guān)干系人碰頭溝通下就可以了,沒(méi)有必要擴(kuò)大為全員參與。冗長(zhǎng)的討論應(yīng)該適時(shí)的終止,畢竟會(huì)議室上只能做出決策,而解決問(wèn)題還得在會(huì)下。所以我認(rèn)為應(yīng)該精簡(jiǎn)那些冗長(zhǎng)的會(huì)議,別然開(kāi)會(huì)成為我們的工作。此外,要時(shí)刻謹(jǐn)記客戶(hù)最終需要的是可以良好運(yùn)行的軟件產(chǎn)品而不是華麗的文檔。所以,文檔要恰到好處,寫(xiě)的再漂亮的文檔沒(méi)有完備的系統(tǒng)也不過(guò)是廢紙一堆,別丟了西瓜撿芝麻,可以正常工作的軟件才是我們的工作重心。
  • 核對(duì)表的你的好助手 就像飛機(jī)工程師在檢查飛機(jī)時(shí)使用核對(duì)表一樣,軟件項(xiàng)目也可以大量使用核對(duì)表。核對(duì)表可以幫助檢驗(yàn)文檔的質(zhì)量,降低缺陷數(shù)量,以及改進(jìn)項(xiàng)目管理。好的核對(duì)表,是你工作中的好助手。
  • 小范圍的受控好過(guò)大范圍的失控 要注意控制的粒度,事無(wú)巨細(xì)。根據(jù)項(xiàng)目規(guī)模,人員構(gòu)成,要采用不同的控制粒度。評(píng)估可控范圍,并不是控制越廣越好,控制不了就是失控。 對(duì)無(wú)暇顧及的地方授權(quán)別人管理是個(gè)可行的做法。 即便是小范圍是受控,也好過(guò)大范圍的失控。一個(gè)失控的項(xiàng)目,誰(shuí)也不知道其會(huì)走向何方。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多