软件工程 之 画扇面

 

软件工程的历史虽然说只有短短的四十多年时间1968 年提出),但是软件工程的主体人类已经出现在世界上好些年了。  人还是那些人,事儿还是那些事儿,  好的,坏的,可笑的模式同样会出现。我看到同学们在分析前面的学生的软件项目的时候,link1, link2)我不禁想起一个相声画扇面。  我们不妨拿它和软件工程做个比较:

 

画扇面

做软件工程团队项目

相声是一门说学逗唱的艺术

 

: 我刚买了一把纸扇

: 哦,拿来看看,一把白纸扇上面空空如也太可惜,拿不出手啊。如果能画上画就更好了。我这几天也没什么事, 我就给你免费画画!

软件工程讲究的是需求分析, 项目管理, 开发, 测试和维护

 

: 我觉得咱们团队项目做一个好用的小工具就好了,  我已经做好了一个原型。

: 这想法固然好,  但是我们这么些个编程高手, 就做这么小的一个工具, 未免拿不出手。我们要把它搞大!

 

: 太好了,您能画什么?

: 画个美女图怎么样? 美女出浴图, 或美女春游图都可以考虑。

: 我激动ing…

: 那我们做什么呢?

: 我们扩展一下, 把所有工具都实现了,一统天下。几种工具结合起来!

: 我激动ing…

 

 

过了几天, 甲问: 我那美女画好了么?

: 喔,美女, 画好了!你看这美女的小脸蛋儿, 眼睛稍稍大了点  但是, 我不如给你改成张飞算了!都是人体,  我可以很快重构一下, 我画张飞最拿手了,过几天就好。

 过了几周

: 通过调研才发现, 这么多工具都有自己独特的需求, 不同需求互相冲突,不好协调, 怎么办?

: 我们可以做成一个通用的工具,统一需求, 解决用户从头到尾的问题。

 

过了几天... 

甲问: 我那张飞?

乙:张飞?!喔对的,张飞也画得差不多了, , 你看这张飞的胡子,这身躯 是粗了点要不咱们画成山水,这张飞,这张飞...  马上就可以变成一块怪石!

甲:  大热天的我等这扇子... 我容易吗... 

过了几周

: 通用的工具听上去很好,  但是太通用了, 不好掌握,我们到底要实现哪些具体功能呢?

: 我们可以做成一个开放式的平台!这样所有人都可以做一个插件, 来实现这个平台的一些功能!而且别人还可以用我们这一个通用的框架开发任意别的软件。你想想 - 任意软件啊! 

: 我激动,不过我们软工课快要结束了, 要交作业啊

 

 

过了几天,

: 我那山水?

: 啊,山水  我也画好了。  你看那巨石,很巨大, 很给力吧 构图有点那啥容我再改改。 

: 您什么时候画好?  这夏天都快过了! 

乙: 嗯,  我的山水画还是有些宋人风格的... 假以时日...     如果你急着要用扇子,  这样吧, 我把扇面全涂黑了, 你再找人往上写金字好了!

 

过了几周

: 项目发布时间到了, 我们的平台还没有,工具还没连起来,怎么办?

: 咱们可以把项目开源到网上, 另外也许有很多开源的朋友闲的没事,可以给我们的代码写一些注释等等。这是我们对开源运动作的巨大贡献, 输出价值观, 这可不是每个程序员都能做到的啊。

 

甲: 那期末怎么交差啊?

乙: 赶紧写 PPT! 

 

 

很多学生学了一些编程语言, 读了一些技术博客, 一般都豪情万丈.  他们做一个项目恨不得展现自己平生所学, 再加上前沿技术, 做一个轰动性的创新。 这固然值得鼓励, 但是经验显示, 这些往往都不能成功。

 

我们看看成功的例子, 他们是怎么开始的, 例如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 人士云集的网站, 每天都有很多巨大的新想法、惊世骇俗的评论冒出来,   争论美女/张飞/巨石的重构问题,  对一些通用的框架/平台发出一些人云亦云的评论, 等等。 这些文字, 大多数会转化为墨水, 把扇面涂黑,  让后人在上面写下金字。

posted @ 2011-03-13 10:09 SoftwareTeacher 阅读(...) 评论(...) 编辑 收藏