資訊系統開發的路徑選擇決策對話錄 -- 苦行僧學院版
By HUNG Chao-Kuei on Wednesday, January 26 2011, 15:53 - Permalink
師傅告訴幾位徒弟: 「我接了一個案子, 要幫客戶開發餐廳訂位系統。
我已經用這個案子的經費替你們請來 asp.net 的專家。
下個星期上一整週的課, 然後你們就可以開發這個資訊系統了。」
「可是, ... 師傅, 我上網搜尋了一下, joomla 和 drupal
都有訂位功能的外掛套件耶。 我們可以不要從零開始嗎?」
「只會撿別人寫現成的東西來用, 這樣怎麼會進步呢?」
「我們可以從高手寫的程式當中學到很多東西呀...」 徒弟企圖說服師傅。
「你確定寫 joomla 和 drupal 的都是高手嗎? 他們有 .net 證照嗎?」
「那個... joomla 和 drupal 是 php 寫的...」
「嗯, 我沒看過 joomla 和 drupal 的原始碼。 不過你講到重點:
.net 比 php 有深度多了。 如果你們只願意學 php
這種簡單的東西的話, 那麼你們這一代就會變得比較笨。
像 php 這類源自於網路上的東西, 它的邏輯思考是不清楚的。
網路下載的軟體的原始碼, 如果年輕人看多了,
那麼他的思考能力就會變得非常之差。」
徒弟不敢再在同一個問題上面頂嘴, 於是換一個方式請教師傅:
「可是師傅, 我們幾位同學臨時惡補出來所寫的程式,
品質真的會比較網路上的高手, 呃, 不是,
我是說, 真的會比網路上那幫人所寫的系統更好嗎?」
「不許這麼小看你自己。 第一, 這不叫臨時惡補, 這叫做密集專業訓練。
第二, 要相信自己的能力。
每天起床後和睡覺前要告訴自己 "I can do it!" 要相信自己是最好的;
你們幾個人在經過密集專業訓練之後, 所開發出來的軟體品質一定會超過
joomla 和 drupal。 網路上那些開發者, 沒有接受過我們的苦行訓練,
就算當中有些人頭腦不錯, 也無法完全發揮人的潛能。」一心不想重新發明輪子 一心想偷懶的徒弟還是不死心:
「但是這麼一來, 開發的時間會拖很長, 很久才能讓客戶上線吧?」
「所以你們要有熬夜加班, 一個人當三四個人用的心理準備。
這正是一種修練, 明白了嗎?」
在苦行僧學院, 只要談到苦行修練, 就沒什麼好辯駁的了。
苦行是一種思想, 是一種信仰, 是一種力量。
能夠吃苦, 絕不享樂。
於是徒弟又換一個切入點:
「那麼, 我們開發出來之後,
師傅可以找很多人幫忙測試我們的作品嗎?」
「沒問題, 我會叫另外一組同學共六人,
每個人都要來測試你們所開發的資訊系統。」
「但是這跟 joomla 和 drupal 在網路上成千上萬人次的測試密度比起來...
我們的作品會不會不夠安全呀?」
師傅聽到徒弟再度提起開放原始碼的 joomla 和 drupal, 不悅地皺起了眉頭。
「開放型的資訊系統雖然有很多優點, 但極容易被人不法侵入, 而且侵入以後,
常可以通行無阻, 如入無人之境。 你們自己開發的系統,
大家都看不見, 世界會很安全, 知道嗎?
別再提起這些開放原始碼的東西了。
還有, 你不要整天掛在網路上, 這樣會變笨的。 要多讀微軟給的文件。
我們既然已經簽了校園合約, 就不應該浪費這些免費的東西。」
「是的, 師傅。」 他趕緊把手機上的 firefox 瀏覽器關掉 --
雖然他知道師傅從來不知道他的手機可以上網,
不過沒事還是別自找麻煩比較好。
想到 「自找麻煩」 這個詞,
他的腦海裡隱約爆出一小小片邏輯矛盾的火花; 不過這火花稍縱即逝。
另一位徒弟插嘴: 「可是師傅,
我們苦行僧學院並不是微軟眼中的一流大學,
校園授權的保護範圍好像沒有涵蓋我們家中的電腦耶...」
「那就來學校用電腦啊。 在學校工作, 沒有泡麵和床鋪的誘惑, 效率比較高。」
「那麼以後系統完工要交給客戶時, 也要幫他們買 asp.net 的授權嗎?」
師傅思索了一下, 反問徒弟們: 「你們覺得呢?」
「那是他們的問題, 他們當然自己要解決啊。
怎麼可以動用到僱我們開發系統的經費呢?」
一位徒弟一邊練習著只用小指和無名指轉筆, 一邊回答道。
「顧客... 至上...。 我們... 應該... 吸收... 成本。
如果... 透支... 當做... 修練...。」
另外兩位徒弟一人用頭撞牆打出摩斯密碼, 另外一人幫忙翻譯, 這麼回答著。
他們認為話多不如話少; 改用摩斯密碼發言,
每講一個字都要忍受痛楚, 這樣有助於減少不必要的發言。
「很好, 你們回答得很好。 回答的內容和方式都很好。」
師傅滿意地點頭微笑。 他又指著轉筆的同學:
「但是, 他說的也不無道理。 事實上, 讓客戶自己去面對 BSA 抓盜版的問題,
這對客戶而言, 不也是一種修練嗎?
客戶這個苦行修練的機會, 不應該被我們的好意剝奪。」
這時, 師傅最喜愛的大弟子說話了:
「師傅, 我明白了。 之所以不採用 joomla 和 drupal,
就是因為我們希望讓客戶花比較多的錢、
僱用比較不熟軟體但願意勤能補拙的我們來開發系統、
體驗無法及時驗收的風險、 並且用比較高的成本獲得比較低的效益。
對於客戶來說, 這一切也都是一種苦行修練, 可以提昇客戶的靈性修養。
還有, 將來客戶想要新增功能時, 客戶將無法上網自己搜尋現成免費的外掛套件;
客戶不得不再找我們開發新的模組。
這樣, 不僅苦行僧學院可以有源源不絕訓練學生苦行的機會,
也可以將這種苦行精神推廣到社會去, 讓大家多多面對挑戰 -- 例如
在複雜的 asp.net 授權當中, 選擇適當的方式 或面對 BSA 的騷擾。
因為生活當中的每一個挑戰, 都是一個苦行修練的機會。
人類社會的價值與意義, 就在於不斷地用最辛苦的方法來滿足最基本的生存需求,
這樣才能從當中得到靈性的昇華。
反觀網路上那些自由軟體, 撿來立即可以用, 破了馬上有人補,
既不需要花錢, BSA 又不會來抓, 這一切都讓生活失去挑戰,
讓修練失去機會, 讓生命失去意義。」
看到大師兄都敢談 joomla 和 drupal 了,
第一位徒弟也趕緊補一句, 希望給師傅留下好的印象:
「嗯嗯我也終於了解
美國白宮採用 drupal 的深層意義了。 一個不懂得苦行修練的國家,
難怪會淪落喪志、 失去精神生活。」
「很好, 希望這一段對話, 有助於大家更了解苦行僧的價值與使命。
現在, 請回到你的座位上, 拿出你的電腦程式打卡卡片,
開始預習下週一 asp.net 的程式作業。」
「唉, 現代的年輕人...」 從桌子底下突然出現一個熟悉的聲音。 雖然大多數人沒看見講話的人, 但是所有徒弟都知道那是誰, 所有徒弟也都立刻正襟危坐。 為了體驗狗狗眼中的世界, 了解眾生的辛苦, 師公把自己的小腿綁起來不用, 趴跪在地上行走已經很多年了。 他輕聲地責難師傅: 「我說徒兒啊, 你對你的徒弟們也太放縱了吧。 用 asp.net 這種高階的工具來開發系統, 根本就不符合我們苦行僧學院的精神。 我年輕的時候, 用的是 機器碼 呀! 你們年輕人好逸惡勞, 再怎麼不爭氣, 好歹至少也用組合語言或非圖形版的 C 語言開發程式, 這才像話嘛。 唉, 現代的年輕人...」
# # # # # # # # # # # # # # # # # # # #
不好意思啊, 我並不想污衊苦行僧。 事實上在 Richard Stallman 的眼中, 使用 vim 的我, 應該也算是一種幾近苦行的 懺悔修行 吧 :D (在該文中搜尋 "penance") 其實我也很認同儉樸生活, 也真心崇敬清心寡慾的修行者 -- 所以才會主張 以 wiki 取代 MS Word, 又主張 用 jquery 版的雲端簡報取代 MS PowerPoint, 以及 用隨身碟實踐 80% 電腦樂活 啊。 只不過我個人比較認同 追求減壓/輕鬆/簡單而非刻苦/自找麻煩的生活。 限於個人的修行有限 (應該是說接近零吧), 無法理解極度苦行的深層意義; 又看到今日資訊教育界 「曠安宅而弗居, 舍正路而不由」、 同樣令人無法理解的奇異景象, 心有所感, 於是根據真實故事誇大改編寫下這一帖。 請真正的苦行高僧大德原諒小的冒犯 orz。
Comments
所幸我們還有dnn、rainbow,不必從零開始。
不過仍感謝老師分享故事。
如果你們只願意學 php 這種簡單的東西的話, 那麼你們這一代就會變得比較笨。像 php 這類源自於網路上的東西, 它的邏輯思考是不清楚的。網路下載的軟體的原始碼, 如果年輕人看多了, 那麼他的思考能力就會變得非常之差。」
> 一個prof. 又被教授暗諷 , :-) any programming languages 都有其特定的用途,端看如何用,什麼場合用, 還沒有聽過有人拿 x86 assembly 寫 distributed system , 拿 php 寫 device driver ,... programming languages just is a tool. 無高低之分 (應該說不同類的)
一種金屬的延展性,會比複合性金屬差, 多學幾種 programming lnaguages 對programmers 是有競爭力的
[格主註: someone 的留言有點分散; 容我編修, 全部放在一起比較清爽。 不小心漏 copy 一個, 抱歉呵... 就麻煩 someone 兄再補充一次吧。 建議一次集中補充。]
程式設計師為了找到工作,一定會不同的開發工具,因為軟體公司都有常用的開發工具.為了配合廠商的需要,程式設計師也會用不同的開發工具.可是師傅教徒弟,只要會用 tools ? 如果看過格主的文章就知道,格主要教徒弟「標準」不是 tools .
MFC、Borland C 是不同的 tools ,但背後都是C、C++.
sorry , 下次改進.
programming languages 就像許多的 keys , 擁有 those keys 就可開啟許多的門一樣, 與門後的人進行溝通, 就可了解門後的各式各樣的世界與多采多姿的文化 ,但是此篇的意義就是孟子離婁上的宗旨.
原來我用vi也算是苦行啊,
那我來改用ed好了。
哈哈哈
嗯, 原來的標題 「資訊系統開發工具選擇...」 下得不好, 造成大家誤會。 改成 「資訊系統開發的路徑選擇...」 重點是: 要不要撿現成的來用。
@Tasuka: 哈哈, 這個強! 還可以考慮改用 cat 跟 sed 更強哦...
This post's comments feed