關(guān)于我們

在線客服

幫助

24小時客服:010-82326699 400-810-5999

建設(shè)工程教育網(wǎng) > 建筑文苑 > 工程管理 > 正文

誰動了項目質(zhì)量

2010-09-25 11:36  來源網(wǎng)絡  【  【打印】【我要糾錯】

  大家知道,項目的時間、成本及質(zhì)量的三大要素是缺一不可。這三方面的符合程度直接決定了項目的成敗與否。但事實上,想達到一個完美的等邊三角形幾乎是不可能完成的任務。這次的項目就讓質(zhì)量這個角短了很多,質(zhì)量的問題暴露地很明顯。所以,接下來,我就從項目的流程角度出發(fā),一步步地分析到底是哪里出了質(zhì)量問題。 

  又一個項目結(jié)束了,終于閑出空來寫些東西。有了以前的經(jīng)驗教訓,這次在做項目的時候,我對時間的控制很關(guān)注,最后也基本上達到了計劃的要求。但最終交付產(chǎn)品的質(zhì)量卻讓我不太滿意:客戶在做接受測試的時候發(fā)現(xiàn)了很多的問題,而且在我們進行修改的同時,又有BUG源源不斷的報過來。甚至把更新的版本發(fā)給客戶以后,還會發(fā)現(xiàn)不少問題,給客戶留下了很不professional的印象。為什么問題總是要到項目快結(jié)束的時候才會出現(xiàn)呢?軟件的質(zhì)量為何不好?究竟是誰動了項目的質(zhì)量?

  1、分析階段

  項目的開始階段,也是質(zhì)量控制的開始。在這個階段中,主要的工作是從客戶方獲得足夠多的項目需求,并準確地記錄在案,而且要使得項目組的成員對于需求足夠得了解。先說說這個項目的基本情況:一個信息管理系統(tǒng),而且是在原來的版本上進行的功能增加。項目組的成員,除了我以前參加了前一個版本的開發(fā),其它的人員都不了解這個項目。就是這樣的一個項目,在開始階段,我先是安排了組員對以前版本的需求文檔進行了閱讀,并安裝使用了軟件。隨后對新的需求進行了研究,分析了它們對于原有系統(tǒng)的影響。由于是在舊有系統(tǒng)的文檔進行增加,所以加入的新內(nèi)容并不是很多,需求文檔很快就完成了。所謂的分析階段的里程碑也就結(jié)束了。

  在需求階段"順利"結(jié)束的同時,問題也隨之留下來,并對后面的階段起到了"乘數(shù)效應"――影響變得越來越大:

  A.對舊系統(tǒng)的理解不足由于開發(fā)人員沒有參與過上一個版本的開發(fā)工作,他們對于舊系統(tǒng)并不了解.雖然在閱讀了以前的需求文檔以及使用了軟件之后,大概對系統(tǒng)的功能有了一個初步的認識.但是對于系統(tǒng)中出現(xiàn)的各種邏輯關(guān)系并沒有深入了解下去.作為項目經(jīng)理,在這項工作中,失誤之處在于任務的結(jié)果(即輸出)沒有事先定義清楚,從而也就導致無法確認目標是否已經(jīng)達到,再加上需求文檔描述的也不是十分清晰。最后,只是在開發(fā)人員覺得已經(jīng)理解該系統(tǒng)的基本上,進行了下一步的工作.沒有進行進一步的確認工作,不知道組員進行舊系統(tǒng)已經(jīng)了解到了什么樣的程度。這個問題的結(jié)果,就是直接導致了后期的開發(fā)過程中,由于對于原先系統(tǒng)的邏輯關(guān)系不是很清楚。對于舊代碼理解和新代碼編寫進行地不是很順利。

  B.對新需求的分析不夠這還是個老問題,但又不是一個問題.說它是個老問題,因為分析需求要求考慮細致全面,并且能引導客戶,啟發(fā)客戶提供更有價值的信息。事實上,需求分析我們做的算是很盡力了,同時客戶把需求一條條的列出來給我們,相對來說需求已經(jīng)很清楚了。我們在接到這些需求后,不僅研究了新功能,還把他們對于舊系統(tǒng)的影響都做了分析。但還是有些問題沒有能在需求文檔中反映出來,后面的影響也是可想而知的了。我以前的文章中才曾提到過相關(guān)的問題,在這里就不再重復了。不過,從另一個角度來看,它又不是一個問題。為什么這么說呢,因為需求實在不是能夠在分析階段就能完全理解透徹的,甚至有的需求客戶也模模糊糊,直到交付以后才提出了改動的要求。軟件開發(fā)經(jīng)過這么多年的發(fā)展,大家已經(jīng)認識到了一點:需求是變化的。要達到能夠擁抱變化的要求,我們要對開發(fā)方法進行改進,相關(guān)的問題我在后面也會提到。

  需求分析階段出現(xiàn)的問題,解決的可操作性不是很大,更多的是從思想或經(jīng)驗上解決,而后面幾個階段出現(xiàn)的問題都相對具體一些。

  2、設(shè)計階段

  設(shè)計階段的問題相對比較明顯――結(jié)構(gòu)設(shè)計不合理,或者說還不夠。一個傳統(tǒng)的C/S結(jié)構(gòu)的系統(tǒng),基本結(jié)構(gòu)我們采用了經(jīng)典的三層模型來劃分系統(tǒng)。由于是在舊有系統(tǒng)上的改進,我們在盡量不改變原有系統(tǒng)的基礎(chǔ)上添加新的功能。

  主要的問題可能就是體現(xiàn)在沒有對舊系統(tǒng)進行改進。舊系統(tǒng)本身有一些復雜的功能,邏輯關(guān)系也比較復雜,耦合度非常高。所以,在新需求來臨的時候,我們的第一反應就是盡量不去動原來的設(shè)計與代碼,保證原有系統(tǒng)功能不會發(fā)生變化。這一點就暴露出了我們沒有去擁抱變化的決心與膽量。雖然舊系統(tǒng)很復雜,但是我們不能去故意回避它。對于舊系統(tǒng)中設(shè)計的不合理的地方,應該主動大膽的去進行重構(gòu)。其實重構(gòu)的作用就是對不合理結(jié)構(gòu)的進行改進,設(shè)計模式更是在設(shè)計結(jié)構(gòu)的變化改進中才能體現(xiàn)它的價值。而這些東西,在我們的項目中都沒有應用.這可能跟我們的保守心理有關(guān):只要不出問題,我們就不去動它,哪怕結(jié)構(gòu)是多么的錯綜復雜。這種消極的觀念在當今的充滿變化的世界中是不太有前途的。項目經(jīng)理要有足夠的決心去做,同時,也不要擔心去變化。當然,可能有人會說,時間緊怎么辦,其實這種付出對于項目的整體是只有好處沒有壞處的,因為結(jié)構(gòu)合理會讓開發(fā)人員會更少的時間去理解代碼,減少代碼開發(fā)的復雜度,提高代碼編寫的質(zhì)量。唯一需要考慮的就是如果改動的話,如何來保證這種變化對原有系統(tǒng)的功能不產(chǎn)生影響。這就需要有更多的測試,最好是單元測試來保證,這就是下面會談到的問題。

  3、編碼階段

  編碼主要還是受了設(shè)計的限制,我們的主要工作就只是在原有的結(jié)構(gòu)上添加一些類與方法,以及對原有的代碼進行修改。前面也提到了,我們采用了比較保守的作法,沒有對代碼進行重構(gòu),放任這種高耦合的代碼存在,導致我們在編碼過程中花費了不少精力和時間去理解它們,并在其中加上一兩條更加加深耦合度的代碼。其實到了編碼階段,很多問題都糾纏到了一起,已經(jīng)分不清因果了。比較說單元測試,首先我需要承認的一點就是沒有足夠的決心去做充分的單元測試,思想上也沒有做好充分的準備。除去主觀的因素之外,還有一點就是設(shè)計的結(jié)構(gòu)不合理,很多的邏輯被處理在表示層中,數(shù)據(jù)處理則被加到了邏輯層中。沒有劃分出更多的接口供單元測試來驗證。但反過來說,沒有單元測試用例的支持,也降低了我們想要進行重構(gòu)的決心。除了上述的問題之外,還有一些細節(jié)的地方,如硬編碼,命名規(guī)則等都在一定程度上對代碼的質(zhì)量產(chǎn)生了影響。

  改進的辦法,一是從主觀上接受變化的現(xiàn)實,主動的對代碼進行改動。單元測試一定要進行,最好結(jié)合統(tǒng)計覆蓋率的工具一并進行,這樣對于每個接口,都保證有充分多的測試用例來跑完盡可能多的路徑。在項目的質(zhì)量管理上面,要求還需要更加嚴格一些,一定要按照規(guī)范來進行編碼。

  4、測試階段

  代碼完成之后,測試的工作也隨之展開。但是由于成本的原因,我們并沒有再加入專業(yè)的測試人員來進行,而只是用開發(fā)人員自己來進行系統(tǒng)測試,讓開發(fā)人員互相測試別人實現(xiàn)的功能。由于開發(fā)人員與測試人員所需的專注點不同,造成了開發(fā)人員很多問題在測試中沒有被發(fā)現(xiàn),缺乏測試的經(jīng)驗。從另一個方面說,是開發(fā)人員不能夠及時的轉(zhuǎn)換自己的角色,而是還把自己定位在開發(fā)人員上面,更加關(guān)注的問題出在什么地方并立刻去解決它,而不是設(shè)法去發(fā)現(xiàn)隱藏的Bug。當然,還有一些細節(jié)的地方,比如說測試都應該是開發(fā)人員發(fā)布一個安裝包,然后單獨進行測試,但有的時候為了圖省事,有的功能在調(diào)試狀態(tài)下發(fā)現(xiàn)通過了,在安裝包中就沒有再驗證,有時也會出現(xiàn)意想不到的情況發(fā)生。

  大家可以看到,軟件的質(zhì)量可能就是被這一步步的失誤,錯誤,粗心等等影響了。這些問題都是在項目管理中暴露出來的,可以說是由于項目經(jīng)理對于質(zhì)量的要求還不高,有的時候為了片面追求成本與時間而忽視了質(zhì)量,從而造成了質(zhì)量的下降。算是個總結(jié)和教訓吧,也希望大家能夠說出你的想法與意見,多多交流,共同進步。

收藏分享:論壇
分享到:
相關(guān)新聞
  • 特色班
    4大班次+2-3套全真模擬題
    提升學習效果
  • 精品班
    4大班次+2-3套全真模擬題+1套預測試題
  • 實驗班
    3套全真模擬題+2套預測試題+考前沖關(guān)寶典
  • 定制班
    3套模擬題+3套預測題+考前沖關(guān)寶典+考前重點
  • 移動班
    以知識點為單元授課練習,
    強化重點、難點、考點
版權(quán)聲明

  1、凡本網(wǎng)注明“來源:建設(shè)工程教育網(wǎng)”的所有作品,版權(quán)均屬建設(shè)工程教育網(wǎng)所有,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、鏈接、轉(zhuǎn)貼或以其他方式使用;已經(jīng)本網(wǎng)授權(quán)的,應在授權(quán)范圍內(nèi)使用,且必須注明“來源:建設(shè)工程教育網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其法律責任。
  2、本網(wǎng)部分資料為網(wǎng)上搜集轉(zhuǎn)載,均盡力標明作者和出處。對于本網(wǎng)刊載作品涉及版權(quán)等問題的,請作者與本網(wǎng)站聯(lián)系,本網(wǎng)站核實確認后會盡快予以處理。
  本網(wǎng)轉(zhuǎn)載之作品,并不意味著認同該作品的觀點或真實性。如其他媒體、網(wǎng)站或個人轉(zhuǎn)載使用,請與著作權(quán)人聯(lián)系,并自負法律責任。
  3、本網(wǎng)站歡迎積極投稿。