分析各种现有的隐喻:
1)工程隐喻
在各种隐喻中,建筑工程与软件开发的关系最为密切,这个隐喻与软件开发的相似之处最多,因此影响也最为深远。这个隐喻有四个要点:分解、分配、设计和阶段化。
分解是一种极为深刻的思想,将整个过程分为几个阶段,将整个任务分解为几个子任务,将系统分解为多个层次,多个模块,将需求划分为多个类型等等。这样的思路,是解决复杂问题的唯一正确的方法,一团乱麻的需求、任务、项目、设计,根本不可能成功。但是分解也意味着它最好第一次就划分正确,当任务被层层分解,变成了很多很多的子任务、模块、子模块、类的时候。你发现有一个子任务的分解有问题,修改的困难可能极为惊人,而软件开发,在第一次就划分正确的情况,几乎绝无仅有。
分配与分解一样,是工程隐喻所特有的,当一个需要完成的系统,已经被仔细的分解之后,分解的粒度会达到一个人能过独立完成的范围,然后根据现有的资源以及任务的前后依赖关系,合理的分配给各有不同能力和特长的人,没有这样的分配,项目同样会一片混乱,而这个隐喻还包含一种(支配关系),存在分配的人与被分配的人,层层分解的任务与层层分解的人力资源,使得整个项目成为一个严密的金字塔结构,而这样的结构,往往使得项目的应变能力与可能性,随着项目的扩大而缩小。
基于以上的两个要点,工程隐喻极为顺理成章的推出了这样一个结论:“必须严格的控制需求的变更,如果可能,将所有的变更都顶回去。”纯正的软件工程的思想中,任何需求的变更都是不受欢迎的。
设计极为重要,无论是对于建筑还是对于软件开发来说,都是这样。但是设计与设计不同,在建筑行业,不体现设计师理念的建筑,会被称为没有灵魂的“水泥块”。但是在软件开发里,如果开发人员老是想着往程序里加入自己的东西,会被称为过度设计。但是由于软件开发对于建筑工程的模仿,过度设计变得比比皆是。
在建筑工程中,有着极为清晰的阶段划分,分析、设计、施工、验收。最早的软件工程,就是完全模仿这样的阶段而执行的。这样的模仿,后果是严重的,因为这样的阶段不是软件开发的特征,强行套用,大多失败。随后的改进似乎总也跳不出这个思维模式,就像用无数的直线去拟合一条曲线,用N多个正方形去拼出一个圆形。比如说螺旋式开发,在一个螺旋中,还要搞出四个象限,使得软件开发的过程,不断的重走这四个阶段。但是,软件开发的过程,真的是像建筑工程一样吗?
2)流水线隐喻
产生式编程和MDA,是所有“银弹”承诺中,最为大胆的两种。如果有一天世界大同,万物升平,人间与天堂无异,那应该就是MDA的时代来临了。这两种思路的理论依据(如果这能称之为理论的话)何在呢?其实还是一个隐喻:流水线。当然他们不会直接用普通的流水线来做比喻,而是一种比现代工业中最为先进的柔性制造流水线还要先进的“超级无敌自定义流水线”。用户(对,就是最终用户)可以选择、定义并且画出那个“软件装配图”(UML之类的表示方法),就能直接组装出用户想要的软件。但是,这样的隐喻其实无法用于软件开发,甚至无法用于工业生产的大多数领域。在工业领域,大多数流水线 还是用来生产有限种类的产品,种类多到一定程度之后,流水线的效率根本无法体现。当然成本优势也无法体现。这还是一个零件的粒度问题,大粒度的零件组合,使得生产的可能种类减少,而小粒度的零件,又使得装配成本与效率无法体现,这样的两难,在软件开发上同样存在,而且更加严重,所以这颗子弹,不可能是“银弹”。
3)舞蹈隐喻
CMM本身不需要隐喻,它的理论基础来源于纯正的软件工程,所有软件工程有关的隐喻,CMM都用得上,但是CMM有它自身的特点,主要是在CMM的实施方面。我看到过一个关于CMM实施的隐喻:软件开发就像跳舞,软件过程改进就像是舞蹈编排,软件开发人员在过程改进专家的知道下,就像舞蹈演员在舞蹈编导的知道下,学习新的节奏、动作。最后开发出令消费者满意的软件产品。就像舞蹈演员为观众带来出色的表演。这样的隐喻,为一个巨大的咨询市场开辟了道路;最天才的舞蹈演员,也不能没有编导的知道,所以想要公司提高CMM等级,就必须找专家来做咨询,果然巧妙!但是这样的隐喻,却经不起推敲,舞蹈编排过程中,演员们排练的目标是达到编导的要求,如果演出的效果不好,自然由编导负责。但是软件开发过程的改进,如果也是为了博得咨询专家的满意,到时候软件开发出来不赚钱,那些专家可不会负责。他们早就赚到咨询费,走人了。关键问题在于,过程改进只能是一种手段,它本身不能成为目的,更不能想当然的认为,完美的过程就一定能带来完美的产品。舞蹈编导不是观众,没有一个编导敢保证自己的这次创作,一定能赢得观众的好评,但是为什么现在CMM专家,就敢作出这样的保证呢?当舞蹈演员在一个“三角形的舞台上”,完美的跌落的时候,谁会为这样的悲剧负责呢?
(未完待续)
分享到:
相关推荐
2. **手表 —— 乐曲** - 手表 → 时间 → 节奏 → 乐曲 3. **足球 —— 讲台** - 足球 → 比赛 → 观众 → 讲台 4. **树林 —— 电脑** - 树林 → 自然 → 环保 → 电脑 (环保材料) 5. **例子补充:** - **铅笔...
### 金融行业研究方法-6资产配置方法论系列之六:全球配置中如何管理汇率风险? #### 学术界:对汇率风险的解读以及管理尚无定论 **什么是汇率风险?** 汇率风险,通常指的是由于货币价值变动而对持有外币资产或...
物流学习探讨管理基本定论.doc
### 危险化学品安全措施和应急处置原则——一氧化碳 #### 重要警示 - **极易燃气体**:一氧化碳是一种极易燃气体,有毒,吸入过量可能导致缺氧致死。 - **物理特性**:无色、无味、无臭的气体。微溶于水,溶于乙醇...
争论并未得出定论,表明理论界对劳动价值论的理解和应用仍存在分歧,需要进一步的探讨和实践验证。 综上所述,劳动价值论作为马克思主义经济学的基础,其争论体现了理论与现实的互动,以及方法论在理论创新和经济...
在网络游戏虚拟财产侵权案件中,究竟是采用过错责任原则还是无过错责任原则,目前尚无定论,使得侵权责任的追究成为难题。 在国际范围内,不同国家对虚拟财产保护的法律规定和立法经验不尽相同。例如,美国、韩国和...
在探讨美的本质时,我们无法回避其与人类情感、价值判断及文化背景间的深层次联系。《初中文艺美学论文美的本质探讨》便是这样一篇深掘美的多维度的文章,它不仅尝试为美下定义,还试图描绘美的本质,以此作为对文艺...
尽管对其具体成因的研究一直未有定论,但2021年的一项研究成果意外地为逆转衰老提供了新的思路。 科学家们发现,这些士兵中有一部分人曾在战争中接触过某种药物——溴吡斯的明。按理来说,这种药物因为血脑屏障的...
对于致力于汉字研究的学者而言,这篇论文无疑提供了宝贵的研究资料和方法论启示。同时,对于一般读者来说,这同样是一次难得的学习机会,能够让我们更深入地认识和理解汉字背后的文化与历史。在汉字研究的领域内,每...
总之,关于夸克存在性的争议是一场跨越国际界限的科学辩论,它不仅涉及粒子物理学的基础理论,也触及了科学研究的方法论和哲学思考。这一争论展示了科学探索过程中的不确定性以及科学家们不断追求真理的精神。
煤表面官能团对CH4以及CO2吸附性能的影响已得到印证,但不同官能团类型对2种气体吸附行为的具体促进与阻碍作用以及影响因素尚未有定论。利用密度泛函理论,通过计算不同官能团化结构对CH4以及CO2的吸附能数据,揭示...
【学术论文研究报告框架的构建及其写作方法】 学术论文是学术界的重要组成部分,旨在传播新知识、新理论,推动学科发展。对于撰写者来说,理解学术论文的概念和特点至关重要。学术论文具有学术性、科学性、创造性及...
7. 社会调查教程和信息分析基础、方法及应用等书籍的引用,为图书馆学研究提供了方法论支持,强调了实证研究和信息处理技术在学术研究中的重要性。 总结来说,图书馆学论文参考文献的丰富性体现了研究的广泛性和...
甲烷二氧化碳重整制合成气是对甲烷、二氧化碳这2种温室气体资源化利用的有效途径。近年来,研究最多的领域是关于该反应催化剂的开发,其中镍基催化剂的研究最广泛。为了全面了解甲烷二氧化碳重整反应及镍基催化剂的...
关于人工智能刑法主体性的争论,既有否定论,也有肯定论。否定论认为人工智能无法成为刑法上的主体,因为它们缺乏独立的意志自由和刑法上的可归责性。而肯定论则认为,若智能机器人在程序范围外实施自主行为,就有...
背景:乳腺癌被认为是世界上最常见和最致命的女性癌症。... 方法:我们使用免疫组化方法评估了50例乳腺癌石蜡块中FOXC2和YKL-40的表达。 我们对患者进行了3年的随访,以评估连续治疗后的疾病复发率和生存
《新能源观》是赵宏图博士的一本著作,该书主要探讨了关于资源枯竭与有效需求不足的议题,尤其在新能源领域中的应用。书中的核心观点是对传统“资源枯竭论”的质疑,并提出资源供给的真正挑战在于如何经济且有效地...
首先,要探讨人工智能创作物的版权保护,就必须明确人工智能及其创作物的定义。人工智能是计算机科学的一个分支,它使机器或软件展现出智能化的特征。在音乐创作方面,人工智能需要通过算法来理解和掌握音阶、和声、...
煤层是典型的黏弹各向异性介质,将黏弹性和...Hz内是否随频率变化尚无定论,假设煤层Qs随频率线性减小,各阶槽波品质因子曲线低频部分差异很小,高频部分差异变大,当Qs减小到10时,槽波衰减系数随频率增长很快;对于三