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