關(guān)于我們

在線客服

幫助

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

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

項目計劃和質(zhì)量管理

2010-09-24 14:03  來源網(wǎng)絡(luò)  【  【打印】【我要糾錯】

  在可行性分析之后,項目計劃與質(zhì)量管理將貫穿需求分析、系統(tǒng)設(shè)計、程序設(shè)計、測試、維護(hù)等軟件工程環(huán)節(jié)。

  項目計劃是要提供一份合理的進(jìn)程表,讓所有開發(fā)人員任務(wù)明確、步調(diào)一致,最終共同準(zhǔn)時地完成項目。項目計劃是要付諸實施的,不象用嘴巴喊政治口號,可以很夸張。軟件的項目計劃重在“準(zhǔn)確”而非“快速”。

  提高質(zhì)量是軟件工程的主要目標(biāo)。但由于軟件開發(fā)是一種智力創(chuàng)作活動,很難象傳統(tǒng)工業(yè)那樣通過執(zhí)行嚴(yán)格的操作規(guī)范來保證軟件產(chǎn)品的質(zhì)量。世上最小心翼翼、最老實巴腳的程序員未必就能開發(fā)出高質(zhì)量的軟件來。程序員必須了解軟件質(zhì)量的方方面面(稱為質(zhì)量因素),如正確性、性能、易用性、靈活性、可復(fù)用性、可理解性等等,才能在進(jìn)行系統(tǒng)設(shè)計、程序設(shè)計時將高質(zhì)量內(nèi)建其中。軟件的高質(zhì)量并不是“管理”出來的,實質(zhì)上是設(shè)計出來的,質(zhì)量的管理只是一種預(yù)防和認(rèn)證的手段而已。

  1、項目計劃

  做項目計劃,如同給一個待出生的嬰兒寫傳記那樣困難。如果允許項目結(jié)束后再寫計劃,那就輕松多了,并且可以100%地準(zhǔn)確。

  歷史教訓(xùn)讓我們明白一個道理:如果一萬年以后才會有一條陽光大道通向共產(chǎn)主義,那么現(xiàn)在就不要忙著砸鍋煉鋼趕英超美,免得在跑步奔向共產(chǎn)主義時把自己累死餓死。在做軟件的項目計劃時,應(yīng)屏棄一切浮夸作風(fēng)。只有“知已知彼”才能做出合理的項目計劃。這里“知彼”是指要了解項目的規(guī)模、難度與時間限制。“知已”是指要了解有多少可用資源,如可調(diào)用的程序員有幾個?他們的水平如何?軟硬件設(shè)施如何?

  1.1知己知彼首先要了解項目的規(guī)模、難度與時間限制,才可以確定應(yīng)該投入多少人力、物力去做這個項目。在可行性分析階段就要考慮這個問題。但不幸的是,人們在陷入項目不能自撥之前總難以準(zhǔn)確地估計項目的規(guī)模與難度。這里經(jīng)驗起到了最重要的作用。

  項目的時間限制有兩類。第一類,項目應(yīng)該完成的日期寫在合同中,如果延期了,則開發(fā)方要作出相應(yīng)的賠償。第二類是開發(fā)自己的軟件產(chǎn)品,雖然只確定了該產(chǎn)品大致的發(fā)行日期并允許有延誤,但如果拖延太久則會失去商機造成損失。

  項目的資源分為三類:“人”、“可復(fù)用的軟構(gòu)件”和“軟硬件環(huán)境”。

  (1)人是最有價值的資源。項目計劃的制定者要確定開發(fā)人員的名單,要根據(jù)他們的專長進(jìn)行分工。

 。2)可復(fù)用的軟構(gòu)件是次有價值的資源。1.2.1節(jié)論述了復(fù)用軟構(gòu)件可提高軟件的質(zhì)量與生產(chǎn)率。軟構(gòu)件并非一定要用自己的,可以向?qū)I(yè)的軟件供應(yīng)商購買。

  (3)軟硬件環(huán)境雖然不是最重要的資源,卻是必需的資源。原則上軟硬件環(huán)境只要符合項目的開發(fā)要求即可。有些項目可能要用到特殊的設(shè)備,則要事先作好準(zhǔn)備,以免用時找不到而擔(dān)擱了進(jìn)程。

  1.2進(jìn)度安排有一位程序員忙著編寫程序,經(jīng)理問他還需要多久才能完成。

  “明天就可以完成。”程序員立即回答。

  “我想這是不切實際的,實話實說,到底還要多少時間?”經(jīng)理說。

  “我還想加進(jìn)一些新的功能,這需要花兩個星期。”程序員想了一會兒說。

  “即使這樣也期望過高了,只要你編完程序時告訴我一聲,我也就滿足了。”經(jīng)理說。

  幾年以后,經(jīng)理要退休了。在他去退休午餐會時,發(fā)現(xiàn)那位程序員正趴在機器旁睡覺:可憐的家伙整個晚上都在忙于編寫那個程序。[James1999]程序員也期望每天早晨能在7:00準(zhǔn)時起床,可老是一覺醒來就到中午了。項目落后于進(jìn)度表乃是家常便飯,不必大驚小怪。以下一些事件經(jīng)常會導(dǎo)致項目被延誤:

 。1)上級領(lǐng)導(dǎo)主管臆斷,制定了不現(xiàn)實的期限。項目經(jīng)理與程序員們被迫按照不合理的進(jìn)度表開展工作。

 。2)客戶的需求發(fā)生了變化,但沒有對進(jìn)度表作出相應(yīng)的修改。

  (3)低估了項目的規(guī)模與難度,導(dǎo)致投入的人力和物力不足。

 。4)并未預(yù)見到存在難以克服的技術(shù)障礙。

 。5)并未預(yù)見到開發(fā)人員會發(fā)生問題,如生病,辭職等等。

 。6)開發(fā)人員之間不能很好的交流、協(xié)作,導(dǎo)致各階段任務(wù)難以如期完成。

  所以寫進(jìn)程表不能象小學(xué)生寫決心書那樣充滿幻想。以下是一些有益的建議:

  (1)制定進(jìn)度表的人最好就是項目負(fù)責(zé)人,他最了解項目和開發(fā)人員。進(jìn)度表要經(jīng)過開發(fā)小組的討論,在得到大部數(shù)人的支持后才能實施。避免出現(xiàn)一廂情愿的局面。

  (2)進(jìn)度安排并不見得一定要符合邏輯順序。應(yīng)盡可能地先做技術(shù)難度高的事,后做難度低的事。也就是辛苦在前,輕松在后。

  小時候我對一位老先生吃飯很感興趣:他總是先把一大盒的米飯吃光了,然后再幸福地品嘗一小盒菜。父母告訴我這是中國的傳統(tǒng)美德,叫“先苦后甜”。從此我銘記在心,按此道理去學(xué)習(xí)和工作?扇缃裨陲埖昀铮藗兛偸窍劝巡顺酝炅,最后才吃點米飯。天哪,生活真是太復(fù)雜了,我究竟該“先吃飯”還是“先吃菜”?

 。3)開發(fā)一個大的軟件項目,應(yīng)該將進(jìn)度表分為若干個里程碑。一個里程碑之內(nèi)的多個任務(wù)可以同步進(jìn)行。程序員極容易沉迷于技術(shù),要么樂不思蜀,要么焦頭爛額。里程碑就象心靈的燈塔,使忙碌的人群不混亂,不迷失方向。

  (4)進(jìn)度表中必須留有緩沖時間,并將緩沖時間用到不確定的事情上。因為人們對即將要做的事情知之甚少,所以要留一些時間以防不測。Microsoft公司的一些開發(fā)小組甚至制定了“50%緩沖規(guī)則”[Cusumano1996]。對許多項目經(jīng)理而言,容忍進(jìn)度表中存在緩沖時間,不啻為觀念上的一個飛躍。

 。5)如果發(fā)現(xiàn)項目應(yīng)交付的期限非常不合理,就要跟領(lǐng)導(dǎo)或跟客戶據(jù)理力爭,請求放寬期限、調(diào)整進(jìn)度。當(dāng)客戶的需求發(fā)生變化時,就要對進(jìn)度表作出相應(yīng)的修正。不要覺得修改進(jìn)度表很困難很麻煩,不修改才會產(chǎn)生真真的麻煩。很多人認(rèn)為戒煙很困難,但馬克·吐溫曾說:“戒煙很容易,我一年就戒幾十次。”

  2、零缺陷質(zhì)量管理的觀念

  “零缺陷”質(zhì)量管理的觀念來源于一些國際上著名的硬件生產(chǎn)廠商。盡管軟件的開發(fā)與硬件生產(chǎn)有極大的差別,但我們?nèi)钥梢詮?ldquo;零缺陷”質(zhì)量管理中得到啟迪。“零缺陷”質(zhì)量管理至少有兩個核心內(nèi)容:一是高目標(biāo),二是可執(zhí)行的規(guī)范。

  2.1高目標(biāo)人在做一件事情時,由于存在很多不確定的因素,一般不可能100%地達(dá)到目標(biāo)。假設(shè)平常人做事能完成目標(biāo)的80%。如果某個人的目標(biāo)是100分,那么他最終成績可達(dá)80分。如果某個人的目標(biāo)只是60分,那么他最終成績只有48分。我們在考場上身經(jīng)百戰(zhàn),很清楚那些只想混及格的學(xué)生通常都不會及格,那些想得高分的學(xué)生也常為自己的失誤而捶胸頓足。

  做一個項目通常需要多個人的協(xié)作。假設(shè)項目的總質(zhì)量(最高為1)是十個開發(fā)人員的工作質(zhì)量之積。如果每個人的質(zhì)量目標(biāo)是0.95,那么十個人的累積質(zhì)量不會超過0.19。如果每個人的質(zhì)量目標(biāo)是0.9分,那么十個人的累積質(zhì)量不會超過0.03。只有每個人都做到1,項目總質(zhì)量才會是1.如果沒有高目標(biāo),人的墮落就很快。如果沒有“零缺陷”的質(zhì)量目標(biāo),也許缺陷就會成堆。

  2.2可執(zhí)行的規(guī)范實現(xiàn)100分顯然比實現(xiàn)80分要付出更多的努力。“零缺陷”質(zhì)量目標(biāo)不是隨心所欲提出來的,做得到才有意義。實現(xiàn)高目標(biāo)需要一套可執(zhí)行的規(guī)范來保證。

  50年代末,全國掀起了“浮夸風(fēng)”。為了實現(xiàn)畝產(chǎn)數(shù)萬斤推廣各種方法,害得全國鬧饑荒。想不到有數(shù)千年種糧經(jīng)驗的幾億中國農(nóng)民就這么整齊地栽倒了。

  好規(guī)范必須是本企業(yè)有能力執(zhí)行的。一個普通企業(yè)照搬一流企業(yè)的規(guī)范未必行得通。軟件工程的規(guī)范很容易從書籍中找到,但有了這些規(guī)范并不表明就能把軟件做好。國內(nèi)很多軟件公司根本沒有條件去執(zhí)行業(yè)界推薦的軟件工程規(guī)范。社會主義初級階段的“草”與發(fā)達(dá)資本主義國家的“苗”的確有不同的培育方式。

  軟件是如此的靈活,如果沒有規(guī)范來制約,就容易因無序的喜好而導(dǎo)致混沌;但規(guī)范如果太嚴(yán)密了,就會扼殺程序員生機勃勃的創(chuàng)造力。制定軟件規(guī)范是進(jìn)退兩難的事。程序員必須深入了解軟件多方面的質(zhì)量因素,把那些能提高軟件質(zhì)量因素的各種規(guī)范植入腦中,才能在各個實踐環(huán)節(jié)自然而然地把高質(zhì)量設(shè)計到軟件中。

  3、軟件質(zhì)量因素分類和武學(xué)分類

  3.1正確性與精確性

  正確性與精確性之所以排在質(zhì)量因素的第一位,是因為如果軟件運行不正確或者不精確,就會給用戶造成不便甚至造成損失。機器不會主動欺騙人,軟件運行不正確或者不精確一般都是人造成的。即使一個軟件能100%地按需求規(guī)格執(zhí)行,但是如果需求分析錯了,那么對客戶而言這個軟件也存在錯誤。即使需求分析完全符合客戶的要求,但是如果軟件沒有100%地按需求規(guī)格執(zhí)行,那么這個軟件也存在錯誤。開發(fā)一個大的軟件項目,程序員要為“正確”、“精確”四個字竭盡精力。

  與正確性、精確性相關(guān)的質(zhì)量因素是容錯性和可靠性。

  容錯性首先承認(rèn)軟件系統(tǒng)存在不正確與不精確的因素,為了防止?jié)撛诘牟徽_與不精確因素引發(fā)災(zāi)難,系統(tǒng)為此設(shè)計了安全措施。在一些高風(fēng)險的軟件系統(tǒng),如航空航天、武器、金融等系統(tǒng)中,容錯性設(shè)計非常重要。

  可靠性是指在一定的環(huán)境下,在給定的時間內(nèi),系統(tǒng)不發(fā)生故障的概率。可靠性本來是硬件領(lǐng)域的術(shù)語。比如某個電子設(shè)備,一開始工作很正常,但由于工作中器件的物理性質(zhì)會發(fā)生變化(如發(fā)熱),慢慢地系統(tǒng)就會失常。所以一個設(shè)計完全正確的硬件系統(tǒng),在工作中未必就是可靠的。軟件在運行時不會發(fā)生物理性質(zhì)的變化,人們常以為如果軟件的某個功能是正確的,那么它一輩子都是正確的?墒俏覀儫o法對軟件進(jìn)行徹底地測試,無法根除軟件中潛在的錯誤。平時軟件運行得好好的,說不準(zhǔn)哪一天就不正常了,如“2000年”問題。因此把可靠性引入軟件領(lǐng)域是有意義的。我曾買了一本關(guān)于軟件可靠性的著作,此書充滿了數(shù)學(xué)公式。我發(fā)現(xiàn)以我目前的學(xué)歷實在難以看懂書上講了些什么。請寬恕我的愚昧,我把此書給“供”起來,沒敢用筆畫一處記號。

  3.2性能與效率

  用戶都希望軟件的運行速度高些(高性能),并且占用資源少些(高效率)。舊社會地主就是這么對待長工的:干活要快點,吃得要少點。程序員可以通過優(yōu)化算法、數(shù)據(jù)結(jié)構(gòu)和代碼組織來提高軟件系統(tǒng)的性能與效率。優(yōu)化的關(guān)鍵工作是找出限制性能與效率的“瓶頸”,不要在無關(guān)痛癢的地方瞎忙乎。如果你想職稱升得快,光靠增加課時能頂屁用;你就該一年寫它幾十篇文章,爭取破格升教授。

  3.3易用性

  易用性是指用戶感覺使用軟件的難易程度。用戶可能是操作軟件的最終用戶,也可能是那些要使用源代碼的程序員,F(xiàn)代人的生活節(jié)奏快,干啥事都想圖個方便。所以把易用性作為重要的質(zhì)量因素?zé)o可非議。

  導(dǎo)致軟件易用性差的根本原因是開發(fā)人員犯了“錯位”的毛。核詾橹灰约河闷饋矸奖,用戶也一定會滿意。俗話說“王婆賣瓜,自賣自夸”。當(dāng)程序員向用戶展示軟件時,常會得意地講:“這個軟件非常好用,我操作給你看,……是很好用吧!”軟件的易用性要讓用戶來評價。當(dāng)用戶真的感到軟件很好用時,一股溫暖的感覺油然而生,于是就用“友好”來評價易用性。

  3.4可理解性與簡潔性

  可理解性表達(dá)了人們一種質(zhì)樸的愿望:我化錢買了它,總得讓我明白它是什么東西。我小時候的一個伙伴在讀中學(xué)時,就因無法理解電荷之分正負(fù),覺得很煩惱,便早早地綴學(xué)當(dāng)工人。

  可理解性也是對用戶而言的。開發(fā)人員只有在自己思路清晰時才可能寫出讓別人能理解的程序。編程時還要注意不可濫用技巧,應(yīng)該用自然的方式編程。我們的確不知道自己的得意之舉究竟是錦上添花,還是畫蛇添足。就象蒸出一籠饅頭,在上面插一朵鮮花,本想弄點詩情畫意,卻讓人誤以為那是一堆熱氣騰騰的牛糞。

  簡潔是一種美,不管是自己還是用戶都會有同感。在生活中,與簡潔對立的是“羅里羅嗦”。中國小說中最“婆婆媽媽”的男人是唐僧。有一項民意調(diào)查:如果世上只有唐僧、孫悟空、豬八戒和沙僧這四類男人,你要嫁給哪一類?請列出優(yōu)先級。調(diào)查結(jié)果表明,現(xiàn)代女性毫不例外地把唐僧?dāng)[在老末。

  一個原始的應(yīng)用問題可能很復(fù)雜,但高水平的人就能夠把軟件系統(tǒng)設(shè)計得很簡潔。如果軟件系統(tǒng)臃腫不堪,它遲早會出問題。簡潔是人們對工作“精益求精”的結(jié)果。

  廢話大師有句名言:“如果我令你過于輕松地明白了,那你一定是誤解了我說的話。”我最近有一種奇怪的體會:如果把學(xué)術(shù)文章寫得很簡潔,讓人很容易理解,它往往中不了;只有加上一些玄乎的東西,把本來簡單的弄成復(fù)雜的,才會增加投稿的命中率。事實上,我可以在5分鐘之內(nèi)說清楚三年來讀博所做的工作,根本用不著寫100多頁的博士論文。我是在臨近畢業(yè)時,才發(fā)覺自己完全不適合讀博士學(xué)位。將來工作后,我一定要好好編程,重新做人。

  3.5可復(fù)用性與可擴充性

  復(fù)用的一種方式是原封不動地使用現(xiàn)成的軟構(gòu)件,另一種方式是對現(xiàn)成的軟構(gòu)件進(jìn)行必要的擴充后再使用?蓮(fù)用性好的程序一般也具有良好的可擴充性。本書第六章將論述如何設(shè)計可復(fù)用、可擴充的C++程序。

  4、質(zhì)量檢查

  檢查是人們不信任自己和別人的一種行為。當(dāng)某些事情涉及到利益分配時,更需要有檢查活動來保證公平。估計即使進(jìn)入了共產(chǎn)主義社會,也少不了檢查。

  質(zhì)量檢查并不是要等到項目結(jié)束時才執(zhí)行唯一的一次,應(yīng)該在每個實踐環(huán)節(jié)都要執(zhí)行。對應(yīng)于進(jìn)度表,在每個里程碑到達(dá)時執(zhí)行質(zhì)量檢查比較合理。質(zhì)量檢查的內(nèi)容有二:一是作出評審,是合格還是不合格?能打多少分?二是作出建議,對質(zhì)量為什么好為什么差進(jìn)行分析,以便“改差為好”、“好上加好”。

  以下是人們經(jīng)常采用的軟件質(zhì)量檢查措施[Pressman1999]:

 。1)事先把檢查的主要內(nèi)容制成一張表,使檢查活動集中在主要問題上。

  (2)只評審工作,不評審開發(fā)者。評審的氣氛應(yīng)該是融洽的。存在的錯誤應(yīng)該被有禮貌地指出來,任何人的意見都不應(yīng)被阻撓或小看。

 。3)建立一個議事日程并遵循它。檢查過程不能放任自由,必須排照既定的方向和日程進(jìn)行。

 。4)不要化太多的時間爭論和辯駁。

 。5)說清楚問題所在,但不要企圖當(dāng)場解決所有問題。

  (6)對檢查人員進(jìn)行適當(dāng)?shù)?a title="培訓(xùn)" href="http://r9l2pg.cn/web/wangxiao/" target="_blank" >培訓(xùn)。

  ……

  做好檢查工作并不是件容易的事。自古以來“上有政策,下有對策”。虛假的質(zhì)量檢查還不如不檢查,下面講兩個故事作為解釋。

  故事一不久前我回到西北那所讀了六年多的大學(xué),驚奇地發(fā)現(xiàn)校園里房前屋后長滿了待收割的小麥!這所大學(xué)是從事電子科技的,種小麥干啥呀?朱總理曾講過:“目前國家糧食充足,再來三年自然災(zāi)害也不怕。”現(xiàn)在國泰民安,似乎用不著“深挖洞,廣積糧”。我素知學(xué)校提創(chuàng)勤儉節(jié)約、自力更生,但與其種小麥還不如種蔬菜呢。老同學(xué)告訴我,種小麥?zhǔn)菫榱藨?yīng)付“211”工程(為21世紀(jì)選拔100所重點大學(xué))的檢查團(tuán),因為“211”工程有較高的綠化指標(biāo)。偏偏檢查趕在冬天,那時的西北極難長草。我那所大學(xué)本來就人多地少,地上一長草馬上就會被談戀愛的學(xué)生給折磨死。一到冬天,整個校園就光禿禿一片。用小麥綠化校園可謂千古絕筆,檢查團(tuán)的那些權(quán)貴人士早已五谷不分,豈知所見的“草坪”乃是麥田。

  檢查工作要預(yù)防被檢查者弄虛作假。

  故事二我上高中時,班里舉行一次入團(tuán)評審。侯選人中有幾位是好學(xué)生,有幾位是壞學(xué)生。我心想“伸張正義”的機會到了,絕不能讓壞蛋混進(jìn)純潔的團(tuán)里?商熘缊F(tuán)支部書記是聰明絕頂還是蠢笨之極。他竟說:“班里還有一些同學(xué)沒有入團(tuán),現(xiàn)在他們申請入團(tuán),有不同意的請舉手。”我們都不知道該怎么辦了。書記接著說:“既然沒有人舉手反對,就表示全部同意,請大家鼓掌歡迎。”這次入團(tuán)評審不到一分鐘就結(jié)束了,從此后我再也沒想過爭取入黨。

  檢查工作要有科學(xué)的評審方式。

  5、小結(jié)

  不知為什么,國內(nèi)很多大的企業(yè)都喊著要進(jìn)世界500強。如果真的實現(xiàn)了,世界500強還不全被中國霸占了。軟件的項目計劃和質(zhì)量管理都不是用來喊叫的口號。做項目計劃時切忌“冒進(jìn)”,不要指望在項目陷入困境后靠增加人手來解救。軟件的高質(zhì)量主要是設(shè)計出來的,不是“管”出來的,更不能依賴質(zhì)量檢查。為此程序員要充分了解軟件的質(zhì)量因素,只有提高設(shè)計水平,才能開發(fā)出高質(zhì)量的軟件。

收藏分享:論壇
分享到:
相關(guān)新聞
  • 特色班
    4大班次+2-3套全真模擬題
    提升學(xué)習(xí)效果
  • 精品班
    4大班次+2-3套全真模擬題+1套預(yù)測試題
  • 實驗班
    3套全真模擬題+2套預(yù)測試題+考前沖關(guān)寶典
  • 定制班
    3套模擬題+3套預(yù)測題+考前沖關(guān)寶典+考前重點
  • 移動班
    以知識點為單元授課練習(xí),
    強化重點、難點、考點
版權(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)的,應(yīng)在授權(quán)范圍內(nèi)使用,且必須注明“來源:建設(shè)工程教育網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其法律責(zé)任。
  2、本網(wǎng)部分資料為網(wǎng)上搜集轉(zhuǎn)載,均盡力標(biāo)明作者和出處。對于本網(wǎng)刊載作品涉及版權(quán)等問題的,請作者與本網(wǎng)站聯(lián)系,本網(wǎng)站核實確認(rèn)后會盡快予以處理。
  本網(wǎng)轉(zhuǎn)載之作品,并不意味著認(rèn)同該作品的觀點或真實性。如其他媒體、網(wǎng)站或個人轉(zhuǎn)載使用,請與著作權(quán)人聯(lián)系,并自負(fù)法律責(zé)任。
  3、本網(wǎng)站歡迎積極投稿。