`
number017
  • 浏览: 32238 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

程序员和建筑工人

阅读更多
不知哪时在哪里看到一个软件工程和建筑工程的对比...

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

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

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

JJ无语,但还是很坚持。

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

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

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

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

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


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

错,是superman

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


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

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


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


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


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

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


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

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

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


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

但是100万的软件项目就很难这么划分,因为其主要成本来自于软件开发,几乎纯是人力资源,项目管理:需求:概要设计:详细设计:编程:测试:实施等的比例和建筑业的比例差别太大,也很难划分出很明显的高低端.



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


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

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


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


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

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


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

引用

这种类比没有什么意思。

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

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

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


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

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

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

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


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

条件的优先级。

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

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

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

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


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

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

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


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

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

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

很头痛的一件事情,就是怎么把施工设计图,改成完工图。因为有不少地方都造错了。

相关推荐

    关于程序员的59条搞笑但却真实无比的编程语录

    语录6:“如果建筑工人像程序员写软件那样盖房子,那第一只飞来的啄木鸟就能毁掉人类文明。”(Gerald Weinberg) 这条语录表明了编程是一项需要细心和周到的工作,程序员需要具备这种技能和责任感。 知识点7:技术...

    Builder2:建筑工人

    Builder2:建筑工人是一款基于C#编程语言开发的软件应用,其主要目标是提供一个高效、易用的工具集,帮助开发者和程序员构建和管理软件项目。C#是一种面向对象的编程语言,由微软公司推出,广泛应用于Windows平台以及...

    行业分类-设备装置-砌砖机器人T型墙体砌筑方法.zip

    在传统的人工砌筑过程中,T型墙体的构建需要精确的测量和复杂的砌砖技巧,耗时且对工人的技能要求高。而砌砖机器人通过精确的计算和自动化操作,能够准确快速地完成此类工作,大大提高了工作效率。 砌砖机器人采用...

    面向对象技术与应用讲义

    建筑工人负责具体的施工任务,而建筑师则是负责规划整个建筑的设计方案。类似地,在软件开发中,初级程序员可能更多地关注于编写代码,而高级工程师或架构师则需要考虑整个系统的架构设计,确保系统能够高效稳定地...

    自我认识与自我评价.doc

    这些因素在某些职业中至关重要,如运动员、建筑工人或医护人员,他们的工作往往需要良好的体能。 其次,职业能力倾向涉及个体的智力和专业技能。能力分为一般能力和特殊能力,一般能力涵盖基本的认知和问题解决能力...

    那些解释起来很蛋疼的IT工种- 我是做网站的.docx

    在家人眼中,程序员(或程序猿/程序媛)可能被误解为传统的工程师,比如建筑工人,或者是简单的电脑操作员。DBA(数据库管理员)可能会被误认为是仓库管理者,而网络设备技术支持则可能被认为是修电脑或电线的人。...

    降噪耳塞分类及使用.docx

    工人们在嘈杂环境中作业,如建筑工地或工厂,使用降噪耳塞能防止噪声导致的听力损失。此外,对于需要集中精神的工作者,如程序员或设计师,降噪耳塞可以帮助他们屏蔽外界干扰,提高工作效率。 总的来说,降噪耳塞的...

    工地上的恶作剧-flash原文件

    它可能包含各种工地元素,如建筑工人、机械设备、安全帽等,并通过Flash的动画功能来展现一系列趣味横生的情节。 总的来说,通过分析这个Flash原文件,我们可以学习到Flash动画的制作流程、ActionScript编程技巧,...

    1-2霍兰德职业代码索引[借鉴].pdf

    例如,会计、行政助理和程序员等。在软件开发中,他们是代码编写者、测试工程师或数据库管理员。 通过霍兰德职业代码,个人可以找到与自己兴趣相符的职业,例如,一个人的兴趣代码为RIA,那么他可能适合牙科技术员...

    自考劳动与社会保障笔记.doc

    体力劳动主要依靠身体力量,如建筑工人。 5. **劳动力资源**:劳动力资源是指一个地区或国家所有可用于工作的能力总和,包括实际在工作和有潜力工作的人口。 6. **经济活动人口(劳动力人口)**:这是指正在工作或...

    Practical UML

    在建设行业中,建筑师与建筑工人之间通过蓝图进行沟通,确保建筑物按照设计图纸准确无误地建造。同理,在软件开发中,UML就像蓝图一样,为整个团队提供了一种通用的语言,确保所有参与方对软件的设计有共同的理解。 ...

    基于YOLOv5 目标检测工地安全帽和禁入危险区域识别系统源码,附 YOLOv5 训练自己的数据集超详细教程

    在建筑工地上,安全帽佩戴和禁止进入危险区域是两个关键的安全规定。通过YOLOv5的目标检测技术,可以实时监控工人的安全帽佩戴情况,及时提醒未戴安全帽的工人。同时,系统还能识别并警告工人进入危险区域,提高工地...

    1进入省溧中-目标行动成功(高一8班).pptx

    而有远大目标的人,如第二个建筑工人,最终可能会成为设计师,因为他们始终瞄准更高的职位,不断积累经验和提升自我。 罗斯福总统夫人与萨尔洛夫将军的对话则强调了具体化目标的重要性。在IT领域,这意味着不仅要...

    易语言模块

    这就像在建筑工地上,各种已经预制好的模块化部件,可以让工人更快地搭建起一座大楼,而不需要从零开始一砖一瓦地堆砌。在软件开发中,这样的模块化编程大大提高了代码的复用性,减少了重复性劳动,使得开发者可以更...

    Ztree 资源包

    在IT行业中,"搬砖"常被程序员们戏谑地用来形容进行基础性、重复性的编码工作,就像建筑工人搬运砖块一样。这里将Ztree标记为"搬砖"可能是因为它提供了一种基础框架,使得开发者能够快速搭建和定制树形结构,简化了...

    2018年深圳市人力资源市场工资指导价位-深圳人社局-201809.pdf

    通过对制造业、建筑业、批发和零售业等众多行业的工资水平进行调研和统计,报告提供了详细的工资数据,帮助企业和求职者了解各行业的薪资水平。 **2. 经济类型工资指导价位** 根据企业的所有制形式不同,如国有...

    Screeps:Screeps`游戏中的教程以及更多内容!

    2. **单位类型**:游戏中有多种单位,如工人Creep、士兵Combat Creep、建筑工人Builder Creep等。每种单位都有特定的任务和行为模式,通过代码定制其行为。 3. **资源管理**:能量Energy是最基本的资源,用于创建和...

    screeps:Screeps 相关逻辑

    每个角色有特定的任务集合,如工人负责采集和运输,士兵负责防御和攻击,建筑师负责建造和升级。 2. **状态机**:为了实现复杂的决策逻辑,Creeps的行为往往通过状态机进行管理。例如,当Creep的能量满时,它可以...

Global site tag (gtag.js) - Google Analytics