《爪哇夜未眠》- 軟件工程篇 - 軟件工程的吊詭
沒人在乎軟件工程——缺失
長期以來,關(guān)于軟件工程有許多吊詭之處,通過本文章,我對五個(gè)吊詭的問題提出我的看
法,希望也能因此解開你心中對軟件工程價(jià)值的疑問。
Q: 軟件工程到底有沒有用?
如果你上過軟件工程的課,你很可能會(huì)懷疑軟件工程有沒有用,如果你有這樣的懷疑,很
可能是因?yàn)槟恪赣鋈瞬皇纭埂J聦?shí)上我就是如此,大學(xué)時(shí)我原本有選修軟件工程的課,但
是上不了幾次課我就退選了,因?yàn)槔蠋熃痰闷娌顭o比,加上老師本身不是研究軟件工程的
(他根本就是研究硬件的),更沒有業(yè)界的實(shí)務(wù)經(jīng)驗(yàn)。沒理論基礎(chǔ),沒實(shí)務(wù)經(jīng)驗(yàn),沒教學(xué)
熱誠,遇到這樣的教授我怎能不打退堂鼓。
但千萬不要讓這種教授??喪了你對軟件工程的信念。軟件工程絕對是有用的,最佳的實(shí)例
就在印度。你只消看看印度的軟件產(chǎn)業(yè),如此講究軟件工程,而且開發(fā)軟件的成績?nèi)绱溯x
煌,你就應(yīng)該知道:軟件工程除了可以拿來發(fā)表論文幫助學(xué)生取得學(xué)位或幫助教授升等之
外,也確實(shí)是可以幫助軟件工業(yè)的。
Q: 軟件工程對誰重要?
我們常常(特別是最近)會(huì)聽到一派言論比較反對軟件工程的說法,他們認(rèn)為加強(qiáng)程序員
的能力比實(shí)施軟件工程「更重要」。我不反對這樣的說法,但問題是對誰比較重要?我認(rèn)
為,軟件工程對組織(公司)比對個(gè)別的程序員更重要。程序設(shè)計(jì)技巧的加強(qiáng)、以及新技
術(shù)的學(xué)習(xí)對程序員比較重要。采用軟件工程,短期內(nèi)對程序員帶來的好處不多,甚至?xí)?br />程序員帶來麻煩(被加諸許多限制)。
對于公司來說,實(shí)施軟件工程,除了可以因此掌握軟件的品質(zhì)之外,更可以避免一些風(fēng)險(xiǎn)
。即使目前的軟件開發(fā)團(tuán)隊(duì)還算穩(wěn)固,但是這些人未來可能會(huì)一個(gè)一個(gè)離職。沒有好好實(shí)
施軟件工程的公司,在重要的軟件開發(fā)人員離職后,往往會(huì)讓軟件計(jì)劃嚴(yán)重延宕,甚至停
擺(我們聽過也看過太多這樣的例子)。如果當(dāng)初有實(shí)施軟件工程,就可以一切井然有序
,可以不用花太多時(shí)間就讓接替的人繼續(xù)專案進(jìn)度。
Q: 既然如此,程序員可以不要理會(huì)軟件工程?
既然程序員最重要的是加強(qiáng)程序能力,那么程序員應(yīng)該忽略軟件工程?當(dāng)然不是。程序員
是公司的一份子,對公司有利的事,也會(huì)間接對程序員有利。再者,程序員是無法當(dāng)一輩
子的,必須及早準(zhǔn)備因應(yīng)之道(請參見「軟件人員的生涯規(guī)劃」一文)。如果有心要在以后成為主管階層,最好能先對軟件工程和計(jì)劃管理的相關(guān)知識做好準(zhǔn)備。對程序員來說,
軟件工程又比計(jì)劃管理來得更急迫。
Q: 軟件工程對哪類型的計(jì)劃比較有用?
對于小型計(jì)劃來說,軟件工程不見得有太大的用途(但也不至于有害)。對于中大型計(jì)劃
來說,如果不采行軟件工程,后果往往就會(huì)很嚴(yán)重,很可能會(huì)遭致一團(tuán)混亂,導(dǎo)致計(jì)劃失
敗。就算完成計(jì)劃,大概也是拼湊出來的,許多 bug 潛藏其中,軟件的實(shí)用性很低,而且
無法維護(hù)。
Q: 那么小型計(jì)劃不應(yīng)該用軟件工程?
雖然使用軟件工程與否,對于小計(jì)劃的影響不大。但是我認(rèn)為,即使是小型計(jì)劃,最好也
要遵照軟件工程的程序來進(jìn)行。通過小計(jì)劃來練習(xí)軟件工程,讓大家有機(jī)會(huì)熟悉軟件工程
的運(yùn)作,當(dāng)在大計(jì)劃中使用軟件工程時(shí),才不會(huì)手忙腳亂。一個(gè)公司如果沒有從小計(jì)劃開
始實(shí)施軟件工程,就驟然在大計(jì)劃中實(shí)施軟件工程,那么失敗的機(jī)會(huì)很高。而且第一次就
失敗,往往會(huì)使得主管對于軟件工程的信心大打折扣,連第二次嘗試的機(jī)會(huì)都被抹殺了。
長期以來,關(guān)于軟件工程有許多吊詭之處,通過本文章,我對五個(gè)吊詭的問題提出我的看
法,希望也能因此解開你心中對軟件工程價(jià)值的疑問。
Q: 軟件工程到底有沒有用?
如果你上過軟件工程的課,你很可能會(huì)懷疑軟件工程有沒有用,如果你有這樣的懷疑,很
可能是因?yàn)槟恪赣鋈瞬皇纭埂J聦?shí)上我就是如此,大學(xué)時(shí)我原本有選修軟件工程的課,但
是上不了幾次課我就退選了,因?yàn)槔蠋熃痰闷娌顭o比,加上老師本身不是研究軟件工程的
(他根本就是研究硬件的),更沒有業(yè)界的實(shí)務(wù)經(jīng)驗(yàn)。沒理論基礎(chǔ),沒實(shí)務(wù)經(jīng)驗(yàn),沒教學(xué)
熱誠,遇到這樣的教授我怎能不打退堂鼓。
但千萬不要讓這種教授??喪了你對軟件工程的信念。軟件工程絕對是有用的,最佳的實(shí)例
就在印度。你只消看看印度的軟件產(chǎn)業(yè),如此講究軟件工程,而且開發(fā)軟件的成績?nèi)绱溯x
煌,你就應(yīng)該知道:軟件工程除了可以拿來發(fā)表論文幫助學(xué)生取得學(xué)位或幫助教授升等之
外,也確實(shí)是可以幫助軟件工業(yè)的。
Q: 軟件工程對誰重要?
我們常常(特別是最近)會(huì)聽到一派言論比較反對軟件工程的說法,他們認(rèn)為加強(qiáng)程序員
的能力比實(shí)施軟件工程「更重要」。我不反對這樣的說法,但問題是對誰比較重要?我認(rèn)
為,軟件工程對組織(公司)比對個(gè)別的程序員更重要。程序設(shè)計(jì)技巧的加強(qiáng)、以及新技
術(shù)的學(xué)習(xí)對程序員比較重要。采用軟件工程,短期內(nèi)對程序員帶來的好處不多,甚至?xí)?br />程序員帶來麻煩(被加諸許多限制)。
對于公司來說,實(shí)施軟件工程,除了可以因此掌握軟件的品質(zhì)之外,更可以避免一些風(fēng)險(xiǎn)
。即使目前的軟件開發(fā)團(tuán)隊(duì)還算穩(wěn)固,但是這些人未來可能會(huì)一個(gè)一個(gè)離職。沒有好好實(shí)
施軟件工程的公司,在重要的軟件開發(fā)人員離職后,往往會(huì)讓軟件計(jì)劃嚴(yán)重延宕,甚至停
擺(我們聽過也看過太多這樣的例子)。如果當(dāng)初有實(shí)施軟件工程,就可以一切井然有序
,可以不用花太多時(shí)間就讓接替的人繼續(xù)專案進(jìn)度。
Q: 既然如此,程序員可以不要理會(huì)軟件工程?
既然程序員最重要的是加強(qiáng)程序能力,那么程序員應(yīng)該忽略軟件工程?當(dāng)然不是。程序員
是公司的一份子,對公司有利的事,也會(huì)間接對程序員有利。再者,程序員是無法當(dāng)一輩
子的,必須及早準(zhǔn)備因應(yīng)之道(請參見「軟件人員的生涯規(guī)劃」一文)。如果有心要在以后成為主管階層,最好能先對軟件工程和計(jì)劃管理的相關(guān)知識做好準(zhǔn)備。對程序員來說,
軟件工程又比計(jì)劃管理來得更急迫。
Q: 軟件工程對哪類型的計(jì)劃比較有用?
對于小型計(jì)劃來說,軟件工程不見得有太大的用途(但也不至于有害)。對于中大型計(jì)劃
來說,如果不采行軟件工程,后果往往就會(huì)很嚴(yán)重,很可能會(huì)遭致一團(tuán)混亂,導(dǎo)致計(jì)劃失
敗。就算完成計(jì)劃,大概也是拼湊出來的,許多 bug 潛藏其中,軟件的實(shí)用性很低,而且
無法維護(hù)。
Q: 那么小型計(jì)劃不應(yīng)該用軟件工程?
雖然使用軟件工程與否,對于小計(jì)劃的影響不大。但是我認(rèn)為,即使是小型計(jì)劃,最好也
要遵照軟件工程的程序來進(jìn)行。通過小計(jì)劃來練習(xí)軟件工程,讓大家有機(jī)會(huì)熟悉軟件工程
的運(yùn)作,當(dāng)在大計(jì)劃中使用軟件工程時(shí),才不會(huì)手忙腳亂。一個(gè)公司如果沒有從小計(jì)劃開
始實(shí)施軟件工程,就驟然在大計(jì)劃中實(shí)施軟件工程,那么失敗的機(jī)會(huì)很高。而且第一次就
失敗,往往會(huì)使得主管對于軟件工程的信心大打折扣,連第二次嘗試的機(jī)會(huì)都被抹殺了。
posted on 2006-07-10 15:00 rosial 閱讀(289) 評論(0) 編輯 收藏 所屬分類: 蔡學(xué)鏞