您的位置:軟件測試 > 軟件項(xiàng)目管理 > 風(fēng)險(xiǎn)管理 >
軟件項(xiàng)目“免坑”指南
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/7/30 15:21:47 ] 推薦標(biāo)簽:

二、誰在造坑?

軟件項(xiàng)目涉眾眾多,造坑的多為項(xiàng)目實(shí)施團(tuán)隊(duì)內(nèi)部,而究其原因也是多方面的,但是始終離不了項(xiàng)目的四個(gè)維度——時(shí)間、范圍、成本、質(zhì)量。很多時(shí)候客戶并不具備軟件項(xiàng)目的實(shí)施經(jīng)驗(yàn),而實(shí)施團(tuán)隊(duì)為了迎合客戶意愿,也會多多少少的在這四了維度上做文章。資源、時(shí)間不足,輕質(zhì)量重功能,往往成為造坑的契機(jī)。所以,不用懷疑,造坑的往往是我們自己。很難理解,真正挖出大坑的人,后也是填坑的人。一個(gè)人很容易被外部事務(wù)所左右,如“同假的多了,真的到成假的了一樣”,多數(shù)人不愿意在一個(gè)新環(huán)境中表現(xiàn)得特立獨(dú)行。但也有老的程序員對我說過:“當(dāng)別人做錯(cuò)了,你不要跟著去做!”所以,我認(rèn)為工作是工作,不需要我們在其中融合多少興趣,也不要求我們有過多的付出,但對于工作的成果則要求我們認(rèn)真的對待。俗話說:“拿多少錢,辦多少事!”如果多少有些團(tuán)隊(duì)意識,能夠?qū)ψ约旱墓ぷ髫?fù)責(zé),那至少在意識上,我們能給自己少造些坑。

三、如何免坑?

一)清除盲區(qū)

以下觀點(diǎn),僅是我對軟件項(xiàng)目中一些錯(cuò)誤認(rèn)識的歸納:

寫出能用的程序行啦!我們應(yīng)該首先清楚我們做的是什么,一個(gè)成熟的團(tuán)隊(duì)產(chǎn)出的可交付成果應(yīng)該包括軟件編程產(chǎn)品,相關(guān)文檔,項(xiàng)目實(shí)施過程中的經(jīng)驗(yàn)教訓(xùn)已經(jīng)其它一些非形式的成果(培訓(xùn))。這里,我們必須清楚的認(rèn)識到,我們所開發(fā)是是編程產(chǎn)品,而不是我們個(gè)人的技術(shù)實(shí)踐或大學(xué)的畢設(shè)。對于編程產(chǎn)品,我們必須認(rèn)識到,其是產(chǎn)品級別的,必須保證質(zhì)量,必須提高用戶體驗(yàn),必須考慮系統(tǒng)的諸多特性或維度。這一過程遠(yuǎn)比我們自己寫個(gè)程序要復(fù)雜的多。設(shè)計(jì)需要不斷地進(jìn)行迭代;開發(fā)人員需要遵守嚴(yán)苛的規(guī)范,編寫大量的注釋和大量的異常處理;測試人員需要不斷地進(jìn)行各種重復(fù)測試,但是正是這種全局的規(guī)范,全體團(tuán)隊(duì)的不懈努力,才保證了我們的編程產(chǎn)物可以稱之為產(chǎn)品。所以,一定要明確,我們要完成的是一個(gè)產(chǎn)品,而不是一個(gè)畢業(yè)設(shè)計(jì),它不是一個(gè)人的技術(shù)實(shí)踐,而是整個(gè)團(tuán)隊(duì)傾注精力去完成的佳成果。我們可以輕松的實(shí)現(xiàn)客戶的某些需求,但需求背后的某些東西,需要我們認(rèn)真對待,比如安全性和性能等。實(shí)現(xiàn)功能的程序誰都會寫,而寫出高質(zhì)量的程序的才是真正的藝術(shù)。

盡快開始編碼吧!軟件構(gòu)件是一個(gè)精心設(shè)計(jì)的過程,其前期準(zhǔn)備十分重要。在后期修復(fù)缺陷的成本要遠(yuǎn)遠(yuǎn)高于前期。因此,在項(xiàng)目執(zhí)行前,前期的規(guī)化十分必要。在前期每發(fā)現(xiàn)一個(gè)缺陷,都會為后期節(jié)省大量的成本。

需求怎么變了!沒有不變的需求。

進(jìn)度落后了招人唄!這是種典型的錯(cuò)誤認(rèn)識,《人月神話》中已經(jīng)說明的很清楚了——往一個(gè)進(jìn)度落后的項(xiàng)目中注入資源,只會使進(jìn)度進(jìn)一步落后。雖然,這本著作成為PM必讀之作,其思想也被業(yè)界所廣泛認(rèn)可,但是,還是會有很多管理者單純的認(rèn)為,通過注入資源能解決問題。對于這些人,只能讓實(shí)踐來檢驗(yàn)真理了。

軟件質(zhì)量保證是測試的工作!這是一種逃避責(zé)任的說辭。如果把代碼質(zhì)量比喻為減肥,那么測試無疑是一個(gè)磅秤,減肥工作還是要有開發(fā)人員來完成。所以,不要將代碼質(zhì)量都寄希望于測試工作上。即使是大規(guī)模的用戶測試,其錯(cuò)誤檢出率也不足五成。而真正挑起代碼質(zhì)量重?fù)?dān)的是代碼審查。

程序員你8小時(shí)寫了這么點(diǎn)代碼?讓開發(fā)人員將全部時(shí)間都花在編碼上是不可能的。開發(fā)人員需要時(shí)間預(yù)讀文檔,需要與相關(guān)干系人進(jìn)行溝通,需要花時(shí)間來搜索資源。此外,可能還需要編寫文檔,參加會議,培訓(xùn)以及處理個(gè)人事務(wù)等等。這些時(shí)間都會無情的奪走編碼的時(shí)間。程序員大約有近似20%的時(shí)間甚至更多會用在與編碼無關(guān)的事情上(不算上班或聊QQ),所以不要錯(cuò)誤的以為每個(gè)程序員每天能寫8小時(shí)的程序。

你寫了這么多行代碼真有效率!編碼不是在掃地,比誰掃的面積大。不能單純用行數(shù)來評價(jià)開發(fā)人員的工作量。評判的標(biāo)準(zhǔn)應(yīng)該結(jié)合模塊的復(fù)雜度,編碼的缺陷檢出量以及終交付時(shí)可用代碼的比例(實(shí)踐表明,我們報(bào)廢了大量的無用代碼)。

他把自己100多個(gè)BUG都改了,我們得在組里表揚(yáng)下他!在我看來這樣的領(lǐng)導(dǎo)不跟也罷,這是讓人相當(dāng)無語的行為。好的開發(fā)者在提交測試前,覺得會對自己的代碼進(jìn)行走查和調(diào)試,甚至使用單元測試工具,因此其代碼的缺陷檢出量很小。這樣的程序員,才值得被表揚(yáng)。而那個(gè)改了自己100多個(gè)BUG的人,作為管理者應(yīng)該想想,流程哪里錯(cuò)了,需要進(jìn)行改進(jìn)。

設(shè)計(jì)我來定,開發(fā)你閉嘴!這樣的例子也不少,這種做法有一種聽起來非常合理的理由——保證項(xiàng)目架構(gòu)的概念完整性。其解釋為,如果將設(shè)計(jì)人員從開發(fā)人員剝離,那么可以將架構(gòu)的概念完整性統(tǒng)一,因?yàn)樵O(shè)計(jì)人員的數(shù)量比開發(fā)人員是數(shù)量要少的多,更容易統(tǒng)一認(rèn)識。而這樣做的項(xiàng)目組,也默認(rèn)地認(rèn)為設(shè)計(jì)組的技術(shù)實(shí)力要明顯高于開發(fā)組。他們往往從開發(fā)組中選擇的設(shè)計(jì)人員到設(shè)計(jì)組,但也會有走眼的時(shí)候。其一,硬手沒有被提拔。這時(shí)候多半是硬手對設(shè)計(jì)不滿,并對團(tuán)隊(duì)管理層產(chǎn)生質(zhì)疑,并想法設(shè)法進(jìn)行溝通。如果處理的好,可能硬手會被重視,如果溝通無門,那之后,可能會充斥著抱怨和不滿,以及人際關(guān)系的惡化。有些強(qiáng)硬些的可能會選擇拒絕不合理的設(shè)計(jì)或更為極端的是離職。走眼的另一種情況是,挑的人干不了設(shè)計(jì)。這樣往往是讓他鍛煉,而不是撤換(彼得原理——每個(gè)人都會被晉升到他不適合的崗位)。這郁悶到極點(diǎn)了,設(shè)計(jì)者將會與相應(yīng)的數(shù)名開發(fā)人員進(jìn)行一場曠日持久的暗戰(zhàn)。其中,已經(jīng)不只是個(gè)人的抱怨,甚至?xí)葑兂沙蓡T集體的士氣低落,并終促成小組的重組。我認(rèn)為,有必要將開發(fā)人員納入設(shè)計(jì)活動(dòng)。應(yīng)該參考開發(fā)人員的意見,其原因有三:其一,開發(fā)人員對實(shí)現(xiàn)相當(dāng)熟悉,往往發(fā)現(xiàn)設(shè)計(jì)中的不足;其二,通過授權(quán)開發(fā)者參與設(shè)計(jì),能讓其感受到認(rèn)同感,提升其參與項(xiàng)目的欲望,和責(zé)任心;其三,讓開發(fā)參與設(shè)計(jì),可以對設(shè)計(jì)人員進(jìn)行儲備,在需要時(shí)作為備選資源使用。

客戶(領(lǐng)導(dǎo))說必須完成,我也沒辦法!這是“領(lǐng)導(dǎo)一句話,勞動(dòng)人民跑斷腿!”這是非常典型的加班借口。軟件構(gòu)建過程如同耕種,你每次只處理它的一小部分,一點(diǎn)一點(diǎn)的加到整個(gè)系統(tǒng),使系統(tǒng)一點(diǎn)一點(diǎn)的“生長”。這也暗示了,工作應(yīng)該按部班,正如春種秋收一樣,各個(gè)環(huán)節(jié)有強(qiáng)硬的邏輯存在。所以,我們必須學(xué)會對不合理的要求說“不”。這里并不是說要拒絕客戶的需求,而是指應(yīng)該向客戶說明情況并提出相應(yīng)的備選方案以供參考。例如通過通過削減范圍來達(dá)到按時(shí)完工的目的。PM需要向客戶說明情況,并向其提供幾套可行的解決方案,以促成項(xiàng)目向良性發(fā)展。

我是領(lǐng)導(dǎo)我來排進(jìn)度!工作進(jìn)度的安排不能是領(lǐng)導(dǎo)的單方?jīng)Q策,而應(yīng)該參考做了解這項(xiàng)工作的人的意見。

系統(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)目才算真正意義上的完成。

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd