軟體開發的轉變正如同工業時代前後的製造業一般…
如果說軟體開發在過去像是工業化前的手工業時代一般,是一種由工匠的技藝塑造出的工藝品,那軟體的品質就完全取決於工匠的手藝與巧思了,其成本與產量當然也像工藝品一般非人人可及的。
這種情形導致軟體開發的產量稀少又無法普及,品質也沒有一致的標準,直到物件導向式的軟體模組觀念的提出才慢慢有了轉變。有句話深切的點出了其精神所在:「為何要重新發明輪子?」,既然有人發明了輪子,後面的人就拿來應用就行了,軟體模組的可重用性其精神就在於此。
今天,軟體開發人員可以利用許多可重用的軟體模組、各種輔助軟體工程的工具來大量開發軟體,改善了軟體開發的品質與生產力的問題,但是有許多習於老方法的程式人員還是喜歡用舊的方法工作,並不願意由這種工作中轉變解脫出來,這其實是很有意思的一點。
工匠在創作工藝品的時候,每一件作品都是獨一無二的藝術品,每完成一件就必須付出不同的創意與巧思,每完成一件都是莫大的喜悅,如此說來,想要讓有創意有天賦的工匠變成一成不變的生產線工人而甘心放棄創造藝術的喜悅,不能不說是一件有違人性的事。
不過,軟體開發工業化、工程化的趨勢與腳步,就像工業革命般的不可逆轉,這是一種進步的必然潮流。下一個時代中,我們也許將很難看到偉大又天才橫逸的程式大師而只能看到一群群背影相同的軟體開發工人了。
拜讀過了,很有自己的見地。 😀
我整理了一篇:「什麼是軟體設計(Software Design)?」
可以參考看看。 🙂
http://www.kenming.idv.tw
這篇是我對物件導向與隨之而來的軟體工業革命給予的一點人文關懷,不必太拘泥於微言正名,或是放在科學的試管中詳細檢視,我關懷的重點是人 …
1. 所謂 “可重用的模組(Module)” 建議改為 “可重用的元件(Component)” 較理想。
2. 「物件導向」並非銀彈(Silver Bullet),太多人誤解了所謂的 “ReUse”,也對它期望太高了。
3. 所謂的”可重用(Reusable)”重點不在於 reuse “元件”!
試想,為何樹木需要落葉凋零?因為需要長出新葉,藉此生生不息。事實上,ReUse 所指的是對整體架構的 “ReUse”。
雞排似乎是許多行業共同的語言、圖騰或是反抗的象徵了….. 雞排黨?
不知為啥,看到這篇的我突然想起雞排…