我有時會寫些文章,文章不一定會發表
撰寫的過程中,查了點軟體工程的東西
發現到了一件事情
軟體工程是為了解決軟體危機而在1968年被提出的
(http://www.dotspace.idv.tw/sofeeng/sofeeng_4.htm)
根據維基百科所述,軟體危機表現在幾個方面:(https://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E5%8D%B1%E6%9C%BA)
專案運行超出預算。
專案運行超過時間。
軟體品質低落。
軟體通常不符合需求。
專案無法管理,且程式碼難以維護。
我發現的事情是:軟體工程所要解決的問題,過了幾十年在台灣仍然是一種常態
(雖然有的公司可能會說他們專案從來不會延遲的,不過只要問他們加班情況,肯定不敢說都是準時下班的)
我寫這篇文章時,還看到一篇文章「沒人在乎軟體工程」(http://www.oreilly.com.tw/column_sleepless.php?id=j013)
文章中對於不用軟體工程的藉口有「新技術一直冒出來,學都學不完了,那裡有空搞軟體工程」、「計畫趕著進行,做都做不完了,那裡有空搞軟體工程」...
我認為關鍵應該是認為軟體工程無法對開發帶來足夠好處讓人願意支付對應的代價去執行,最後淪為只是拿來做做表面功夫用的
至於是覺得軟體工程沒用呢?還是老闆與主管都很捨不得付出使用的代價,這就得視情況而定,很難講清楚了。
有的人可能並不了解軟體工程就自認了解而直接宣告軟體工程沒有用,只是理論
也有的人對於執行時會從其他方面考量而做些調整,例如:
嫌系統分析師貴就說讓程式設計師全包、(我曾遇到過有技術主管這樣跟我說)
因為需求一直變所以乾脆不要寫系統分析文件(我之前面試某間公司時,面試官就是這樣說)...等等。
最後整個做法都變質了,當然沒發揮效果是很正常的,於是也就產生了軟體工程沒用的認知
我是相信軟體工程是能解決很多開發上的問題(這就是當初提出的原因啊)
而且軟體工程的討論到今天也是仍然在被持續進行著,一定比幾十年前提出時更好
但是就結果來看,良好的使用軟體工程並無法在台灣取得很大的競爭優勢
否則在「適者生存不適者淘汰」的法則下,良好實施軟體工程的公司應該能夠脫穎而出
畢竟提出軟體工程的是外國人,他們不了解台灣的文化與商業生態,他們的學術也不會去考慮台灣的文化與生態
導致軟體工程的學術很難適用於台灣
寫這文章只是覺得有點感慨
我從事軟體開發工作過程中,發現存在很多問題
為了不想被這些問題一直困住,我常在想到底這些問題是怎麼回事,以及追求解決方法
過程中也有學到一些解決問題的方法與知識,但一直卡在人的問題與管理的問題
雖然以前念書時就有學過軟體工程,但也最近才發現
原來軟體工程被提出的原因,就是解決我一直想解決的問題(我原本認知只是解決軟體危機,但不知軟體危機多麼符合現在情況)
但是方法與方向在幾十年前就存在了
過了幾十年都無法解決的問題,我想這不是一般人想解決就能解決的
留言列表