长文图解:详解金字塔原理如何应用于架构设计

这篇具有很好参考价值的文章主要介绍了长文图解:详解金字塔原理如何应用于架构设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


0 文章概述

大家想一想工作中有没有遇到以下情况:一位同事用了很长时间罗列了很多事实和数据向你说明一件事情,但是你听完根本不知道他想要说什么。一位同事用了大量笔墨编写了技术方案,不仅有文字还有图表,但是你看完也不知道这个方案到底要解决什么问题以及如何落地。

上述情况的出现大概率是因为表述者没有使用结构化方法进行阐释,信息看似非常丰富但是杂乱无章,让人很难抓住重点,所以我们需要引入结构化思维方法论。

金字塔原理就是一个由芭芭拉·明托女士提出的结构化思维方法论,风靡世界五十年并在各个行业都取得过很好的效果。本文我们就运用金字塔原理分析一个技术系统优化方案,并看看如何落地执行,最终总结出一个闭环思考工具。


长文图解:详解金字塔原理如何应用于架构设计


1 怎么样提好一个问题

我们在工作中做的所有事情,本质上都是为问题提供解决方案。无论我们是提出一个方案,还是优化一种场景,或者是本身就是在解决问题,所以想要阐释清楚我们在做什么,第一步明确我们正在解决什么问题非常关键。

那么应该如何阐释清楚问题呢?我们可以使用金字塔原理提出的结构化表达SCQA工具,这四个字母分别代表背景、冲突、疑问、回答。

背景(Situation)是这个问题出现的环境,我们对环境的描述必须是真实和朴素的,大家对这个描述都是认可的,甚至是可以产生共鸣的。

冲突(Complication)是在上述背景下出现了哪些矛盾,常见的类型有三种:哪些预期未达标、哪些流程不顺畅、哪些隐患还存在。

疑问(Question)是根据背景和冲突自然而然提出的问题,常见的类型有四种:应该做什么、应该如何做、是否应该做、为什么会发生。

回答(Answer)是针对上述四类问题给出的答案,而回答就是金字塔结构的中心思想。

假设现在你想要向同事说明白技术方案应该如何实施,那么第一步就应该阐释清楚到底是在解决什么问题,等到大家对问题有一定共识之后再谈技术方案:

背景:业务数据量越来越大

冲突:响应经常超时现有系统难以支撑

疑问:应该做什么才能够支撑后续业务

回答:我们应该优化系统

此时技术方案准备解决什么问题就清楚了,而对这个问题的回答就是金字塔结构的中心思想。下面我们就要对这个中心思想使用金字塔原理进行结构化组织。


2 结构化方式组织回答

金字塔原理的核心思想并不复杂:一件事情可以总结出一个中心思想,这个中心思想可以由三至七个论点支持,每个论点再可以由三至七个论据支持,基本结构图如下:


长文图解:详解金字塔原理如何应用于架构设计


对于金字塔原理仅仅分析到这里是不够的,还应该进一步去分析金字塔原理的内在结构,而内在结构我们可以从横向和纵向两个维度去分析。


2.1 纵向结构

金字塔的纵向结构体现了两个原则:结论先行和以上统下,我们分别进行分析。

2.1.1 结论先行

结论先行是指开宗明义地展示中心思想,让听众一开始就明白沟通主旨,而如果把中心思想隐藏在沟通过程中,听众可能因为走神或者沟通信息太多而失焦,根本不知道你在说什么。结论先行具体有以下六个方面:

  • 先重要后次要
  • 先框架后细节
  • 先总体后细分
  • 先论点后论据
  • 先结论后原因
  • 先结果后过程

假设一个同事代码发布上线后导致系统故障,如果不使用结构化方法是这么表述的:

我看监控发现数据库负载升高,可能是没有加索引导致的。我又发现频繁收到重复消息,是不是消息中间件有什么问题?监控还显示创建了大量线程,是不是线程池使用不当导致的?问题排查很难短时间得到结论,我们还是先回滚代码至上一个版本吧

这位同事中心思想是问题原因比较难排查,应该先回滚代码再分析问题,但是他把最重要的观点放在最后,不听到最后不知道他要做什么,而如果结论先行应该怎么表述呢?

我们应立即当回滚代码,因为问题排查比较复杂,还是先恢复系统再排查问题。可能的问题分三类:第一可能是索引使用不当导致的数据库问题,第二可能是中间件问题导致大量重复接收消息,第三可能是线程池使用不当导致线程大量被创建。等到恢复正常之后我们依次排查这些问题

我们比较两段表述不难发现,第二段表述结构清晰很多,信息传达效率显著提升,这就是结论先行的优势所在。


2.1.2 以上统下

以上统下是指任何一个层的思想必须是其下一层思想的总结概括,我们分析一个例子进行说明:小王今天需要买牛肉、鸡蛋、萝卜、果汁、白菜、牛奶、青菜、鸡肉、酸奶,但这么多菜品他记不住,请你想办法帮助小王。

第一步我们要对菜品自下而上进行聚合归纳,这是一个找规律的过程。第二步再以上统下进行结构化表达从而帮助记忆。


长文图解:详解金字塔原理如何应用于架构设计


自下而上聚合我们不难发现,牛肉、鸡肉、鸡蛋属于肉蛋类,白菜、青菜、萝卜属于蔬菜类,牛奶、果汁、酸奶属于饮品类,这样聚合之后我们再以上统下进行结构化表达。

上述实例比较简单,因为元素之间的关联性比较容易寻找,但是真实场景是不会这么简单的,元素之间关联性并不容易建立,那么我们应该如何从中心思想展开至第二层?

金字塔原理推荐使用疑问-回答式对话,通过设问的方式向下展开结构。那么应该问哪几个问题从而涵盖中心思想的要点?我们可以参考5W2H分析法,尽量做到要点不缺失:

  • What:是什么、做什么

  • Why:为什么、什么原因

  • Where:在哪里、从哪开始

  • When:开始结束时间、里程碑

  • Who:谁负责、谁来做、谁验收

  • How:怎么做、什么方法、从哪切入

  • How Much:做多少、各项指标是多少

在此模型基础上我们可以进行简化,从而减少要素的数量,这样更加易于结构化表达和记忆。我们一般选取What、Why、How这三个核心要素组成2W1H模型。


2.1.3 实际应用

我们看看结论先行和以上统下的实际应用。根据第一章节我们使用SCQA工具得到了回答,这个回答就是金字塔结构中心思想,那么根据结论先行原则在金字塔顶端就要开门见山地展示中心思想。然后我们再用2W1H模型组织论点,到这里一个金字塔的基本结构就已经搭建完成:


长文图解:详解金字塔原理如何应用于架构设计


2.2 横向结构

现在我们需要思考如何组织论据,这就要使用横向结构的两个原则:归类分组和逻辑递进。我们分别进行分析。

2.2.1 归类分组

(1) 归纳推理

我们一般用归纳推理和演绎推理两种方法进行归类分组,我们先看归纳推理。

归纳推理是指把观察到的事实、规律归纳总结为理论。这种推理方法是不严谨的,因为只要观察事实和信息是有限的,那么归纳推理出来的结论就不一定是正确的。这就是逻辑错误中常见的一种:错误归因。

欧洲人看到的天鹅都是白色的,那么他们就归纳总结说所有的天鹅都是白色的。当一只黑天鹅出现时,这个结论就被证明是错误的,这就是黑天鹅事件。

当然我们不可能观察到所有事实,收集到所有信息,而一般是为了解决某个具体问题,我们会收集侧重于某个角度的信息,建立特定模型去分析解决问题,这也不失为一种有效方法。

金字塔原理归纳推理一般有以下四种维度:时间维度、结构维度、程度维度、经验维度。时间维度是根据天然时间线进行归纳,结构维度根据组织结构进行归纳,程度维度是根据程度级别进行归纳,经验维度是根据已有经验进行归纳。我们分别来看上述四种维度的几种常见类型:

时间维度
  • 事前、事中、事后
  • 短期、中期、长期
结构维度
  • 信息部、行政部、人力部
  • 开发组、测试组、运维组
程度维度
  • 高级、中级、初级
  • 重要、次要、不要
经验维度
  • 市场战略3C理论
  • 市场决策4P理论
  • 高扩展、高可用、高性能

我们选取时间维度和结构维度分析一个实例:怎样减少代码上线错误。从时间维度分析事前需要做好代码测试,事中需要监控关键指标,事后需要进行分析复盘。从结构维度分析开发人员需要做好单元测试,测试人员需要做好边界测试,运维人员需要完善监控平台。


(2) 演绎推理

演绎推理是指根据公理、定理或者自己相信的观念,做出推理或者判断,得到结论。

这种方法从逻辑上来说是严谨的。命题A是真的,推理出命题B也是真的,那是因为命题B的真实性包含在命题A中。

需要注意在逻辑上严谨,不是说结论一定是正确的。例如自己相信的观念最终被证明是错误的,那么得到结论也就是错误的。

标准式演绎推理分为大前提、小前提和结论:所有小鸟都会飞,这是一只小鸟,所以它会飞。

演绎推理还可以分为现象、原因和解决方案三个要素:现象是开发代码质量不高,原因是没有统一代码规约,解决方案是制定统一代码规约。


长文图解:详解金字塔原理如何应用于架构设计


这是一种自上而下的推理方法,由已知的公理、定理或者观念向下推理。使用这种方法,需要在出现问题的领域有一定的经验和积累。


2.2.2 逻辑递进

逻辑递进是指每种思想需要按照一定顺序进行排列,例如时间维度按照事前、事中、事后进行排列,程度级别按照高级、中级、初级进行排列,这样排列的优点是符合理解和记忆的习惯。


3 综合实例

前面章节我们介绍了SCQA和金字塔原理,本章节我们用一个实例将结构化思维方法论落地,并总结出一个闭环工具。


3.1 提出问题

我们还是以系统优化案例进行说明,第一步是使用SCQA提出问题从而引出回答。背景是业务数据量越来越大,冲突是响应经常超时现有系统难以支撑,疑问是应该做什么才能够支撑后续业务,回答是我们应该优化系统,而回答就是金字塔结构的中心思想。


3.2 给出回答

第二步是使用金字塔原理组织回答,在纵向结构上我们通过设问的方式提出2W1H三个问题:


长文图解:详解金字塔原理如何应用于架构设计


在横向结构上我们按照一定维度去组织论据,我选取了经验维度,在怎么做优化这个问题上选取3H理论指导优化工作,这个理论包含高扩展、高可用、高性能三个维度。


长文图解:详解金字塔原理如何应用于架构设计


高扩展强调系统可扩展性,包含划分清晰的领域边界,使用合适的设计模式,进行合理的组件抽象,遵守统一的代码规约。

高可用强调对系统的保护,面对大流量可能带来的非线性压力,我们要做好降级、延时、隔离、冗余、告警和响应防止系统崩溃。

高性能强调系统的性能表现,我们首先通过分析时延、负载、压测表现等指标了解系统能力,再从数据层、缓存层、服务层、WEB层、前端层、客户端、代理层等层级思考优化方案。

因为需要组织和表达信息较多,我们可以选择将金字塔旋转90度,这样做只是为了展示信息更加方便,在逻辑上并不改变金字塔结构。


长文图解:详解金字塔原理如何应用于架构设计


3.3 落地执行

我们已经将回答进行了结构化表达,现在需要思考如何将回答落地执行,我认为要从以下四个方面思考。

团队(Team):有多少人可以投入这个项目,人员构成是什么,例如有几个服务端和几个前端,人力投入量直接影响执行节奏。

切点(Pointcut):从哪里入手这是需要明确的,例如我们做系统优化,可以先从一个耗时最长,性能最差的接口入手,用这个接口验证方案的可行性。

节奏(Rhythm):受限于开发人数和项目排期等因素,系统优化很难一步到位,所以我们可以设置几个里程碑节点,规划短期、中期、长期目标,这样大目标就被拆成几个小目标逐一实现。

结果(Result):系统优化的结果怎么样,投入了这么多时间和精力到底产出是什么,这是必须要回答的问题。我们可以把哪些预期未达标、哪些流程不顺畅、哪些隐患还存在等问题拿出来逐一检视。

我们把SCQA和上述四个维度进行合并,组成SCQATPRR闭环工具,这个工具可以助力方案减少缺失环节,从而形成闭环。


长文图解:详解金字塔原理如何应用于架构设计


4 文章总结

本文首先分析了SCQA结构化工具,提好一个问题是解决问题的第一步。在初步给出答案后我们可以进行第二步使用金字塔结构组织答案,纵向结构要符合结论先行、以上统下原则,横向结构要符合归纳分组、逻辑递进原则。第三步在落地执行层面,我们提出团队、切点、节奏和结果这四个维度,结合SCQA工具进而组成闭环工具。

需要说明的是结构化思考工具只是一个工具,解决问题的关键还是我们要在本专业领域钻研和精进,也要在平时注意将零散的专业知识进行归纳整理,这样专业知识和工具相结合才会发挥更大的作用,希望本文对大家有所帮助。欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我微信「java_front」一起交流学习文章来源地址https://www.toymoban.com/news/detail-443563.html

到了这里,关于长文图解:详解金字塔原理如何应用于架构设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 拉普拉斯金字塔在多图HDR算法中的应用以及多曝光图像的融合算法简介。

          在SSE图像算法优化系列二十九:基础的拉普拉斯金字塔融合用于改善图像增强中易出现的过增强问题(一) 一文中我们曾经描述过基于几种高频融合法则的拉普拉斯金字塔融合算法,那里是主要针对2副图像的。实际的应用中,我们可能会遇到多帧图像的融合过程(图

    2024年02月08日
    浏览(49)
  • opencv基础46-图像金字塔02-拉普拉斯金字塔

    前面我们介绍了高斯金字塔,高斯金字塔是通过对一幅图像一系列的向下采样所产生的。有时,我们希望通过对金字塔中的小图像进行向上采样以获取完整的大尺寸高分辨率图像,这时就需要用到拉普拉斯金字塔 前面我们已经介绍过,一幅图像在经过向下采样后,再对其进行

    2024年02月13日
    浏览(41)
  • opencv基础45-图像金字塔01-高斯金字塔cv2.pyrDown()

    图像金字塔(Image Pyramid)是一种用于多尺度图像处理和分析的技术,它通过构建一系列不同分辨率的图像,从而使得图像可以在不同尺度下进行处理和分析。图像金字塔在计算机视觉、图像处理和计算机图形学等领域中广泛应用,可以用于目标检测、特征提取、图像匹配、尺

    2024年02月13日
    浏览(43)
  • 什么是特征金字塔

    什么是特征金字塔 特征金字塔(Feature Pyramid)是一种用于计算机视觉中物体检测、图像分割、目标跟踪等任务的常用技术。它的主要思想是通过在不同的图像尺度上提取特征,来捕捉不同大小和分辨率的物体信息。 具体来说,特征金字塔通常由以下几个步骤构成: 图像金字

    2024年02月12日
    浏览(32)
  • 图像金字塔

    图像金字塔 简单来说就是 自下而上图像一步一步缩小 1 高斯金字塔(涉及高斯分布) 向下采样(缩小,对金字塔来说是自下向上) 第一步: 高斯滤波去噪 第二部:将偶数行和列去掉 向上采样(放大,对金字塔来说是自上向下) 第一步:在每个方向上扩大两倍,新增的行和

    2023年04月22日
    浏览(43)
  • 【学习】FPN特征金字塔

    论文:Feature Pyramid Networks for Object Detection (CVPR 2016) 参考blog:https://blog.csdn.net/weixin_55073640/article/details/122627966 参考视频讲解:添加链接描述 卷积网络中,深层网络容易响应语义特征,浅层网络容易响应图像特征。然而,在目标检测中往往因为卷积网络的这个特征带来了不少

    2024年01月24日
    浏览(97)
  • OpenCV 11(图像金字塔)

    **图像金字塔**是图像中 多尺度表达 的一种 ,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说, 图像金字塔是同一图像不同分辨率的子图集合. 图像金字塔最初用于机器视觉和图像压缩。其通过梯次向下采样获得,直到达到某个终止

    2024年02月09日
    浏览(36)
  • OpenCv之图像金字塔

    目录 一、图像金字塔介绍  二、高斯金字塔 三、拉普拉斯金字塔 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说,图像金字塔是同一图像不同分辨率的子图集合。 图像金字塔的作用: 图像金

    2024年02月12日
    浏览(36)
  • 【Python实现数字金字塔】

    提示:python 数字金字塔是一种常见的数学问题,它由一个数字序列组成的三角形构成,其中每个数字都位于其下面两个数字的正上方。 提示:以下是本篇文章正文内容,下面案例可供参考 代码如下(示例): ##对结构进行分析 ① 共有前边空格和金字塔部分数字需要输出 ②

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包