2006-10-16

程序员和建筑工人

关键字: 软件工程
不知哪时在哪里看到一个软件工程和建筑工程的对比...

前日吃饭的时候无聊,便提到这个:"你看,对面那栋漂亮的楼房。把他们建起来的是一群建筑工人,有些甚至被我们称为民工(这里,无歧视);而我们做软件的,大多受过高等教育,甚至很多被成为精英,为什么还把软件搞得这么糟糕。自从1968年软件危机第一次被提出以来,还长期存在。这是为什么呢?"

旁边的JJ说话了:"因为建筑师叫那些民工怎么做,他们就怎么做。而大多数软件开发人员都很有个性、很有想法,所以困难重重。"

偶抬杠:"这么说,去招一批民工来做软件,就可以解决这个问题?"

JJ无语,但还是很坚持。

旁边的猥琐男见状,正是提出自己高论的好时机:"这说明了建筑工程发展得很好了,而软件工程还没到达那个境界。这是一个长期、持续、抗争的过程,不过有一天会好起来的。"

嗯...科学的乐观主义者,他还在想着银弹。

偶想想,一位大师上课的时候说过:"软件本身是技术,但带着与生俱来的艺术性。"很多东西具有两面性,可以拿摄影来对比:一般人认为摄影是艺术,但它带有与生俱来的技术性。这大概不算矛盾,但却是统一体。

大师的回答着实很能回到这个问题:艺术能有完美的吗?所以软件也不能。你可以把软件的一面--技术做得很好,用很合理的技术,高超的算法;但是你永远不能把软件的另外一面--艺术做到极致。难道这就是传说中的哲学?

Oh,My God!!!我怎么会提起哲学?
评论
chengren 2006-10-26
hurricane1026 写道
chengren 写道
抛出异常的爱 写道
chengren 写道
现在的问题是很多领导不去承担他们本应该承担的责任。。。
传说这是体制造成的,我不知道。。。
传说....能力越强责任越大


LP,出来看蜘蛛侠啊。。。

错,是superman

好像是包租公吧,hohoho。。。
chengren 2006-10-26
抛出异常的爱 写道
chengren 写道
现在的问题是很多领导不去承担他们本应该承担的责任。。。
传说这是体制造成的,我不知道。。。
传说....能力越强责任越大


LP,出来看蜘蛛侠啊。。。
抛出异常的爱 2006-10-25
chengren 写道
现在的问题是很多领导不去承担他们本应该承担的责任。。。
传说这是体制造成的,我不知道。。。
传说....能力越强责任越大
chengren 2006-10-25
现在的问题是很多领导不去承担他们本应该承担的责任。。。
传说这是体制造成的,我不知道。。。
抛出异常的爱 2006-10-25
hurricane1026 写道
number017 写道
chengren 写道
朱兰告诉我们说,在所发生的质量问题中,追究其原因,只有20%来自基层操作人员,而恰恰有80%的质量问题是由于领导责任所引起的。

同志们,我们为什么非要抓住20%不放呢?


这个理论有意思。不过,领导80%里面应该有不少是基层操作人员所致的吧。


管理是干什么吃的,就是要你去管理别人要让别人发挥出成效,如果底下人发挥不出成效,还和你管理者无关的话,这样的领导者还真是个高薪养老的岗位勒。难怪大家都争着转管理。


如果听说过干多错多
你就不会这么想了
底下的人把所有的可出问题地方推到领导的面前....
chengren 2006-10-25
管理人员设置了工作流程和体系,掌握了公司的大多的资源调配的权力(还拿着高高在上的工资)让他们负责任当然是应该的了,不过事实往往正好相反罢了,往往由下面承担上面的失败。。。
number017 2006-10-24
chengren 写道
朱兰告诉我们说,在所发生的质量问题中,追究其原因,只有20%来自基层操作人员,而恰恰有80%的质量问题是由于领导责任所引起的。

同志们,我们为什么非要抓住20%不放呢?


这个理论有意思。不过,领导80%里面应该有不少是基层操作人员所致的吧。
ddd 2006-10-18
怎么没有人在网上搜索一堆关于建筑的帖子了呢?:)这可是跑题的好机会啊。
number017 2006-10-18
哈.看到ROBBIN'S BLOG上的"驳****"
其实我本意不是想讨论建筑怎样怎样,而事实上我对这方面也知之甚少...只是想借助一个东西来说明软件的艺术性而已,没想就被建筑的美丽的外表所蒙蔽。哈
说说我的观点:
软件的艺术性体现
1.需求无法被描述到极致,只能说是逼近。而且,其结果也无法被彻底测试和确认。(大概建筑中,水泥沙石的比例都有了吧,而且各种比例的应用情况还不同,所以就有一个这样的规范,至于验收,是否有规范我就不太了解。举一个知道的例子,装修中的甲醛含量超标,有一个明确的规定多少超标;而在软件中,我们便没有看到这次操作多少时间内完成是合格的。)
2.软件开发过程中,依赖个人经验和技术的局面没有得到很好的改观。(相信大家都会了解这点)
3.对于给定的需求,往往没有"最佳"解决方案。(看看JAVA世界的这么多FRAMEWORK就知道)
chengren 2006-10-18
朱兰告诉我们说,在所发生的质量问题中,追究其原因,只有20%来自基层操作人员,而恰恰有80%的质量问题是由于领导责任所引起的。

同志们,我们为什么非要抓住20%不放呢?
clamp 2006-10-18
我觉得从生产过程而言,软件业和建筑业都是以项目为基本操作模式的,因此有其共通性,但是由于其成本组成比例的差异导致管理模式的差异.

就项目复杂度而言,我觉得100万的软件项目的复杂度和1000万的建筑项目的复杂度比较接近(纯为感觉,无数据支撑).在合理的人员结构和合格的人员配备情况下,往往都是大问题没有,小问题一堆.


但是从成本的组成来说,1000万的建筑项目主要是按照主要材料\机械\人工等进行划分,同时按比例提取固定的项目管理费\设计费\监理费\不可预见费等等(这些加起来在10%左右).成本的分配是比较合理的,正常情况高低端人力都可以得到比较充分的利用,其中高端人员的准入门槛比较高.

但是100万的软件项目就很难这么划分,因为其主要成本来自于软件开发,几乎纯是人力资源,项目管理:需求:概要设计:详细设计:编程:测试:实施等的比例和建筑业的比例差别太大,也很难划分出很明显的高低端.
hussarch 2006-10-18
提起建筑和软件。我想到在90年代初的建筑队到现在的建筑公司。那个时候的建筑队找到几十个人,不管我有没有建筑资格和水平,有工程就上,什么设计图纸、工程预算等一概也没有。那个时候无论哪个乡都有个建筑队,这些建筑队大部分承包一些小工程,为那些请不起规范的公司来做的甲方工作。竞争相当的激烈。这样刚发展的行业里没有什么规范和健全的法律来保障工人的生成安全,而且工人的工资也很低。后来经过发展和法律制度的健全,许多小建筑队和建筑公司破产、被吞并,或是壮大。
现在软件公司多么像以前的建筑队,大大小小的,多的难以统计。这些小公司开发的时候相当的不规范:一切为了就进度。小公司利润很小,人力资源也相当的有限。发展也相当的艰难。
当然我想这样的小公司消失的可能性不太大,他们的命运不同于缺乏技术含量的建筑队,但是我想会越来越规范和合理。
行为艺术家 2006-10-17
wolfsquare 写道
抛出异常的爱 写道
行为艺术家 写道
楼上的,"软件出错,就要罚钱"不可定量,可执行性不高.


在很久以前去一家公司面试好像叫QA经理
好似是奖金由从程序员的奖金中扣出来....
好可怕

阶级矛盾不可调和...
能否告诉那家公司的名字?


对对,赶快说出,不方便的说出地点也行,免得道友上当受骗.太恐怖了!
wolfsquare 2006-10-17
抛出异常的爱 写道
行为艺术家 写道
楼上的,"软件出错,就要罚钱"不可定量,可执行性不高.


在很久以前去一家公司面试好像叫QA经理
好似是奖金由从程序员的奖金中扣出来....
好可怕

阶级矛盾不可调和...
能否告诉那家公司的名字?
抛出异常的爱 2006-10-17
行为艺术家 写道
楼上的,"软件出错,就要罚钱"不可定量,可执行性不高.


在很久以前去一家公司面试好像叫QA经理
好似是奖金由从程序员的奖金中扣出来....
好可怕

引用

这种类比没有什么意思。

你怎么知道一个外表看起来很漂亮的building,里面就不是充满各种各样问题的呢?现在豆腐渣工程,盖的很糟糕的小区比比皆是。买房子一不小心买到质量残次的楼盘,然后打官司的,你随便找到房产论坛去看看吧,多到令你吃惊的地步。

开发软件也是一样的,你让美工做个漂亮的首页,然后给客户demo一下,唬的客户眼花缭乱的,那还不是小意思的事情吗?他怎么可能知道你里面的代码全部都是垃圾?

楼房,你不搬到里面住个几年,就光在外面看着光鲜,贸贸然下定论,说这个building有多好多好,就和你给客户demo一下,那都是一个意思。所不同的地方在于,楼房要盖好了才能demo,但是软件只要美工做几个页面就可以demo了,所以楼房不会离谱的太狠而已。


作建筑有个监理公司主要(按标准来)平衡各方关系与进度质量
作软件很少用监理所以(标准也少)软件的进度与质量差别天差地别

无规矩不成方圆
有利则私
所以软件工程学的发展还在初级阶段
number017 2006-10-17
robbin 写道

那只不过因为你从来不关心楼盘,估计也没有自己买房子住,所以才有这种错觉。

软件中糟糕的比例并不比楼盘中的糟糕比例高,你见过没有问题的楼盘吗?不信你去房产论坛泡泡看,连那些获奖的楼盘,照样在论坛被业主痛批,我就没见过没有问题的楼盘。


哈。或许这个对比不太恰当,但我想讨论的并不是楼盘如何
Lucas Lee 2006-10-17
buaawhl 写道

条件的优先级。

用一个规则定义。
老实,优先级 10
听话,优先级 20

如果优先级,就用第一个条件。

需求矛盾,程序员要提出来,帮助客户理解需求。

100% 质量无法保证的。只能无限接近。


我看再复杂一点就可以用“规则引擎”来动态计算了,主人可以远程将规则录入...
凝血神抓 2006-10-17
尽扯蛋
BirdGu 2006-10-17
建造房子的过程是一个建筑材料的物理和化学变化的过程。起支配作用的是建筑材料的物理和化学性质,以及相关的物理,化学定律。

软件开发本质上是个认知过程。要理解用户的需求,然后教会计算机去实现用户的需求。这是一个知识的获取,加工和转化的过程。

这两个完全不同的过程怎么能放在一起比较呢?
庄表伟 2006-10-17
robbin 写道
引用
我用这个类比的意思是,在我们看来,软件所存在的问题要比建筑来得多,来得不可救药...而不是仅仅说外表。
现实是,软件中糟糕的软件的比例要比建筑中的"豆腐渣工程"的比例来得高,在我看来是高很多,虽然没有准确的。记得某某人说过"要是这个世界是由程序员制造出来的,那么它将不可居住!"


那只不过因为你从来不关心楼盘,估计也没有自己买房子住,所以才有这种错觉。

软件中糟糕的比例并不比楼盘中的糟糕比例高,你见过没有问题的楼盘吗?不信你去房产论坛泡泡看,连那些获奖的楼盘,照样在论坛被业主痛批,我就没见过没有问题的楼盘。
我爸就是搞建筑的,他们的惯例是,在施工前有一个设计图。

但是,在施工结束后,有一个完工图。

很头痛的一件事情,就是怎么把施工设计图,改成完工图。因为有不少地方都造错了。
number017
搜索本博客
博客分类
存档
最新评论