首頁
中文書目錄
原文書目錄
 站內快速搜尋
資源中心
Book Series
Special Interest













■好消息,歐萊禮書籍已重新鋪貨至各大書局及網路書店,歡迎讀者選購       ■歡迎各院校採用歐萊禮書籍,學校團購請洽校園服務團隊

[技術短文]

軟體工程的弔詭


長期以來,關於軟體工程有許多弔詭之處,透過本文章,我對五個弔詭的問題提出我的看法,希望也能因此解開你心中對軟體工程價值的疑問。

Q: 軟體工程到底有沒有用?

如果你上過軟體工程的課,你很可能會懷疑軟體工程有沒有用,如果你有這樣的懷疑,很可能是因為你「遇人不淑」。事實上我就是如此,大學時我原本有選修軟體工程的課,但是上不了幾次課我就退選了,因為老師教得奇差無比,加上老師本身不是研究軟體工程的(他根本就是研究硬體的),更沒有業界的實務經驗。沒理論基礎,沒實務經驗,沒教學熱誠,遇到這樣的教授我怎能不打退堂鼓。

但千萬不要讓這種教授斲喪了你對軟體工程的信念。軟體工程絕對是有用的,最佳的實例就在印度。你只消看看印度的軟體產業,如此講究軟體工程,而且開發軟體的成績如此輝煌,你就應該知道:軟體工程除了可以拿來發表論文幫助學生取得學位或幫助教授升等之外,也確實是可以幫助軟體工業的。

Q: 軟體工程對誰重要?

我們常常(特別是最近)會聽到一派言論比較反對軟體工程的說法,他們認為加強程式員的能力比實施軟體工程「更重要」。我不反對這樣的說法,但問題是對誰比較重要?我認為,軟體工程對組織(公司)比對個別的程式員更重要。程式設計技巧的加強、以及新技術的學習對程式員比較重要。採用軟體工程,短期內對程式員帶來的好處不多,甚至會為程式員帶來麻煩(被加諸許多限制)。

對於公司來說,實施軟體工程,除了可以因此掌握軟體的品質之外,更可以避免一些風險。即使目前的軟體開發團隊還算穩固,但是這些人未來可能會一個一個離職。沒有好好實施軟體工程的公司,在重要的軟體開發人員離職後,往往會讓軟體計畫嚴重延宕,甚至停擺(我們聽過也看過太多這樣的例子)。如果當初有實施軟體工程,就可以一切井然有序,可以不用花太多時間就讓接替的人繼續專案進度。

Q: 既然如此,程式員可以不要理會軟體工程?

既然程式員最重要的是加強程式能力,那麼程式員應該忽略軟體工程?當然不是。程式員是公司的一份子,對公司有利的事,也會間接對程式員有利。再者,程式員是無法當一輩子的,必須及早準備因應之道(請參見「軟體人員的生涯規劃」一文)。如果有心要在以後成為主管階層,最好能先對軟體工程和計畫管理的相關知識做好準備。對程式員來說,軟體工程又比計畫管理來得更急迫。

Q: 軟體工程對哪類型的計畫比較有用?

對於小型計畫來說,軟體工程不見得有太大的用途(但也不至於有害)。對於中大型計畫來說,如果不採行軟體工程,後果往往就會很嚴重,很可能會遭致一團混亂,導致計畫失敗。就算完成計畫,大概也是拼湊出來的,許多 bug 潛藏其中,軟體的實用性很低,而且無法維護。

Q: 那麼小型計畫不應該用軟體工程?

雖然使用軟體工程與否,對於小計畫的影響不大。但是我認為,即使是小型計畫,最好也要遵照軟體工程的程序來進行。透過小計畫來練習軟體工程,讓大家有機會熟悉軟體工程的運作,當在大計畫中使用軟體工程時,才不會手忙腳亂。一個公司如果沒有從小計畫開始實施軟體工程,就驟然在大計畫中實施軟體工程,那麼失敗的機會很高。而且第一次就失敗,往往會使得主管對於軟體工程的信心大打折扣,連第二次嘗試的機會都被抹殺了。

本文作者:蔡學鏞
張貼日期:11/5/01

| 首頁 | 聯絡我們 |
© 2009, O'Reilly Media, Inc. Taiwan Branch