一切皆可抽象

大而无形 庖丁解牛 厚积薄发 涤虑玄览
   ::  ::  ::  ::  :: 管理

歪说软件工程18 - 小精灵的意见 - [原创]
话说《指环王》里的弗罗多说:“不要征求小精灵的意见,因为它们将会既说Yes又说No”。
商业软件产品的许多用户有时也是既说Yes又说No,或者说既要那个又要这个。
先换个领域,倘若一个生产猪饲料的,猪显然不知道自己想吃什么该吃什么,即使是养猪的也未必都知道或能科学地知道,所以厂商有责任研制有
效的饲料产品,即告诉养猪的你的猪吃这些饲料就可以了。
软件产品用户虽然作为人是有积极主动性的,但大多数时候确实是不知道自己要的是什么的,所以作为厂商,应该是特定商业领域的专家,有责任并
有义务研发有效的软件产品。因为有长期的积累,所以不信口开河,因为有大量用户的验证,所以确实有效果。
不征求小精灵的意见,是因为有能力告诉它们可以这样,而它们大多数认为这样确实可以。

歪说软件工程17 - 横过深渊的一根绳子 - [原创]
话说尼采认为“人之所以伟大乃是他是一个桥梁,而不是一个目标”。尽管这座“桥梁”如“横过深渊的一根绳子”,“渡过是危险的,在路上是危险的,
回顾是危险的,在中途战栗和踌躇是危险的”,但人却必须越过它。
软件产品即使把周期拉长,也很难断定它是一个桥梁还是一个目标,但确实不管前进、还是后退、还是踌躇也都是危险的。
比如CRT显示器,几年前还几乎都是弧面的,没有平面的,而现在几乎没有人买弧面显示器甚至有人都知道什么是弧面显示器了。两种显示器,从基本
需求的角度来说,都能满足显示的需求,但竞争总是使更先进的功能变成常态,竞争导致优胜劣汰。
软件产品如果前进而没走对,可能危及即得的地位,而如果不前进或者后退就容易被竞争对手找茬,所以不管速度如何还是要前进,为了避免前进的
风险,我们求助于软件工程的一些过程管理方法。

歪说软件工程16 - 现场直剥 - [原创]
话说老Y住处楼下就是一个自由市场,好几次听到一个卖柚子的在吆喝:“梁平柚子,一元一个,现场直剥……”。“现场直剥”的意思是买了之后现场直接给
你剥开。
语言可以这样用吗,妙哉!随意摘录一句古文:“夫玄黄色杂,方圆体分,日月叠璧,以垂丽天之象;山川焕绮,以铺理地之形……”(刘勰,《文心雕龙》)。
真不知道这些辞藻是怎么被堆砌起来的,奇哉!
发明汉字的仓颉看到这些,估计也会问道:“汉字可以这么用吗?”。软件产品用户多了,有时收到用户的反馈,说怎么怎么操作后出了什么问题,程序员
心里想:“这个软件居然可以这么用?”
如果用户说了怎么操作,那要解决问题比较好办,如果用户没说,只说出的问题,就麻烦了。软件中有很多隐藏的假设,比如假设用户会这样操作、假设
用户这个地方会输什么内容,一旦这些隐藏的假设被“不守规矩”的用户触碰到,就可能导致问题。
但软件总不可能把什么都考虑到,就如仓颉不能限制卖柚子的也玩汉字谐音,程序员在软件没加约束时也不能限制用户不能那么操作,所以为了避免出问
题,解决方法之一就加尽可能多需要的功能约束,之二就是遵循“契约编程”的道理,在每个方法、每个函数做约束,以便出问题时能知道问题所在。
简单的方法是可以这样:由于每个方法、每个函数对传入的参数都会有一些假定,可以把已知的假定直接写成代码约束,比如用Assert来要求某某参数
不能为空,同时给出违反约束时的提示。

歪说软件工程15 - 超人鲁班 - [原创]

话说一个工地上,许多人在忙着修一座拱桥,其中一个老头,每天不紧不忙地凿着一块石头,凿得方不方、圆不圆、长不长、扁不扁,大家都以为别人认识他
,都没理他,他凿好后就扬长而去。桥快要竣工时,桥面中间出现了一个空隙,怎么努力也弄不来一个合适的石头,有人想起那个陌生老头凿的石头,把它
搬来,结果严丝合缝。那个老头就是鲁班。
古代的拱桥都不太长,鲁班不画工程图也能把它修好,但如果请他来修旧金山金门大桥,估计他也得先学好几何学和力学。软件工程也有很多学问,下文摘
抄Martin Fowler在《企业应用架构模式》中的一段话:
“即使你对极限编程[Beck XP]不感兴趣,你还是应该认真地思考三个方面的技术实践:持续集成[Flower CI]、测试驱动的开发[Back TDD]和重构
[Fowler Refactoring]。这些技术虽然不是万能的灵丹妙药,但它们能够帮助你在需要的时候更容易地改变你的系统。除非你比迄今为止我见过的人
更能干或更走运。”

歪说软件工程14 - 李宇春 - [原创]
话说李宇春成名后代言的广告不少,可以被轻轻地总结一下。
老Y所知的大概有三种:食品、手机、电脑,第一种显然是消耗品,手机基本上也已经成为消耗品,商业社会的魔力就是能把技术转化为商品并以时尚
的名义销售,消费者既消费实用又消费时尚,但产品会在购买后一年后价值降低到原来的一半或更低,电脑也是这样,所以也可以说是消耗品。
老Y一朋友,家里做批发生意,98年开始用管家婆软件,用到现在没做升级,当然店面和店员也没什么变化。许多商品软件都是耐用品,当然消耗品的
也多,比如售价<1000元的各种游戏,许多人买了用不久就会去买新的,而购买售价>1000元的商业软件大多数消费者还是很慎重的,因为使用后如需
更换还要付出额外的成本。
作为耐用品的商业软件,其广告代言人,从各种广告可以看出,大都选择老成持重的。

歪说软件工程13 - 树 - [原创]
    摘要:话说山上的树长得高低不齐,高大的树都有高大的主干,如果是千年老树,则主干更尤庞大;许多低矮的灌木则到处都是枝桠,看
    不出哪儿是主干。 软件的生长理应如能长高的树,而不是低矮灌木。树木从地底下长出来,先只有一片叶,一小枝,而后成两片叶,枝
    叶自己生长的同时,主干也不断生长。 而许多软件都生长成低矮灌木,因为主干没有生长,即生长的过程中没有不断积累并形成自己的技术基础。    (全文共205字)——点击此处阅读全文

歪说软件工程12 - 浪漫的事 - [原创]
话说IBM向开放源码社区贡献了一个Java集成开发环境“Eclipse”,这个原来没没什么名气的IDE,现在已经成为一统Java开发工具江山的开放平台,
IBM收购的Rational商业开发工具体系已经全部迁移到Eclipse中,Borland的Java开发工具体系也在逐渐迁移,做Java的Sun原来也做有自己的IDE,
现在基本上放弃自己做了。
“Eclipse”是日蚀的意思,不过这个项目现在确实有遮住“太阳”(Sun)光辉的趋势。中国人想象“月蚀”是天狗把月亮吃了,这是一件很浪漫的事情,
开放源码也是一件很浪漫的事情,“天下为公,各尽所能,各取所需”,不过,开发的东西要能确实可用、实用,而不只是一种玩具,却一点也不浪漫,
同样要一行行代码地编写,一行行代码地测试。
Eclipse的所有源代码都可以在其网站上下载到,下面是3.1版本一些不完全统计数据:
   开发目录 708M;
  目录个数 1.4万;
  文件个数 5.2万;
   Java源程序文件个数 3.5万,共199M,代码行数592万;
  其中JUnit测试代码文件个数 1.3万,共40M,代码行数119万;
   文档 *.htm 个数 0.36万,共45.9M;
  文档*.ppt; *.doc; *.swf 个数 33个,共17.4M。

歪说软件工程11 - 池鱼 - [原创]
话说小池塘里只养了一种鱼,冬去春来,春来冬去,鱼儿不停地生殖繁衍,看着一群群小鱼儿长大,然后又会有新的一群,但尽管没有人捕捞,
鱼儿从来没有把小池塘填满过。
鱼妈妈会一边生小鱼,一边把自己的小孩吃掉。简单的自然生态自己维护着自己的平衡。
软件市场也是一个自然生态系统,微软再大,它也不会吃掉所有市场,自己长满整个池塘。

歪说软件工程10 - 红绿灯 - [原创]
话说比较早的时候街上的红绿灯很简单,一个方向红的时候一个方向绿,每隔60秒交替变化。这时用简单的定时模拟电路控制就可以了,而且
通过电阻电容的调整也能调整变化间隔。
后来觉得这样很不人性化,用户界面不好,让行人干等不好,应该加一个数字计时器,显示还剩下的需要等待秒数。这时用模拟电路的架构就不行了,
必须用数字电路,需求变化第一次导致架构变化。
许多路口,由于两个方向的流量不一样,导致需要两个方向的灯亮的时间不一样,比如一个90秒,一个30秒,这时要求红绿灯能进行设置。对数字电
路架构添加这种功能不是很难。
再后来,由于许多路口的流量变化很大,要求红绿灯能智能控制,于是安装了摄像头监控流量,与红绿灯一起跟监控中心联网……,就是所谓的智能交通。
需求总是变化的,其中许多是由竞争对手而不是用户驱动的;许多需求导致产品架构变化,代价通常是很大的。

歪说软件工程9 - 比基尼 - [原创]
    摘要:话说老Y从乡下来到迷人的夏威夷海滩,看到满眼的比基尼泳装,甚是不习惯,心里想到:“比基尼展示了令人感兴趣的部分,但却隐藏了关
    键的部分”。 许多竞争对手的产品在它们的技术白皮书中展示了许多技术特性,许多业界领先的观念得到了怎么样的贯彻与实现,甚是诱人,具体
    研究,有些果然如此,但不知道它是怎么做的,当然,这些就是被隐藏的关键,只有努力深入研究才能搞清楚。   

歪说软件工程8 - 鲨鱼与天蚕 - [原创]
话说海里的鲨鱼可以闻到1公里之外的血腥;陆上的雄天蚕能够感知到4公里外正在求偶的天蚕雄蛾的存在。
离圣诞还有很多天,街上已经布满圣诞的味道,到处可见圣诞小屋和圣诞树。几十天后的圣诞商机是固定,似乎不需要去预测,但软件行业变化多端,
1年以后的商机已经很难预测,更不用说多年以后。
听闻大公司为了保持竞争力,而投入研发力量现在做未来的预测产品,许多东西做出来时可能没有意义,但等有意义时,哪怕只有1%的产品是成功的,
它也能因为遥遥领先对手而占尽先机。

歪说软件工程7 - 安静的迪吧 - [原创]
    摘要:话说老Y在震耳欲聋的迪吧中与群魔乱舞,他突然停止下来,在声音震动的浪涛之中,突然感受到一种宁静,于是在旁边坐下来,开始静
    静底地享受,好像自己与整个世界都已沉寂下来。 人都是因冷才知热,因热才知冷。老Y喜欢技术,时常把自己置身技术的不同领域,感受到
    许许多多的嘈杂,同时也在宁静中明白。 不论过程整体的RUP、XP、UML,还是架构和编码的OO、SOA、AOP、IOC,都是为了解决一个问题,
    即分工合作的问题,即不同的部门、不同的人、不同的代码,都能尽可能把自己擅长的事情做好,而不需要太多地管别人是怎么做的,但又能
    低成本地实现有效的沟通与合作,自己已经做好的事情别人不需要重新做。   

歪说软件工程6 - 思想生产力 - [原创]
话说丫丫生物公司发明了一种稻谷种子,既适合在水田播种、又适合在旱地播种,而且不怕任何病虫害、产量远高于已有产品,所以一段时间后全球都种
这种稻谷了,但缺德的是,这种稻谷种子是做了技术处理断子绝孙的,收割后的稻谷不能用于做种子,所以都只能不断地从这个公司购买种子,所以它已
富可敌球。
当然,这是没有发生的可能。但,垄断“种子”销售的商业模式早已成熟,具体到信息产业就是有各种卖“标准”的公司,这些公司在商业价值链的顶端,对
标准有独占的权力,其它人要用都要获得授权。
“标准”通常伴随着某种概念,概念是思想的产物,在软硬件行业,一个有价值的概念通常都能迅速地转化为商品,不管是芯片还是软件还是书籍。比如我
们耳熟能详的“B2B”、“UML”、“中间件”、“极限编程”等等,都已经是某种产业链的基础。
基本上没有中国人原创的能成为生产力的概念,许多东西等中国人明白过来,别人已经赚了很大一把了,不过也有努力跟进也很赚钱的,比如金蝶的中间
件、阿里巴巴的B2B。
可能中国人太忙了,没有时间思想。在思想能够迅即转化为生产力的社会,谁占据先机谁就将处于商业生态圈食物链的顶端。

歪说软件工程5 - “小燕子”性感写真 - [原创]
    摘要:话说昨晚当地八卦电视台八卦节目播出一则消息,瞪着两只白痴空洞的牛眼到处晃荡曾经看似清纯可爱的“小燕子现在长大了,也拍起了写真集,
    穿着性感内衣,把白花花的皮肤展示给大众。不管她展示的是内衣还是自己,给大众展示性感的目的是达到了。 这不能说是进步或者随大流,只是
    自然的成长,作为一个演艺公共人物,取悦大众是她要做的工作,毕竟大众的审美取向是多样的,朴素可爱可以取悦一部分人,性感迷人也许可以取
    悦更多的人。 作为软件工程产品的软件其所有功能最终通过软件界面为用户所用,如果一个软件刚开始一直坚持朴素的界面风格,后来也开始表现
    得或性感或妖艳,这也不能说是错误或者退步,只是自然的成长,毕竟软件是给用户用的,尤其是用户多的大众软件,用户对软件的认可许多时候也
    依赖于用户对软件界面的直观感受和审美取向。   

歪说软件工程4 - 光彩守护员 - [原创]
话说老Y每天上班都路过一座大桥,注意到桥上总有工作人员值班,起初都以为是守桥的,但想想也不对,如果是守桥的应该是荷枪实弹的武警才对,
后来有一天看到工作人员穿了一个马甲,背后有几个字“光彩守护员”。
这年头可能不怕阶级敌人炸桥,就怕小偷小摸偷装扮桥的许多价值不菲的灯具,小偷拆不走桥,拆灯具则容易。不管是怎样,修一座大桥,能创造一些
职业甚至行业是事实。
软件工程经过多年发展也创造了许多职业甚至行业。比如专业软件工程咨询师,以及咨询公司,专业测试员,以及专业搞测试外包的公司,都有活得
上好的。这个世界变化快,如果总以己之见度人,容易范坐井观天的错。

歪说软件工程3 - 成人纸尿布 - [原创]
    摘要:话说杨利伟乘神州5号上天时不能用马桶,是用的类似成人纸尿布的设备。 小孩带尿布是因为撒尿是不自觉的,但大人用尿布,对于没有
    经过特殊训练的普通人来说,不知道会是什么样的感觉,估计会很不爽快。 软件工程中也经常有“使用纸尿布”的行为。有时因为软件发布期限
    所限,只能采用一个临时的解决方案把需要解决的问题解决,由不得程序员用更多时间去实施更爽快的解决方案;程序员有时会因为暂时想不出
    更好的方法而采用临时的解决方案;或者确实因为水平所限,只能采用别人会觉得很不痛快的解决方案。 这些都没什么,都很正常。最不爽的
    是,当更痛快的解决方案可以用时,仍然由于种种原因——比如懒得用、或不敢用、或习惯了用老方法等等——而继续保持“使用纸尿布”。   

歪说软件工程2 - “SoSo”主义 - [原创]
话说小两口A婚后财务由老婆打理,老婆每天给老公10元零花钱,并且经常询问老公花钱的情况。这种叫“精细管理”;
小两口B,老婆每个月给老公300元零花钱,并告诉老公可以随便花,但规定花完就没有了。这种叫“粗放管理”;
小两口C,老婆把自己和老公的工资一起全部放到一个抽屉里,大家都可以随便取、随便花,当然花完就没有了,没花完的做为积蓄。这种叫“信任管理”;
软件工程中的管理模式也大抵超不出以上三种或其组合。
英文中有个词叫“SoSo”,福建方言中有个词发音类似“Shǎo Shào”的词,意思都是“马马虎虎”,即“tiger-tiger-horse-horse”。中国人有四种:
新加坡人、香港人、台湾人、大陆人,大陆人大都喜欢“马马虎虎”,或者说许多时候都只能马马虎虎、难得糊涂,或者说大都是“SoSo”主义者。
软件工程却希望做到像上文所述第一种的“精细管理”,这时就会与大陆人的“SoSo”主义冲突,故大陆软件公司搞软件工程成功很困难。
但是,其实“SoSo”主义是“和谐社会”的基础。

歪说软件工程1 - 科学沦为艺术 - [原创]
    摘要:话说某大学生美眉在妓院找了一个操作电脑的工作,以后她要不沦为妓女,要不总被认为是妓女。
     当软件工程作为科学遭遇实践,它要不沦为艺术,要不总被认为是艺术。 科学与艺术的相同在于都是人生产的;
     科学与艺术的区别在于,科学操纵人,而人操纵艺术。 当软件工程不是去操纵人,而是由人来操纵,结果就是软件工程还是管理的艺术。
     当科学沦为艺术或被认为是艺术,要不该怎么样就怎么样,要不原来怎么样以后还怎么样。  


只有注册用户登录后才能发表评论。


网站导航: