小時候我對一位老先生吃飯很感興趣:他總是先把一大盒的米飯吃光了,然后再幸福地品嘗一小盒菜。父母告訴我這是中國的傳統(tǒng)美德,叫“先苦后甜”。從此我銘記在心,按此道理去學習和工作?扇缃裨陲埖昀铮藗兛偸窍劝巡顺酝炅,后才吃點米飯。天哪,生活真是太復雜了,我究竟該“先吃飯” 還是“先吃菜”?
(3)開發(fā)一個大的軟件項目,應(yīng)該將進度表分為若干個里程碑。一個里程碑之內(nèi)的多個任務(wù)可以同步進行。程序員極容易沉迷于技術(shù),要么樂不思蜀,要么焦頭爛額。里程碑象心靈的燈塔,使忙碌的人群不混亂,不迷失方向。
(4)進度表中必須留有緩沖時間,并將緩沖時間用到不確定的事情上。因為人們對即將要做的事情知之甚少,所以要留一些時間以防不測。Microsoft公司的一些開發(fā)小組甚至制定了“50% 緩沖規(guī)則”[Cusumano 1996]。對許多項目經(jīng)理而言,容忍進度表中存在緩沖時間,不啻為觀念上的一個飛躍。
(5)如果發(fā)現(xiàn)項目應(yīng)交付的期限非常不合理,要跟領(lǐng)導或跟客戶據(jù)理力爭,請求放寬期限、調(diào)整進度。當客戶的需求發(fā)生變化時,要對進度表作出相應(yīng)的修正。不要覺得修改進度表很困難很麻煩,不修改才會產(chǎn)生真真的麻煩。很多人認為戒煙很困難,但馬克·吐溫曾說:“戒煙很容易,我一年戒幾十次。”
2、 零缺陷質(zhì)量管理的觀念
“零缺陷”質(zhì)量管理的觀念來源于一些國際上的硬件生產(chǎn)廠商。盡管軟件的開發(fā)與硬件生產(chǎn)有極大的差別,但我們?nèi)钥梢詮?ldquo;零缺陷”質(zhì)量管理中得到啟迪。“零缺陷”質(zhì)量管理至少有兩個核心內(nèi)容:一是高目標,二是可執(zhí)行的規(guī)范。
2.1 高目標
人在做一件事情時,由于存在很多不確定的因素,一般不可能 地達到目標。假設(shè)平常人做事能完成目標的80%。如果某個人的目標是100分,那么他終成績可達80分。如果某個人的目標只是60分,那么他終成績只有48分。我們在考場上身經(jīng)百戰(zhàn),很清楚那些只想混及格的學生通常都不會及格,那些想得高分的學生也常為自己的失誤而捶胸頓足。
做一個項目通常需要多個人的協(xié)作。假設(shè)項目的總質(zhì)量(高為1)是十個開發(fā)人員的工作質(zhì)量之積。如果每個人的質(zhì)量目標是0.95,那么十個人的累積質(zhì)量不會超過0.19。如果每個人的質(zhì)量目標是0.9分,那么十個人的累積質(zhì)量不會超過0.03。只有每個人都做到1,項目總質(zhì)量才會是1。
如果沒有高目標,人的墮落很快。如果沒有“零缺陷”的質(zhì)量目標,也許缺陷會成堆。
2.2 可執(zhí)行的規(guī)范
實現(xiàn)100分顯然比實現(xiàn)80分要付出更多的努力。“零缺陷”質(zhì)量目標不是隨心所欲提出來的,做得到才有意義。實現(xiàn)高目標需要一套可執(zhí)行的規(guī)范來保證。
50年代末,掀起了“浮夸風”。為了實現(xiàn)畝產(chǎn)數(shù)萬斤推廣各種方法,害得鬧饑荒。想不到有數(shù)千年種糧經(jīng)驗的幾億中國農(nóng)民這么整齊地栽倒了。
好規(guī)范必須是本企業(yè)有能力執(zhí)行的。一個普通企業(yè)照搬企業(yè)的規(guī)范未必行得通。軟件工程的規(guī)范很容易從書籍中找到,但有了這些規(guī)范并不表明能把軟件做好。國內(nèi)很多軟件公司根本沒有條件去執(zhí)行業(yè)界推薦的軟件工程規(guī)范。社會主義初級階段的“草”與發(fā)達資本主義的“苗”的確有不同的培育方式。
軟件是如此的靈活,如果沒有規(guī)范來制約,容易因無序的喜好而導致混沌;但規(guī)范如果太嚴密了,會扼殺程序員生機勃勃的創(chuàng)造力。制定軟件規(guī)范是進退兩難的事。程序員必須深入了解軟件多方面的質(zhì)量因素,把那些能提高軟件質(zhì)量因素的各種規(guī)范植入腦中,才能在各個實踐環(huán)節(jié)自然而然地把高質(zhì)量設(shè)計到軟件中。