这是以前写的一篇文章,当时就没有写完,一直保留在我自己的机器上,现在打算贴出来见人,也好激励我把它写完。
一、消除隐喻
1、隐喻
软件开发这件事情,出现得很晚。距今只有几十年的时间,关于它的定义,我们可以简单地说:“就是把软件做出来。” 这基本上等于什么都没有说。而软件开发究竟是怎么回事,大家也没有搞明白,于是隐喻就派上用场了。当你要向一个完全没有概念的朋友,解释什么是软件开发的时候,你无法向解释建筑工程那样把他带到现场去看——案件开发的现场,你的朋友会以为软件开发就是一群人坐在电脑前面打键盘——你只能打比方:它就像是造一幢楼,有基础,有结构,有可以使用的房间,在这之前必须要设计,最后一样要通过验收,最终用户就能够住进去——哦,不,是可以使用软件的各种功能。
这样,你用上了一个隐喻:软件开发就像建筑工程,或许极可以称之为软件工程。还有其它一些隐喻:比如手工作坊与软件工艺。我们不会说建筑工程就像什么什么,它们都有自己鲜明的特点,不需要通过像什么什么来解释。但是软件开发,还是太年轻,也缺乏鲜明的特征,只能借助隐喻,我们才能向人们解释它。在这条路上,很多人都已经走得太远,隐喻不但被用来向外行解释什么是软件开发,居然被用来说服自己人,软件开发就应该像那个比喻的对象一样,具有类似的规范、过程、特征以及方法论。但是,比喻只能是比喻。软件开发的方法论,只应该从软件开发的本质推导出来,而不是从一些隐喻里抄袭过来。
2、另一个隐喻
佛教有一种说法:“佛法不过是一条渡船,过河之后,你就不再需要它了。”寻求软件开发的本质,也许还是需要隐喻的帮助,只是这些船能不能把你带到彼岸,要仔细辨别。
设想这样一个场景:在公安局的一个办公室里,你的对面坐着一个目击证人,而你是一个犯罪肖像画家。这个证人在讲述他还记得的罪犯特征,你一边提问,一边在纸上沙沙的画着。一开始的提问与回答总是很概要性的。“圆脸”“不,很瘦的长脸”;“戴眼镜?”“是的”。在纸上出现了大致的轮廓之后,对话变得比较琐碎,“眼睛再小一点?”“鼻子比这个大一些。”渐渐的,证人的话越来越少,而且不断地端详着纸上的那个人,而你还在做一些细小的修正。突然,证人激动地大叫起来:“就是他!就是这个人……”于是,你的任务完成了!
这个过程像不像软件开发呢?有人也许会说,嗯,软件开发就是这样的。不!其实软件开发,并不是这样的,它应该是这样的……
你的朋友,晚上到你家来了。“我昨天晚上做了一个梦,梦见了我这辈子见过的最美的女孩,你帮我把她画出来吧。”“她的脸是……”在一段又一段如梦如幻的描述之后,你开始画起来,过程与前面有点类似,但是,似乎你的朋友没有停下来的迹象,他不断的要求你改进,希望这个她能够更加完美。终于,他放弃了:“就这样吧,虽然不是她,但是已经很像了。”你长吁了一口气,但是,你的朋友疯了,他恳求你把这个女孩变成一个活人,能跑能跳,能够跟他交流,而且还能够爱上他。没想到,其实你不是人,而是上帝,而且你大发慈悲,竟然真的满足了他的要求。终于,他满意地回去了。但是,几天之后,他又来了,他居然因为还不够满足,又来了!“上帝,”他恳求道,“你能不能够帮我把她改一下,当我……”随后的日子里,他不断地找到你,要求你再完善完善他的女人。直到有一天,你发了一道闪电,劈死了这个贪得无厌的家伙。
不不,最后这一幕没有出现,因为根据软件开发及维护合同,你不能劈死你的客户!(我敢打赌,是个程序员,就想过这么干。)如果这个合同签得不够好,他真的有可能向你提任何要求。
3、消除隐喻
这个隐喻怎么样?这是对软件开发过程的一个好的描述吗?不,它还不够好,而且我们不可能通过修正完善这个隐喻,来得到一个对软件开发的准确的描述。事实上,所有的隐喻都不够好,都会扭曲软件开发过程的真相,都会使我们对软件开发的过程产生误解。
为什么会这样呢?为什么一个挺像软件开发的隐喻会最终误导我们呢?原因在于一个隐喻是一个完整的场景,这个场景中有很多相互交织的“概念要素”。当这些要素有很多在软件开发中出现时,我们就会认为这个隐喻很贴切,而当一个隐喻越是贴切时,这个隐喻中的其他一些在软件开发中不存在的要素,或者与软件开发相矛盾的要素,就会打扰我们的分析,干扰我们的判断。使得我们不再思考软件开发本身,而是将思考建立在某个隐喻的场景中。这样思考得到的结果,肯定存在着误导的可能。再由于不同的隐喻互不相容——你无法想象一群工匠去建设现代化的高楼大厦,他们最多只能造些平房——因此,建立在各种隐喻基础上的软件开发,至今没有找到适合自己的方法论,倒是不同的隐喻之间互相打得火热。
(未完待续)
分享到:
相关推荐
1. **面包 —— 轮船** - 面包 → 食物 → 旅行 → 轮船 2. **手表 —— 乐曲** - 手表 → 时间 → 节奏 → 乐曲 3. **足球 —— 讲台** - 足球 → 比赛 → 观众 → 讲台 4. **树林 —— 电脑** - 树林 → 自然 ...
### 金融行业研究方法-6资产配置方法论系列之六:全球配置中如何管理汇率风险? #### 学术界:对汇率风险的解读以及管理尚无定论 **什么是汇率风险?** 汇率风险,通常指的是由于货币价值变动而对持有外币资产或...
物流学习探讨管理基本定论.doc
争论并未得出定论,表明理论界对劳动价值论的理解和应用仍存在分歧,需要进一步的探讨和实践验证。 综上所述,劳动价值论作为马克思主义经济学的基础,其争论体现了理论与现实的互动,以及方法论在理论创新和经济...
### 危险化学品安全措施和应急处置原则——一氧化碳 #### 重要警示 - **极易燃气体**:一氧化碳是一种极易燃气体,有毒,吸入过量可能导致缺氧致死。 - **物理特性**:无色、无味、无臭的气体。微溶于水,溶于乙醇...
在网络游戏虚拟财产侵权案件中,究竟是采用过错责任原则还是无过错责任原则,目前尚无定论,使得侵权责任的追究成为难题。 在国际范围内,不同国家对虚拟财产保护的法律规定和立法经验不尽相同。例如,美国、韩国和...
总之,关于夸克存在性的争议是一场跨越国际界限的科学辩论,它不仅涉及粒子物理学的基础理论,也触及了科学研究的方法论和哲学思考。这一争论展示了科学探索过程中的不确定性以及科学家们不断追求真理的精神。
超导研究领域近来迎来了一场激烈的讨论,源于韩国团队宣布的一项潜在的颠覆性发现——室温超导材料LK-99。这一消息如同一颗炸弹,迅速引发了全球科研界的广泛关注。然而,随后的论文发表揭示了一些令人困惑的数据,...
【学术论文研究报告框架的构建及其写作方法】 学术论文是学术界的重要组成部分,旨在传播新知识、新理论,推动学科发展。对于撰写者来说,理解学术论文的概念和特点至关重要。学术论文具有学术性、科学性、创造性及...
总结来说,本研究通过组织芯片结合免疫组织化学技术,系统地分析了HIF-1α和DEC1在胃癌组织中的表达情况,并探讨了它们与胃癌发生发展和转移的关系。这为理解胃癌的分子机制提供了新的视角,并可能为胃癌的治疗和...
7. 社会调查教程和信息分析基础、方法及应用等书籍的引用,为图书馆学研究提供了方法论支持,强调了实证研究和信息处理技术在学术研究中的重要性。 总结来说,图书馆学论文参考文献的丰富性体现了研究的广泛性和...
关于人工智能刑法主体性的争论,既有否定论,也有肯定论。否定论认为人工智能无法成为刑法上的主体,因为它们缺乏独立的意志自由和刑法上的可归责性。而肯定论则认为,若智能机器人在程序范围外实施自主行为,就有...
近年来,研究最多的领域是关于该反应催化剂的开发,其中镍基催化剂的研究最广泛。为了全面了解甲烷二氧化碳重整反应及镍基催化剂的应用,介绍了甲烷二氧化碳重整反应的热力学研究及机理;分析了镍基催化剂的积碳原因...
《神犬探长——《狐狸冤案》》是一本引人入胜的儿童侦探小说,以其生动的角色和富有教育意义的故事赢得了读者的喜爱。书中的主角,神犬探长,是一位聪明勇敢、公正无私的侦探形象,他的存在不仅激发了孩子们对侦探...
煤表面官能团对CH4以及CO2吸附性能的影响已得到印证,但不同官能团类型对2种气体吸附行为的具体促进与阻碍作用以及影响因素尚未有定论。利用密度泛函理论,通过计算不同官能团化结构对CH4以及CO2的吸附能数据,揭示...
《新能源观》是赵宏图博士的一本著作,该书主要探讨了关于资源枯竭与有效需求不足的议题,尤其在新能源领域中的应用。书中的核心观点是对传统“资源枯竭论”的质疑,并提出资源供给的真正挑战在于如何经济且有效地...
煤层是典型的黏弹各向异性介质,将黏弹性和...Hz内是否随频率变化尚无定论,假设煤层Qs随频率线性减小,各阶槽波品质因子曲线低频部分差异很小,高频部分差异变大,当Qs减小到10时,槽波衰减系数随频率增长很快;对于三
YKL-40被称为几丁质酶-3-like-1,属于哺乳动物蛋白家族,其氨基酸序列与18-糖基水解酶细菌几丁质酶组相似。 最近的研究发现,YKL-40异常在各种器官的癌症中表达升高,因此它可用作乳腺癌患者的近期预后生物标志物。...
首先,要探讨人工智能创作物的版权保护,就必须明确人工智能及其创作物的定义。人工智能是计算机科学的一个分支,它使机器或软件展现出智能化的特征。在音乐创作方面,人工智能需要通过算法来理解和掌握音阶、和声、...
学术论文的特性包括创造性(独创性或创新性)、学术性(运用科学原理进行论证)、理论性(深入探讨)和规范性(遵循写作规范)。撰写论文时,作者需要收集一手资料、他人研究成果、相关学科资料及权威证明等。同时,...