你做不做? 做什麼啊——軟體工程 (轉)

worldblog發表於2007-12-10
你做不做? 做什麼啊——軟體工程 (轉)[@more@]  曾經泛泛地看過本叫《程式碼大全》的書,其他都沒記住,只記得講到一個類比的問題,即“的開發”與 哪種人們比較熟知的事務有可比性,以便不熟悉的人(各級管理層,客戶等)可以得到個大致合適概念。很多人都把“軟體開發”類比成“房屋的建築”,我也很同意這個類比。
  在上海有很多在建的高樓大廈,路過那些工地,我常常會想:即便是100萬行規模的軟體開發,難道就比造一幢10來層的樓難度更大嗎? 雖然也有劣質的樓房,但我武斷地認為,豆腐渣的軟體要比豆腐渣的樓多得多。我常自問這是為什麼。
  我不知道,是否有剛入行2年的建築工去主持廠房的設計建造。 但我知道常有
剛入行2年1年甚至幾個月的人在擔當軟體專案的負責人。 
  我不知道,是否有心急的建築商看不得裝置的閒置,而在沒有設計圖紙的情況,就讓施工隊開始建築“商務樓DEMO”。 但我常看見,管理精英們看不得資源的閒置,而在無開發設計的情況下,開發團隊先做個“商務軟體DEMO”出來。
  我不知道,是否常會有客戶要求把3年的蓋樓工程期,到1年(新聞聯播中到是常有)。但我常聽到管理人員心急如焚地要求把3個月的開發時間,壓縮到1個月。
  昨晚在看《非員》第9期, Alan Cer的訪談裡面有段對話(翻譯稿):
  smilemac: 例如市場壓力、預算、管理水平等等,這些都可能造成專案時間限制,許 多產品是它們之間相互妥協的結果。 
  alancooper: “...市場壓力,預算...”,所有的都是管理者掩飾他對程式不瞭解的藉口。
  看似偏激,但我覺得說得是一語中的。現實這東西就是個樣子,無論你如何臆想它,或者忽視它,現實始終還在那裡。而真正要面對現實是很不容易的,因為現實總是殘酷的。而比現實更殘酷的是,管理層往往都很激情洋溢地盤算著商業計劃,他們信奉的是“跳一下才能完成的計劃才是好計劃”,至於你原來能達到哪裡他卻並不清楚。而開發人員幾乎都是天生的樂觀主義者,對於他們來說沒有“Mission Impossible”。任務越是困難越含糊不清,越能激發他們克服困難的熱情和所謂的創造自由度。這有點象我們這些單身漢在燈光昏暗的酒吧裡看到一位線條突兀,衣著似露未露的性感MM,所激發得某種生理反應。而當一個相信能算命的客戶+ 激情洋溢的管理人員+ 一個(群)樂觀向上的開發人員,基本上大概一幕悲劇的演員就全齊了,然後大家一起想象著專案會自然出落得麗質天成,結果多半是“為什麼受傷的總是我"。
  抱怨了半天,又要提到軟體工程了。目前有這樣一種情況,
每次專案挫折總結的時候,上上下下都會說“這是因為沒有軟體工程的原因”。
這時候“軟體工程”就象是個大垃圾袋,任何令人討厭的東西都可以往裡扔。至於什麼是軟體工程,很多數人只怕只有個模糊的概念。多半自己也分不清“軟體工程”和“幸福生活”之間有什麼區別。不少人站出來說:“軟體工程就是要把開發中的一切文件化可交流可維護,而不要搞心口相傳。” “要出一些什麼樣的文件呢?” 有不少人沉默了,仍然有一些勇敢的人站出來列出一串名列表,或者拿出“CMM”或“RUP”的文件模板來。“那怎麼才能填寫好這些文件,並使這些文件的資料足以做為進一步開發的基石呢?"。“...”一片寂靜。角落裡有幾個說到“找個諮詢公司來做方案,或找個行業專家”。也許有人有這樣的好運氣,但對大多數專案來說,這幾乎是要老鼠給貓去掛個鈴鐺,把一個問題偷換成另一個問題。
  為什麼一幢幢樓能建起來,而一個個軟體專案在泥潭中掙扎下去。我只能說與建築和其他產業相比,軟體開發幾乎沒有工程。因為在如此短暫產業的時間裡,還沒有足夠多的失敗與教訓來讓大家摸索出一條被廣為接受的工程方法來。請注意,總結出一是回事情,被大家知道是一回事,而被大家採納執行就是完全不同的別的事情了。到幼兒園走一圈,我們可能知道健康的孩子是什麼樣,但我們卻不知道怎麼才能生出並養育個健康的孩子來。知道目的地,和知道如何到達目的地,也是完全不同的兩件事情,雖然他們之間有關係。說到這裡,突然想起那些信誓旦旦要在多久時間裡,透過CMM X 級的老總們,即便他們生過孩子,只怕由於工作繁忙也沒養過孩子。
  出路何在呢?只有去試驗、去試錯,土法上馬。代價是什麼?代價就是痛苦與失敗。軟體工程方面的試驗是困難的。一個人一臺機器1、2個小時就可以試出一個的使用來,而4、5個人1、2個月也未見得,試出一個工程方法的優劣來。而在一個新軟體工程方面的匯入在初期,引起開發混亂度的增加也是很常見的,誰也無法保證某個別人行之有效的方法就一定適合你的專案團隊。況且,也很少有哪個老闆願意給你個專案試著玩。難歸難,日子還要過。有前輩說了:痛苦的經歷是改善流程的源動力。
這裡我推薦兩本書,管不管用就看各人的造化了。
1.《軟體需求》機械工業,書很薄,有操作性。薄書就能說清的事,為什麼要去看厚書呢?
2.《軟體創新之路》電子工業 . 程式寫多的人應該看看。想以MS為模仿的人也該看看。
也許我們知道未來是怎麼樣,但不知道怎麼樣能活到未來。 
  鼠目寸光,掛一漏萬,見笑見笑。
   

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991047/,如需轉載,請註明出處,否則將追究法律責任。

相關文章