软件工程 之 画扇面

软件工程的历史虽然说只有短短的四十多年时间 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 ]

 

[为了保护环境, 博客留言中只有"顶" 的一律删除]

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 类加载生命周期_Java类的加载与生命周期

一、概要:类的生命周期从类的 加载、连接、初始化 开始,到类的 卸载结束;二、几个阶段:加载:查找并加载类的二进制数据。(把类的.class文件的二进制数据读入内存,存放在运行时数据区的方法区;类…

tooooooooooooold

看到一篇文章: http://blog.csdn.net/atixujie/archive/2011/04/06/6305371.aspx 推荐软件工程的书籍, 我看了一眼, 觉得特别陌生, 就找了一下原文, 原文在: http://www.cs.cmu.edu/afs/cs.cmu.edu/user/shaw/www/Edparts/sebook.htm 在原始的网页上有一段小字: It was l…

java 配置嵌套事务_Spring 事务嵌套的配置

问题在使用Spring管理Service层事务时,会遇到service方法事务嵌套的问题。默认情况下,service方法有自己独立的事务,如果一个复杂的service方法中,调用了多个事务操作,中间抛出异常时,往往不会发生事务回滚…

软件工程 动物世界

在一个神奇的国度里生活着许多动物, 其中有猪, 鸡, 和鹦鹉。 它们每天搞头脑风暴, 琢磨如何创业, 最后鹦鹉提议它们合伙开一个早餐店: 具体分工如下: 猪: 提供猪肉, 做熏猪肉 (bacon) 鸡: 提供鸡蛋, 做煎蛋 鹦鹉: 提供咨询, 它会每天阅读大量博客, 给其他团队成员提供建议, 例…

java filterinputstream_java.io.FilterInputStream.close()

全屏java.io.FilterInputStream.close()方法关闭此输入流并释放与该流关联的所有系统资源。声明以下是public void close() 方法的声明:public void close()参数NA返回值该方法不返回任何值。异常IOException -- 如果发生I/ O错误。例子下面的例子显示了public void…

软件工程 敏捷的酒后问答

来源:《构建之法》 王屋村移山公司的程序员果冻最近请假参加了一系列敏捷的培训, 有好事者传言他和 “a-girl”勾搭上了, 其他年轻同事有点坐不住了, 也表示要参加此类活动。 几天后, 果冻回到公司, 给所有人发了一枚写有 “Agile” 的胸章。 他纠正大家的发音, 这个…

创新, FMA SMA 世界第一台VCD机的故事

FMA & SMA http://en.wikipedia.org/wiki/First-mover_advantage Second-mover advantage -------------------- 世界第一台VCD机 提到VCD机,必然要说到它的创始人姜万勐。世界上第一台VCD机产自中国,时间是1993年9月,由姜万勐研制。 姜…

java 打印命令_Java 普通命令行程序main关掉 DEBUG 打印

最近在写一个简单的java命令行程序,执行代码时,代码窗口出现了烦人的debug日志。分析了一下,出现这种问题的原因是因为,maven项目的依赖包中传递依赖了一些日志框架,导致会出现日志内容的打印。查看了一下,…

现代软件工程 作业 文本文件中英语单词的频率

这是《构建之法》现代软件工程课的个人项目作业 个人项目 Individual Project: 一个人独立完成.时间: 可以考虑在第一周就给同学们这个项目; 也可以考虑分为两部分, 个人做第一部分, 然后两人结对,选两个人中较好的程序,再继续开…

java 继承变量_用java中的变量继承

任何人都可以澄清我.这里实例方法被覆盖但变量不被覆盖.输出为:B 10class A{int i10;public void name(){System.out.println("A");}}class B extends A{int i20;public void name(){System.out.println("B");}}public class HelloWorld {publi…

现代软件工程 怎么教好课 (读书笔记)

0. 教师教学有培训和参考书么? 我从来没想到过我会在大学里教书, 而且还教了好几年, 好几个学校。 当时接到任务的时候, 我把它当作实习生培训和新员工培训的”学院版”, 还是继续强调实践, 反馈, 合作, 就这么开讲了。 在微软公司, 做大部分和人相关的事情, 都得先有一个培训…

php oci 11g.dll下载,Oracle oci.dll

Oracle oci.dll是在32位PLSQL Developer软件访问Oracle 11g 64位数据库必须的系统dll文件,用于支持连接访问数据,如果系统出现相关dll文件缺失,就需重新下载,有需要的朋友快来巴士下载网下载吧!Oracle 11g oci.dll文件…

java url authority,Java如何解析url,包括自定义schema的url

比如我要解析下面这个url:myscheme://adminblog.nihao001.com:8080/index.jsp?usernameasdf&password123456&msg%e4%bd%a0%e5%a5%bd#editor只要使用URI这个类就可以解析了。上代码:import java.net.URI;import java.net.URISyntaxException;pub…

软件工程 案例分析作业

现代软件工程 构建之法 作业https://bbs.csdn.net/forums/SoftwareEngineering?typeId1723 软件工程作业 案例分析 (建议作为个人或结对作业) 很多同学有疑惑: 软件工程课是否就是枯燥的理论课? 或者是几个牛人拼命写代码,其他人抱大腿的…

现代软件工程讲义 目录

软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较乏味的课程。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。 经过几年的探索, 我总结了在16周的时间内让同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划。 这套讲义在下面…

php的数据模型包括,数据库中模型的分类有哪些

数据库中模型的分类:1、概念数据模型,面向用户、面向现实世界的数据模型,描述一个单位的概念化结构;2、逻辑数据模型,可以通过实体和关系勾勒出企业的数据蓝图;3、物理数据模型,具有以实物或画图…

现代软件工程 团队作业 - 软件分析和用户需求调查 (2013 - 2014)

【现代软件工程 的讲义】 医学院的学生, 要练习解剖人体; MBA 的学生, 要剖析某公司的成败; 法律系的学生,要阅读和分析大量案例...... 软件行业的从业人员, 不管是项目经理, 开发或测试人员, 都要学会解剖分析软件, 我们就来试试看。 要求:…

php 去年年初和年底时间,PHP 日期与时间

获取时间1.使用 date 函数格式化一个本地时间。//输出当前时间echo date(‘Y-m-d H:i:s‘);2.使用 getdate 函数获取时间戳的日期时间信息。//打印出详细的信息var_dump(getdate(time()));时间戳1.使用 time 函数获取当前时间戳//输出当前的时间戳echo time()2.使用 mktime 函数…

Arrays.sort() and 吾欲仁则斯仁至矣

有不少人在争论 Java 对学生有益还是有害(不少网站上的评论有断章取义的嫌疑,不值得多看,建议看这个中文链接)(英文链接)。事实上,这个问题事实上不是最近才提出来,大约6~7 年前&…

一目了然

这是啥? a) 某星系的结构图 b) 博客堂的社会关系网络 c) 某传销网络 d) 某合法视频直播网络,可以看到CCTV-1 全部节目,包括春晚,有时还有体育节目。 最近在帮助一个项目的测试工作,这个项目需要通过一些数据及日志重现…