郑文强对《思维力:高效的系统思维》的笔记(6)

郑文强
郑文强 (构建Tester能力体系)

在读 思维力:高效的系统思维

思维力:高效的系统思维
  • 书名: 思维力:高效的系统思维
  • 作者: 王世民
  • 页数: 236
  • 出版社: 电子工业出版社
  • 出版年: 2017-1-1
  • 第1章 不得不提升的思维力

    书名:思维力 - 高效的系统思维

    作者:王世明

    第1章不得不提得思维力 从事软件测试工作已经超过了18年,不管是前12年在企业里面做软件测试,还是最近7年做测试相关的企业培训和咨询,经常会碰到不同学员面临的一些问题,也是本书作者王世明老师,提到的思维力不足而导致的痛点。

    结合王世明老师的归纳和总结,再基于我自身的经验和理解,我将思维力不足而导致的痛点修改为4个方面,分别是:

    1、分析时想不明白:主要是碰到问题时不知道如何进行系统化的分析和解决问题,或者做出系统化的决策;例如:刚入职的学员,不知道如何选择手工测试与自动化测试;

    2、表达时想不清楚:主要是在向上沟通、平级沟通和向下沟通时,说了很多,但是对方不清楚你真正想讲的内容,或抓不住你的重点;例如:汇报工作时,要不滔滔不绝,要不是脑子一片空白;

    3、学习时学不高效:很多人学习和工作都很努力,但是效果不好;或者在换个项目或工作时,往往以前的经验清零;例如:碰到由于行业走下坡路公司裁员,完全不知所措,不知将来能做什么;

    4、写作时写不清晰:这个是我添加上去的。发现周围的不少学员和同事,写份材料没有条理、没有结构、没有重点,甚至是流水账式的;例如:让下属写篇测试技术方面的文章,那和让他在公众场合演讲一样感觉恐怖;

    尽早培养思维能力变得越来越重要,特别是在当前竞争越来越激烈,知识越来越不值钱的时代。

    随着“互联网+”时代的兴起,知识淘汰和更新的速度进一步加快,知识学习越来越碎片化趋势,使得培养思维能力变得越来越重要。只有不断提升思维能力,通过构建个人的知识体系,例如:我是软件测试从业人员,构建测试知识体系是我的主路径,不同知识的学习和整理主要都是为这个主路径服务的。通过构建知识体系,才能更好地对知识进行分类、过滤和吸收应用,乃至创新,从而成为独立思想、自主创新、解决复杂问题能力的人才,让自己在竞争越来越激烈的今天,至少处于不被淘汰的危险境地。

    2019-07-18 21:57:34 1人喜欢 回应
  • 第2章 思维力提升必备 - 系统思维

    测试过程中会碰到各种问题,为什么经常会出现解决了这个问题,过了一段时间,同样或者类似的问题会再次出现。或者碰到以前从未出现的问题,导致测试人员手忙脚乱不知道该如何入手分析与解决问题。我想测试人员学习一些系统思维会有助于改进解决问题。

    什么是系统?我们可以认为世上万事万物的本质都是系统,系统是由两个或两个以上的元素结合而成的有机整体,并且系统的整体并不等于其局部的相加。即我们不仅要考虑系统的构成元素,更要考虑元素之间的关系。系统的基本表现形式就是框架,其中显示了系统的构成元素以及它们之间的有机联系。而系统思维可以认为是通过框架进行思考、沟通、学习和写作的思维方式。

    从这个角度而言,我们平时讲的系统化测试,就要求我们不断以框架的视角去开展测试。例如:“问题驱动的软件测试设计”课程中,我就提出了测试分析与设计就是一个不断构建模型的过程,其与系统思维中框架的概念是一样的。“构建高效的软件测试知识体系”也是通过提出问题到构建框架的过程开展的。不管是解决问题还是沟通表达,都可以借鉴已有的一些框架以达到事半功倍的效果,例如:测试分析与设计中,可以参考质量模型以构建框架。假如没有现成的框架借鉴或改进,那就只能全新去构建框架,这就困难的多。

    系统思维并不是一个孤立的思考方式,它会和其他思维相互支持和配合,以达到系统化的目的。例如:

    1、系统思维与发散思维:发散思维是大脑呈现一种扩散状态的思维模式,例如学习过程中的“一题多解”就是发散思维的表现。同时,发散思维是创造性思维的最主要特点,也是系统思维的重要组成部分,例如:假如我们需要去全新构建框架,发散思维就很重要。通过发散思维尽量多的罗列要点,然后通过归纳和分层分组构建新的框架,用于后续的思考和表达。

    2、系统思维与收敛思维:收敛思维与发散思维是一个硬币的两面,是对立的统一,具有互补性。归纳和演绎式收敛思维的最核心思考方法。其中归纳是从多个个别的事物中获得普遍的规则,例如:男人、女人可以归纳为人。而演绎则是从普遍性规则推导出个别性规则,例如鸟都会飞,喜鹊是鸟,那么喜鹊会飞。在构建框架过程中,无论采用什么思维方法,不管是水平思维还是发散思维,最终都需要通过归纳或演绎的方式将所有思考的内容构建成一个框架,并在此基础上解决问题或有效表达;

    3、系统思维与水平思维:水平思维强调的是寻求看待事物的不同方法和不同路径。常见的水平思维包括换位思维、逆向思维、六顶思考帽等。水平思维是改进系统思维框架的重要输入。

    4、系统思维与结构化思维:结构化思维最早是由麦肯锡提出的,其主要出发点是作为分析问题的框架和框定假设的范围,即以假设为前提,以事实为基础,通过结构化方式框架假设的范围,并构建分析问题的框架。而系统思维突破了“框架”的使用范围,将其全面应用于思考、表达、学习和写作中。

    因此,系统思维以“框架”为核心,在构建框架过程中涵盖了发散思维、水平思维、收敛思维和结构化思维中的所有思考方法。

    2019-07-21 15:16:17 回应
  • 第3章 发现问题 - 界定问题

    首先“第二部分 系统分析语解决问题”的前言部分,通过一个案例说明了系统分析与解决问题的5个步骤,我将其5个步骤显示为3个步骤,如下图所示:

    本文主要主要针对“第3章 发现问题 - 界定问题”的内容,结合自己的测试经验,关联软件测试过程中碰到的类似案例。

    什么是问题?问题指的是现实与目标之间的差距。因此基于问题的定义,可以分析导致问题的原因:目标是什么?现实是什么?产生偏差的原因是什么?消除差距的对策是什么?对策是否有效等?作者王世明老师将工作(例如解决问题)、生活(沟通表达)、学习和写作过程中碰到的问题归类为4种类型,分别是:

    1)未能准确地描述问题

    2)没有梳理清楚问题的结构

    3)被问题的表象蒙蔽

    4)忽略问题隐含的假设

    一、未能准确地描述问题

    案例分析:开发人员D和测试经理说,你部门的测试人员T合作态度太差。

    “太差”就是一个主观笼统的词,并不能明确问题。因此首先需要了解测试人员T是就针对开发人员D合作态度差,还是是一个普遍对人态度差的问题?合作态度差是否是由于业务知识不过关导致的?还是由于当时他太忙而导致无法向开发人员提供合作支持?也就是说,在碰到模糊化、非定量和有歧义的问题时,首先需要将它们转换为可例证、可量化、清晰化的问题描述。

    二、没有梳理清楚问题的结构

    案例分析:客户希望我提供一期探索性测试

    此时,通过5W2H的框架有助于澄清该问题相关的信息。例如:针对上述我通常会问为什么要开展探索性测试?哪些人会参与(获取测试工作经验、负责的测试级别、测试类型等信息)?什么时间、时间周期等;

    三、被问题的表象蒙蔽

    真正的问题并不会自动摆放在你的面前,它们可能会以问题的表象、问题的初步解决方案,或者无关的干扰信息等形式出现。很多人会被这些偏差迷惑,从而偏离问题的真正解决之道。例如:

    1)测试团队为什么会遗漏这么多缺陷到用户现场?

    直觉地回答是测试团队由于各方面的原因导致测试有效性差而导致的。但是,这可能是表象的原因,此时采用5WHY法将是一个不错的选择以澄清真正的问题,可能通过几个WHY问题之后,发现缺陷遗漏这个问题的根本原因是需求定义作物导致的。实际问“为什么”几次,要根据具体的场景,基本标准是达到我们能解决的层次为止。5WHY分析法的关键是:鼓励解决问题的人努力避开主观假设或逻辑陷阱,从结果入手,沿着因果关系链条,直至找出问题的根本原因。

    2)客户要开展一期探索性测试

    同样地,你可以问几个WHY就会发现,实际上客户的培训目的是为了高效测试,此时你会发现探索性测试只是为了达到这个目的的一个手段,而非全部。

    四、忽略问题隐含的假设

    案例分析:为什么敏捷开发会在公司内部失败?很多时候就是由于忽略了敏捷开发成功实施的隐含假设。隐含假设还可能包括环境假设(例如:被测对象的工作环境问题)、时间假设(我性格内向,因此不适合做管理工作)、理论/工具使用的前提和边界等(探索性测试成功实施的前提和边界)。

    界定问题是系统化分析与解决问题的第一步,也是非常关键的一个步骤。“能够正确澄清问题,已经将问题解决了一半!”

    2019-07-22 08:33:26 回应
  • 第四章 分析问题 - 构建框架及明晰关键

    构建框架是系统化思维进行解决问题、沟通表达、高效学习和结构写作的最重要的步骤,需要各种思维方式的支持,例如:发散思维、收敛思维、水平思维等,也需要一些基础思考工具的支持,例如:思维导图、逻辑树和MECE(相互独立、完全穷尽,或简称不重叠不遗漏)。

    根据我的经验和理解,实现MECE中的CE,完全穷尽是很困难的,但是我们至少尽量实现ME,即同一层次的分类应该是相互独立,或者在同一个维度进行的,例如:红色的车和SUV的车就不满足ME的要求。另外,我认为思维导图和逻辑树,其内涵是一致的,都可以从两个层面思考:侧重发散性思维的思维导图,主要关注在刺激思考;而侧重收敛性思维的思维导图,更关注在突出思考结果。同样,逻辑树,我认为也可以从这两个层面理解。

    有了思维导图、逻辑树和MECE等基础思考工具的帮助,接下来就可以开始构建架构,分别从“自上而下构建框架”和“自下而上构建框架”两个方面介绍构建框架的方法。需要注意的是,实践过程中这两种方法通常是交织在一起,并不能完全隔离。下面分别对两种方法进行简单描述:

    一、自下而上构建框架

    自下而上构建框架的适合场景是:当你遇到一个问题,或者准备写一篇文章时,只是有些隐隐约约的想法,而且想法很零散,不知道如何组织和完善。结合自己的经验和理解,将自下而上构建的基本步骤总结为4个,分别是:罗列要点、分层分类、构建框架和呈现框架,与王世明老师提供的4个步骤有些差距。

    1、罗列要点

    假如是多人参与的讨论问题,头脑风暴法是很适合的一种方法,特别是在有合理检查表作为支撑情况下。尽量鼓励不同人采用发散性思维尽量多的罗列要点,同时结合水平思维中的换位思考、逆向思考和六顶思考帽等方式,对罗列要点进行补充,发散性思维和水平思维可以提升思考过程的效果。

    2、分层分类

    针对上面罗列的要点,基于收敛思维开始进行分层分类。此时主要采用的是收敛思维:包括归纳推理的时间架、空间架和三脚架以表达罗列要素之间的关系。同时也会采用演绎推理,例如:问题/现状WHAT、原因WHY和对策HOW的方式。

    3、构建框架

    将通过分层分类之后得到的层次化元素,进行MECE检查,以确保同一层次的元素满足相互独立和完全穷尽的要求,或者至少要求满足相互独立,形成满足自己要求的框架结构。

    4、呈现框架

    满足MECE的框架,并一定是适合呈现给你的听众的,因此需要按照一定的逻辑顺序组织,并以可视化方式进行呈现,这就是一个可视化思维的过程。例如:流程图、循环图、层次结构图、矩阵图、金字塔图等。

    自下而上构建框架可以理解为一个先发散再收敛的思考过程,目的是逐步提炼出一个结构完整、逻辑清晰的框架,以帮助下一步地解决问题、沟通表达、高效学习和结构写作。

    二、自上而下构建框架

    假如你已经有了分析问题和解决问题的框架,那么采用自上而下的方式就会简单很多。其主要步骤是:选择框架、分层分类、多维思考和呈现框架。

    简单聊一些其中的步骤内容。要想高效进行自上而下的构建框架,需要我们在平时多积累框架,例如:5W2H、PDCA、SQVID、WHAT-WHY-HOW的思考框架等。而多维思考主要指的是,我们不能完全拘泥于已有的框架,还需要从更多维度进行思考,以作为原来框架的补充。

    通过上面的两种方式相互配合得到的框架,接下来需要考虑的是明晰关键:由于资源和时间的有限,我们不可能针对框架内每个元素进行应对和处理,因此我们需要根据20/80原则进行重点选择,淘汰非关键因素。

    经过第三章和第四章的学习,我们已经了解“界定问题”和“分析问题”的步骤和方法,并以框架的形式梳理出了问题解决的措施清单。接下来就是解决问题的环节。

    这部分内容,结合测试的过程应该是很好理解,并且可以用测试中的经验进行展开,例如:制订计划、具体实施、过程监控等。在实施过程中,重要的是需要不断收集与分析数据以了解当前的状态,假如与计划之间出现较大的偏差,那么采取合适的纠正措施是必要的。实施的过程尽量采用的是小迭代的思路,不断反馈,不断调整。

    2019-07-23 06:45:43 回应
  • 第七章 “讲三点”快速拉升水平及后续章节

    系统化思维的核心是“框架”,因此在表达上的应用就是将框架传递给听众,而且建议以自上而下的方式进行表达,即“从结论说起”,然后通过“讲3点”的方式,从左到右、自上而下,依序说明,按照层次结构进行论述。

    为什么说在表达过程中强调“讲3点”的方式?这是由我们大脑的特点决定的,类似于书中所说的7±2效应:大脑同时处理能力有限,即太多信息让我们大脑觉得负荷过大;大脑喜欢有规律的信息,即可理解为分层和分类。

    养成“讲3点”的习惯,不仅满足了我们的大脑的理解要求,同时也会强迫我们在表达过程中,将脑海中零乱的、点状的信息进行重新整理、归纳、分组和提炼,有效帮助我们理清思路和组织语言,让听众更容易接受你传递的信息。而习惯的养成需要大量、持续和重复的训练,在思考、沟通、学习和写作过程的不同场合下多采用“讲3点”的形式。同时,在日常生活过程中,不断收集不同的“讲3点”的框架作为参考,以便我们做到“举一反三”,更顺畅地进行沟通表达。

    “从结论说起”强调的是中心思想的提炼,是自上而下沟通的一个难点;而如何构建清晰的框架以有效地阐述或论证你的中心思想,是另一个难点。此时,金字塔结构的自上而下的层层分解结构有助于解决前面的2个要求。金字塔结构的主要特点包括:

    1)从顶层的中心论点出发,向下分解成多个论据,每个论据又可以作为论点继续向下分解成论据,不断延伸就可以形成金字塔结构。要求上层论点必须是下层论点的总结,即满足结论先行的要求;

    2)每一个论点的下层论据最多不超过7个,最好在3个左右。即框架的每层构成元素个数要求,满足了前面提到的7±2效应;

    3)同一层的论点必须具备相同特性,即满足MECE原则;

    4)每一层论点必须按照某种逻辑顺序组织,例如:时间架、空间架、三脚架,或者演绎方式等;

    上面的几个特点就可以认为是金字塔原理,实践过程中可以根据不同场合的使用需要,构建属于我们自己的金字塔结构,并为这个结构取个名字。

    经过上述步骤之后,接下来我们需要考虑的是如何有效地讲内容传递给受众,此时,将结构化内容转化为可视化是非常好的一个手段。根据需要,选择不同的可视化方式是明知的,例如:时间图、流程图等。

    2019-07-23 14:18:24 回应
  • 第六章 假设思考

    假设思考是系统化分析问题与解决问题的一种使用场景,只是这个时候框架中包含的内容是可能的假设分类。同时,为了更好的分析与解决问题,假设思考的关键在于尽量提高假设的准确性。

    假设思考法指的是先预设一个或多个可能性最高的结论,再通过收集资料进行分析与实验加以验证,通过不断的迭代直到找到真正的答案。也就是说假设思考法是从结论到问题,从结论出发,假设验证,逐步到位。开发模型中的原型开发就可以认为是假设思考法的应用;而测试过程中经常会出现的探索性测试,也具备假设思考法的特征。错误推测法也是假设思考法的一种应用场景。

    与假设思考法对应的是常规推论法,指的是从问题发生的源头寻求答案,先收集与分析资料,再以归纳方式逐步求解,这是一套标准的问题分析与解决流程。即常规推论法是从问题到结论,从问题出发,顺向推导,一步到位。例如:开发模型中的顺序开发模型,首先希望定义完备的需求,再通过一步步阶段,最终生成产品。往往需要比较长时间,而生成的产品还不一定是客户想要的。而测试过程中的脚本化测试,就具备常规推论法的特征:尽量收集完备的测试依据等资料,通过应用各种测试技术,设计全面的测试用例,期望发现被测对象中的尽量多的缺陷。

    由于我将假设思考是系统化分析问题与解决问题的一种使用场景,因此其步骤与前面讲的分析与解决问题的过程是类似,只是当前的对象关注在不同的假设上面。在本文中就不详细描述了,详细内容可以参考上篇笔记:“我的裁剪版 - 构建框架的4大步骤”。

    2019-07-23 14:19:26 回应
1人推荐