跳到主要内容

保存的帖子

打个比方

Dave Nicolette |龙头
戴夫尼科尔特 高级顾问
阅读: 打个比方


通信软件

隐喻在技术领域广泛使用。我对他们的一些基本问题思考,例如:

  • 什么是隐喻
  • 什么是比喻
  • 如何隐喻是否有助于了解不熟悉的概念?
  • 是什么价值隐喻在人类交际中的作用?
  • 是什么限制风险隐喻?
  • 隐喻已经成为定义术语
  • 人们可能已经忘记了隐喻并不是定义术语
  • 什么新的隐喻已被用来描述新兴技术和能力?
  • 多少重量我们应该提供隐喻,以帮助我们了解技术和能力(新或旧的)吗?

什么是隐喻?

根据维基百科

隐喻是指为了达到修辞效果而通过提及另一事物来直接指代某一事物的一种修辞手法。它可能使两种观点之间的相似性变得清晰或明显。

根据梅里亚姆-韦伯斯特

一个词的演讲,其中字样表示一种物体或想法的词或短语来代替另一个,以建议它们之间的相似或类似(如溺水);广泛:比喻语言

并且每件事免费的字典

一种言语的言论,其中通常指定一件事的单词或短语用于指定另一件事,从而制作隐含的比较,如“一个麻烦的海洋”或“所有世界的舞台”(莎士比亚)。

您可以像我一样轻松地在线找到定义。它和饼一样简单......这是一个介质,而不是隐喻。

隐喻不是什么?

关于什么是隐喻,可能有不同的观点,但有一件事明确如晶体:隐喻是从字面上说到了它描述的东西。隐喻通常捕捉到一件事的一些突出方面,但从未全面或明确地定义或描述了这件事。真实的东西既越来越小,比描述了一个或另一个方面的隐喻。

吟呦诗人建议“全世界所有的阶段。”在松散,诗歌的意义上,人们可以说我们进入,玩我们的部件,退出。但阶段是世界上发生的许多事情不是在舞台上发生的。一个阶段是更多的而不是世界:一个聚焦的生活微观世界可以在那里以一种可控的方式展现出来,以一种不会在剧院之外发生的方式,这样我们就可以检查它,并试图理解它。我们的生活可能像演员扮演的角色,但只是在有限的程度上。事实上,我们越仔细地观察这个世界,它就越不像一个舞台。

隐喻是有意义的,但隐喻不是事情。相同的隐喻,有助于我们获得新主题的最初掌握,可以引导我们远远误认为是对那个主题的深刻理解,如果我们紧紧地靠着隐喻。

有趣的是,在软件领域,我们习惯性地使用一些流行语,就好像我们在谈论真实的事物一样,而实际上这些流行语只是一些隐喻。通常,通过隐喻了解事物的人似乎没有意识到他们在谈论隐喻,并相信他们对隐喻的熟悉实际上是对事物恰当而深刻的理解。

同样,人们可能会被引入歧途,以忽视、低估甚至破坏隐喻所代表的事物为代价来分析、扩展和完善隐喻。稍后我们将在“风险”的标题下进行详细讨论。

隐喻如何帮助理解?

比起形式化的抽象,人们更倾向于通过实例来学习,尤其是当他们试图对一个不熟悉的主题获得初步的理解时。一旦一个人对一个新概念有了大致的把握,他们就能够理解那些为这个主题提供更深理解的形式化抽象。

以量子隧道理论为例。粒子不字面上的“隧道”,通过能源“壁垒”的方式裸鼢鼠隧道通过污垢,但思考在那些方面可以帮助我们得到一个基本精神阿尔法粒子如何摆脱原子核的形象,或质子如何融合在一起在太阳的核心,尽管他们共同的电斥力。

用这个基本的心理意象武装起来(还有另一个比喻——“武装”——他们无处不在,就像瘟疫(这是,我们可以更容易地理解海森堡测不准原理,并开始用它来建立更广泛的量子现象心智模型:

Δ××Δp = h4π

沟通中隐喻的价值是多少?

隐喻为讨论复杂的话题提供了一种简便的方法。如果我们每次提到一个给定的主题都要用一段话,那么我们的对话就会显得呆板、无聊、令人困惑。

在讨论软件开发团队的递送能力时,我们可以说“速度”,每个人都知道我们的意思团队可以平均完成给定时间间隔的工作量,我们意思是,,

弗吉尼亚州= v + v02

软件开发中的“速度”并不意味着速度.这只是一个比喻。但在会话中使用的比“在给定的时间间隔平均完成的工作量的工作量更容易。

隐喻的局限性和风险是什么?

一种隐喻can serve as a useful mental hook (metaphor: there are no actual hooks in our brains) when we need to gain a basic understanding of an unfamiliar topic, but trouble ensues when we forget it’s a metaphor and start to think of it as the Thing it represents. We start to perfect the metaphor, extend it beyond its intended meaning, and gloss over (metaphor: we don’t apply gloss) aspects of the Thing that don’t quite line up with the metaphor itself. Once we start to do that, we lose track of the Thing.

考虑一个例子速度作为对软件开发团队所观察到的交付能力的比喻。许多人关注度量本身,而不是团队的交付能力。我们是否在计算功能?故事吗?故事点吗?任务吗?估计时间完成吗?别的吗?什么应该我们算不算?为什么速度没有增加?应该速度增加?似乎应该;这意味着团队正在改善吗?也许我们应该为速度设定一个目标,以帮助团队改善!我们应该规范组织中所有团队的大小和预测方法,以便我们可以向行政仪表板滚动速度。和......和......

在我的书中软件开发度量标准,我列出了每个指标的常见反模式。在游戏周围有更多的反模式速度比任何其他指标都要。为什么?我认为这是因为人们来思考速度作为一个真实的东西。在物理学中,这是真实的。在软件开发中,它只是一个隐喻。当我们忘记的那一刻,我们开始浪费时间和精力,专注于隐喻而不是事物。此时,隐喻的价值崩溃了。

隐喻已经成为定义术语

我们使用隐喻来描述软件领域的许多东西。在某些情况下,比喻已成为事物的名称。

  • 软件
  • 代码
  • 漏洞
  • scrum

我相信你们认识这些术语。它们指的是软件世界中不同的概念。我们甚至不能提到“软件世界”而不使用其中之一。

有一段时间没有“软件”这样的东西。人们通过列表编写计算机订单用于执行机器。随着更多的计算需求被放置在机器上,程序变得更加复杂。手工进入个别指示,它变得麻烦。

格蕾丝·霍珀(Grace Hopper)成为了第一批开发的人之一编译器.第一个是程序加载器,它可以将预先组装好的子程序组织成一个序列。一步一步地,一个编译器一个编译器,她和当时的其他人发现了设计健壮的编译器所必需的原则,这些编译器可以将人类可读的语句转换为机器可执行的语句。

这种新事物没有明确的名称。为了将程序与实体产品或“商品”区分开来,他们创造了这个术语软件.新词是一个不是“硬”洁具的隐喻。现在这个词是那个类别的定义术语。

这个词软件最初被视为贬义;不是为了骄傲。工程师不信任软件,并且宁愿将逻辑内置在物理产品中。Richard Battin,他领导了Apollo计划的惯性指导系统软件的开发,写道:

即使在本发明软件中,MIT仪器实验室也一直在为Apollo车载引导系统设计软件。我还记得第一次告诉我的妻子我负责“阿波罗软件”。她劝我:“请不要告诉任何朋友!”(在去月球的路上发生了一些有趣的事情, 1989)

也没有一个词来描述编写软件的人。当玛格丽特·汉密尔顿(Margaret Hamilton)被聘为阿波罗项目的“程序员”时,她和她的雇主都不完全清楚这个词意味着什么工作职责。在工作过程中,她赋予了这个词意义。

计算机以“对象”形式执行软件,但人类将其写入“源”表单中。调用软件的源形式代码.根据梅里亚姆-韦伯斯特这个词代码可以意味着:

1:一个法律组织的系统声明;特别是:一个给定的法定力量
2:一个原则或规则道德规则
图3A:用于通信的信号或符号系统
B:用于代表分配和经常秘密含义的符号(例如字母或数字)系统
C:编码语言:选择单词或短语代替另一个单词或短语,以便在不明确陈述它的情况下传达态度或意义
[...]
4:遗传密码
5:计算机的说明(如软件在软件内)编写新应用程序的代码

期限代码作为与软件相关的一个隐喻开始了生命,并已成为软件源代码的定义术语。随着汇编器和编译器的兴起,源代码和目标代码的结构和外观越来越不同。消息来源被视为代码在定义意义上3b:用于表示程序可读形式的人类可读符号(字母和数字)的系统。Merriam-Webster识别出来并将定义添加到列表中...结束。

在哪里软件,错误遵循。我们通常接受这个术语漏洞意思是软件中的某种缺陷。围绕这个词的争论往往集中在哪一种缺陷,或缺陷来自哪里, 要么修复它需要付出多大的努力可能是。但毫无疑问,“bug”就是“缺陷”。

但为什么“错误?”流行历史将“bug”这个词归功于格蕾丝·霍珀(Grace Hopper),她发现一只蛾子爱上了一台早期电子计算机中的继电器。

这不是这个词的起源。这是一个倾向于积累众所周知的人的神话之一,就像飞蛾到火焰(那是一个介质)。那里然而,蛾。字面上地。

蛾于1947年9月9日在马克二电脑中结束了它的生命。斗牛人是团队的领导者,但这不是她发现蛾的。Bill Burke是当时的计算机的运营商之一,用评论将飞蛾录制到日志预订中,“首先发现了错误的错误。”这是一张照片来自维基百科

注意伯克的措辞:他不是在创造一个新术语,他是在引用一个已经在使用的术语。事实上,如果你阅读历史,你会发现其他人在写作中使用了这个词(即使是1843年阿达·洛芙莱斯提到了查尔斯·巴贝奇的分析机,托马斯·爱迪生提到了1878年的灯泡),很明显,他们使用的是当时众所周知的术语。参考文献可以追溯到中世纪英语bugge,依然存在像这样的话棘手的难题和表达式BUG-A-BOO.甚至那么,这个词必须来自某处。它预测中英语。它在软件领域中使用相对近期,但尚未清晰。

一种scrum是橄榄球比赛的一部分。这项运动在许多国家都很有名,但在更多的国家却不为人所知。在称为Scrum的产品开发框架的环境中,每日scrum是一项活动,当团队成员触摸基础(隐喻:SCRUM中没有基础),以确保每个人都了解他们的项目发生的事情,并可以要求提供障碍的问题。但团队成员不会以橄榄球的克拉姆的方式纳入聚集在一起。

Scrum,因为它涉及软件开发,开始生活作为隐喻。它成为基于跨职能团队的产品开发框架的名称,以便在橄榄球队将球移动到现场的最佳职位上的跨职能的跨职能团队。隐喻来自1986年的哈佛商业审查文章,题为,亚博vip9通道新产品开发游戏,由Hirotaka Takeuchi和Ikujiro Nonaka。

这篇文章对名为Scrum的产品开发框架的开发产生了影响,Scrum是由Ken Schwaber、Jeff Sutherland等人在20世纪90年代早期创建的。今天,这不仅仅是一个比喻;它已经成为一个真实事物的名字——Scrum框架。但我们使用的大多数比喻(比喻:你不能随便扔一个词)都没有达到这个水平。

人们可能已经忘记的隐喻不是定义术语

并非所有Pinocchios都成为真正的男孩。那是一个隐喻这是指隐喻;一种元比喻。这是一个适当的方式来开始本节,软件领域的许多人认为他们的Pinocchios是真实的。这种信念可以引导他们专注于错误的事情,或者对任何事情都不是的东西。

我们如此频繁地使用术语,以至于我们很容易忘记哪些是定义术语,哪些只是隐喻。幸运的是,这里有一个提示:如果一个流行词的意思引起了很多争论或争论,很可能这个词的滑溜性(比喻:单词并不是字面上的滑溜)是因为它是对其他事物的隐喻。隐喻需要重新解释,因为它们不是按字面意思使用的。这是非常好的;隐喻没有要有一个明确的含义(这是一个比喻:文字没有法律权利)。

当你用它们时,你有意识地记得他们是隐喻,而不是真实的东西吗?你是否陷入了尝试完善或扩展隐喻的陷阱,以注意它代表的东西的成本?比喻这样的隐喻,例如:

  • 工程
  • 工艺
  • 债务
  • 遗产
  • 敏捷
  • 极端
  • 短跑
  • 速度
  • 动力,惯性
  • 自组织
  • 自我汇编

什么是软件开发?它是工程?它是工艺?它是建设?它是制造业?它是科学?它是文学?是完全不同的东西吗?是不是,也许,有时有点像这些东西,但不是其中的任何一个或全部?人们争论这个是因为他们在争论隐喻的意义,每个人都可以同时是“正确的”,因为隐喻不是它所代表的东西。

我们喜欢用“技术债务”这个词。我想知道有多少软件开发实践者意识到Ward Cunningham在解释金融行业中增量交付给客户的价值时创建了这个比喻。今天人们使用这个比喻的方式与它的初衷大相径庭,常常导致人们把时间浪费在错误的事情上,因为它根本不是“事物”,它只是一个比喻。人们投入了时间和精力去完善和扩展隐喻,而不是投入时间和精力去理解它的意图。

这个词遗产已经代表了在我们出现之前编写的软件设计的一些不好的地方。但这不是英语单词的意思,遗产.这只是一个比喻。现有软件系统的遗产可以很大程度上,它为其业主启用的有利可图的业务运营数十年,并且在更小的部分中,当代软件开发人员在后威尔发现可疑的软件设计的某些方面。亚博vip9通道但是,隐喻在软件专业人员之间进行负面内涵,并专注于隐喻而不是在物品上导致开发人员假设现有代码通常是较差的,无论是否真实。

敏捷是一组软件专业人员创造的术语,他们试图理解成功软件交付的公共元素,并在少量简洁的语句中描述这些元素。这个词让人联想到柔软、灵活的事物和人,比如农牧神和芭蕾舞女演员。它也与某种类型的训练狗比赛的名称不期而遇。这个比喻试图捕捉一些关键的想法,比如优雅地应对变化的能力,以及强调把事情做好而不是仅仅写下完成它们的意图。它已经被用来描述各种形式的方法和特定的团队实践,并且经常以一种与最初团队的意图相反的方式应用。为什么?人们关注的是隐喻而不是事物本身。

当我在写这篇文章的时候,Twitter上出现了一个及时的例子。这张照片和评论一起发布,“当你发现#敏捷在软件开发之外工作时。租赁单位还在建设中吗?#迭代# scrum”。

物业所有者或建筑工人在有意识地思考“敏捷”或故意使用Scrum产品开发框架的机会是什么?现场与“敏捷”,“迭代”或“Scrum”无关。这是扩展超出其预期含义的比喻的一个例子。这不是一个不寻常的情况。几乎所有的多户型结构都以这样的方式建立,即在最后一个单位完成之前可以占用第一个完成的单位。

极限编程(XP)在早期被描述为做“工作”的事情,然后将旋钮提高到10(比喻:在软件开发过程中没有旋钮)。但它确实描述了一种构建和交付软件解决方案的有效方法;它实际上并不是“极端的”。它包括已经被证明对构建软件有用和实用的实践。人们关注的是“极端”这个词,并假定良好的实践并不适合每个人。它们必须是困难的、费力的、神秘的和有压力的。否则,为什么他们会被称为“极端”?

来自Scrum框架,我们有一个隐喻短跑代表一个时间盒式开发迭代,其中一支团队预计将提供潜在的潜在的解决方案增量,或以否则为其目标提供可量化的进展。它不是字面上,因为这个词以普通英语使用。在一个真正的冲刺中,跑步者尽可能努力地推动尽可能快的速度,而且没有想到他或她穿过终点线后会发生什么。如果软件团队以这种方式运作,他们会很快燃烧。

我们已经提到过速度,这是从物理科学中借来的概念,在软件开发的环境中,它只是模糊地表示任何东西。在确定的方向上(朝着项目目标)会有某种进度感,但这与物理上的速度并不相同。甚至没有关闭。

条款动力惯性从自然科学中借鉴而来速度,也被广泛滥用。它们常被用来比喻一种可感知的性能趋势。“这支球队势头很好;如果他们能够保持他们的惯性,他们就可以在下一个Sprint中交付更多的故事点。”无稽之谈。

“敏捷”社区中最流行的术语之一是自组织.在《原则》一节中有提到敏捷宣言

最好的架构、需求和设计来自自组织的团队。

这是一个倾向于产生大量辩论的流行语。请记住,这是一个暗示,人们试图超越其原始含义可能是一个隐喻。

根据亚博vip9通道业务字典自组织意思是:

系统在适当的条件下,在没有外部代理的帮助下,以有目的(非随机)的方式自发地安排其组件或元素的能力。这就好像系统知道如何“做自己的事情”。“许多自然系统,如细胞、化合物、星系、有机体和行星都显示出这种特性。

根据Scrum,自我组织团队由外部机构——ScrumMaster指导。因此,即使在Scrum中出现了“自组织”,它也不是自组织

约瑟夫·佩林创造了这个词自我汇编隐喻那些没有以有意义的方式自我组织的团队。团队成员聚在一起工作,但他们不能成为一个有凝聚力的团队,也不能协作改进他们的实践。他们只是一组被管理层分配到同一个项目的人,可能是临时的。

Pelrine对自组织和自组装的区分很大程度上是人为的。他想要区分“真正的”团队和仅仅被贴上“团队”标签的工作团队。这是有意义的和有用的区分,但实际意义的术语自组织自我汇编几乎是一样的。

这是对分子自组装的描述美国国立卫生研究院文章:

自组装是一种过程,其中组件是单独的或链接的,自发形成有序的聚合。如果满足适当的条件,则可以在从分子到宏观的尺寸的组分发生自组装。虽然自组装中的大部分工作都集中在分子组件上,但自组装过程的许多最有趣的应用可以以较大的尺寸(纳米到微米)。

当我们使用这个术语时自我汇编参考软件开发团队,显然,我们不能以其字面意义意思。

出现了哪些新的隐喻?

新兴技术,如“云”和“微服务”和“东西互联网”引起了新的隐喻。这是五个:

  • 边缘
  • 转账

前四个是基于天气的隐喻。Michael J. Martin有一个在LinkedIn上写了一篇很棒的文章解释云、雾和薄雾的天气现象与软件概念的关系。边缘不是不同的。

的隐喻主要与物联网(IoT)相关。它们描述的体系结构中,计算能力在不同程度上是分散的,以使可编程的“事物”能够自动操作并相互交互,而无需通过一个中心集线器路由所有消息的开销。这些隐喻暗示了用于此类解决方案的体系结构模式的不同方面,包括集中式、分布式和联合式。

网络边缘的设备必须与现实世界对象交换数据。否则,他们不会很多使用。期限转账已从生物学领域借用以描述此数据交换。转导实际上是指通过病毒或病毒载体将异物转移到细胞中。在A外终结者我们在讨论的时候显然并不是说这一点转账在软件领域。

一些隐喻没有很长时间。我非常注意,“foo-as-service”模式似乎已经运行了课程。曾经被称为函数 - AS-Service的东西现在被称为“无要”。即使它不是无服务器,在我看来,它是一个更加卑鄙的比喻(隐喻:我们不吃隐喻,即使我们没有味道,除了隐喻)。

我们应该给隐喻多少重量?

答案可能不仅仅是简单地记住隐喻在人类交流中的已知价值,以及过于依赖我们最喜欢的隐喻的已知局限性和潜在陷阱。隐喻可以为概念提供一个有用的简写,否则会占用太多的词汇和时间。

例如,这个想法数字转换.这个短语有什么真正的含义吗?这个词数字与基于二进制编号系统操作的设备有关。今天所有主流使用的电子计算机都是数字设备。那么,“数字”到底有什么特别之处呢?

事实证明,当代营销语言的背景下,“数字”并不意味着数字.它是“新东西”的隐喻,如数据alytics和机器学习。

我们所说的“转变”是什么意思?它只是一个表示“改变”的周日词,还是弗朗茨·卡夫卡(Franz Kafka)被丢弃的初稿的标题变态

事实证明,在当代营销语言的背景下,“转型”意味着以深刻的方式改变您的组织,使其能够识别和利用新兴技术。这种想法与大型组织中更常见的情况形成了鲜明对比,在大型组织中,领导者专注于最小化保持照明的成本,而不是积极地寻找开发新兴技术的创造性方法。

作为一个隐喻,数字转换用几个词就能表达很多意思。即使我们完全知道“数字”和“转型”的真正含义,我们也可以使用这个短语数字转换以一种有意义的方式来促进交流。

结论

总之:

  • 隐喻是代表真实事物(概念上的或物理上的)的词或短语。
  • 隐喻可以帮助我们通过将它们与更熟悉的人联系起来了解不熟悉的概念
  • 任何隐喻都不能完全定义它所指代的事物
  • 如果我们忘记了隐喻从哪里开始,现实从哪里开始,我们就有可能把注意力集中在错误的事情上
  • 我们在软件领域中使用的许多单词开始作为隐喻,其中大多数仍然受到大量操纵和重新解释的影响
  • 用故意使用隐喻以清晰的沟通目的可能是一件好事

下一个>敏捷转型解释说明

评论(2)

  1. 克里斯kaeberlein
    回复

    戴夫,

    首先,本文简直就是辉煌。我喜欢读每一个词。我甚至因文章购买了一本书的副本。

    我可能会吹毛求疵,但你对“速度”的描述对我来说有问题。你写的:

    软件开发中的“速度”并不意味着速度。这只是一个比喻。但在会话中使用的比“在给定的时间间隔平均完成的工作量的工作量更容易。

    我相信更好的速度描述会增加“团队可以完成的工作大小的估计”。

    这是速度的问题。这不是一个目标的实际衡量标准。

    但干得好了。

    回复
    • 戴夫尼科尔特
      回复

      克里斯,

      非常感谢您的评论。我认为我们对我们对“速度”的理解有所不同。您将其描述为估计,而不是实际测量。我的理解是,它是对球队的实际交付性能的实证观察,可用于预测近期未来中可能的交付性能(给定其在其上可以按预期运行的一般约束)。

      即使在良好的情况下,速度也是一个有问题的指标。我的关于软件开发度量的书(https://www.amazon.com/Software-Development-Metrics-Dave-Nicolette/dp/1617291358)描述速度周围的矛盾,而不是任何其他单个度量。其中一个是将速度视为估计或作为目标。还有很多其他人。

      现在,我倾向于避免使用周期时间而使用速度。它更容易让人们理解,并且提供了速度的所有潜在价值。

      再次感谢善意的话!

      回复

发表评论

您的电子邮件地址将不会被公布。必填字段已标记*