软件工程 之 画扇面
軟件工程的歷史雖然說只有短短的四十多年時間 (1968 年提出), 但是軟件工程的主體 – 人類 – 已經出現在世界上好些年了。 人還是那些人,事兒還是那些事兒, 好的,壞的,可笑的模式同樣會出現。 我看到同學們在分析以前學生的項目的時候(link1, link2), 我不禁想起一個相聲 – 畫扇面。 我們不妨拿它和一些不靠譜的軟件項目做個比較:
?
| 畫扇面 | 做軟件項目 |
| 相聲是一門說學逗唱的藝術…
? 甲: 我剛買了一把紙扇 乙: 哦, 拿來看看,一把白紙扇… 上面空空如也太可惜,拿不出手啊。 如果能畫上畫就更好了。 我這幾天也沒什么事, 我就給你免費畫畫! | 軟件工程講究的是需求分析, 項目管理, 開發, 測試和維護…
甲: 我覺得咱們團隊項目做一個好用的小工具就好了, 我已經做好了一個原型。 乙: 這想法固然好, 但是我們這么些個編程高手, 就做這么小的一個工具, 未免拿不出手。我們要把它搞大! |
| 甲: 太好了,您能畫什么? 乙: 畫個美女圖怎么樣? 美女出浴圖, 或美女春游圖都可以考慮。
甲: 我激動ing… | 甲: 那我們做什么呢? 乙: 我們擴展一下, 把所有工具都實現了,一統天下。幾種工具結合起來!
甲: 我激動ing… |
| 過了幾天, 甲問: 我那美女畫好了么?
乙: 喔,美女, 畫好了!你看這美女的小臉蛋兒, 眼睛稍稍大了點… 但是, 我不如給你改成張飛算了!都是人體, 我可以很快重構一下, 我畫張飛最拿手了,過幾天就好。 | 過了幾星期…
甲: 通過調研才發現, 這么多工具都有自己獨特的需求, 不同需求互相沖突怎么辦? 乙: 我們可以做成一個通用的工具,統一需求, 解決用戶從頭到尾的問題。 |
| 過了幾天,
甲問: 我那張飛? 乙:張飛?! 喔對的, 張飛也畫得差不多了, 嗯, 你看這張飛的胡子, 這身軀… 是粗了點… 要不咱們畫成山水,這張飛馬上就可以變成一塊怪石! | 過了幾周…
甲: 通用的工具聽上去很好, 但是太通用了, 不好掌握,我們到底要實現哪些具體功能呢? 乙: 我們可以做成一個開發式的平臺!這樣所有人都可以做一個插件, 來實現這個平臺的一些功能!而且別人還可以用我們這一個通用的框架開發任意別的軟件。 甲: 我激動ing… |
| 過了幾天, 甲問: 我那山水?
乙: 啊,山水… 我也畫好了。 你看那巨石,很巨大, 很給力吧… 構圖有點那啥… 容我再改改。 甲: 您什么時候畫好? 這夏天都快過了。 乙: 要不然這樣, 我把扇面全涂黑了, 你再找人往上寫金字好了! | 過了幾周…
甲問: 項目發布時間到了, 我們的平臺還沒有,工具還沒連起來,怎么辦? 乙: 咱們可以把項目開源到網上, 另外也許有很多開源的朋友閑的沒事, 可以給我們的代碼寫一些注釋等等。這是我們對開源運動作的巨大貢獻啊。
甲: 咱們太了不起了! |
?
很多學生學了一些編程語言, 讀了一些技術博客, 一般都豪情萬丈. 他們做一個項目恨不得展現自己平生所學, 再加上前沿技術, 做一個轟動性的創新。 這固然值得鼓勵, 但是經驗顯示, 這些往往都不能成功。
?
我們看看成功的例子, 他們是怎么開始的, 例如Linux 剛開始的時候:
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones... (source)
?
我們還看到管理學大師 Peter Drucker 的忠告 –
Those entrepreneurs who start out with the idea that they'll make it big – and in a hurry – can be guaranteed failure. (source)
?
解決大問題固然讓然感覺美妙, 但是把小問題真正解決好, 也不容易, 我們回頭看看博客園, csdn 等IT 人士云集的網站, 每天都有很多巨大的新想法、驚世駭俗的評論冒出來, 爭論美女/張飛/巨石的重構問題, 對一些通用的框架/平臺發出一些人云亦云的評論, 等等。 這些文字, 大多數會轉化為墨水, 把扇面涂黑, 讓后人在上面寫下金字。
?
原文在這里也發表了
[ http://www.cnblogs.com/xinz/archive/2011/03/13/1982585.html ]
?
[為了保護環境, 博客留言中只有"頂" 的一律刪除]
?
總結
以上是生活随笔為你收集整理的软件工程 之 画扇面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件教育随想
- 下一篇: 高中学生计算机软件,中学生计算器