有时,Mindset 也被翻译成心态,我们熟悉的一句话:态度决定一切。也可以说,一个人的心态决定着一个人的行为,一个人的思维方式决定着一个人的行为方式。

固定思维与敏捷思维

2013 年,我参加中国敏捷大会,听敏捷大师 Linda Rising 说,传统软件开发思维是固定性思维,而具有敏捷思维的人认为:

  • 能力是可以不断成长的,而不是固定的

  • 目标都是可以学习的

  • 面对挑战是拥抱它而不是躲开它

  • 面对失败不是责备同事而是需要搞清楚为什么失败了

  • ……

具体对比,如表1所描述。

表1 传统的固定思维和敏捷思维的对比

Lisa 虽然没有直接提到“成长性思维(Growth Mindset)”,但和固定性思维进行了对比,其实就是成长性思维。固定性思维(Fixed Mindset)和成长性思维体现了应对成功与失败、成绩与挑战时的两种基本心态。今天我们推崇敏捷,其实就是推崇成长性思维,那什么是成长性思维呢?

成长性思维

成长性思维是由斯坦福大学心理学教授卡罗尔·德韦克(Carol Dweck)提出的。在数十年心理学研究之后,她坚信思维模式的力量,确定拥有成长性思维的人在遇到困难和挑战时更加乐观积极,他们相信自己的不懈努力,能够帮助他们克服困难,最终走向成功。

卡罗尔·德韦克就“成长性思维” 在 Ted 上做过一次演讲,演讲题目是“相信你自己能进步的信念具有巨大威力”,该演讲到目前已有一千多万人浏览。她还为此写了一本书——《终身成长:重新定义成功的思维模式》,这本书影响了很多人。书中举了很多例子,例如职业经理人李·亚科卡和企业家杰克·韦尔奇的对比,但印象更为深刻的例子是网球明星麦肯罗和篮球明星乔丹的对比。

麦肯罗是典型的具有固定性思维的人,最看重自己的名声——“世界冠军”称号,总认为自己没错,喜欢把一切责任推给别人,所以很容易发脾气,最终也只能红极一时,职业生涯很短暂。

但乔丹就不一样,他虽然日后成为了篮球巨星,但并没有篮球天赋,因为他连高中篮球队都没被选上,完全靠不断地苦练,才成为了篮球高手。他就是拥有成长性思维,胜不骄、败不馁,每次打输一场比赛,没有任何抱怨和责备,而是去练球。即使赢了,他觉得某几次没投好篮,也马上去练、努力改进。正因为他拥有成长性思维,才不看重当前所取得的成就,能从如日中天的篮球运动转到他不熟悉的棒球运动;也正因为他拥有成长性思维,其职业运动生涯很长,从 1984 年入选 NBA 到 2003 年退役,差不多整整 20 年。

固定性思维会让你更关注结果、关注对还是错,通常会忙于捍卫自我或通过避免挑战来提高自尊心、来努力保护自我;相信天赋,夸自己拥有某种天赋,以彰显与别人不一样;或者抱怨自己没有这种天赋,能不努力就不努力,结果就是:要么自大、要么自卑,喜欢抱怨,拒绝接受挑战,面对困难全力以赴找借口,容易妥协和绝望,并最终成为失败者。

而成长性思维的人相信能力是可以被培养的,总是努力、不断成长;可以接受失败,但不会成为失败者,因为自信,内心有力量,今天的失败不代表明天会失败,相信自己的潜力是未知的,一定能克服困难,因此越战越勇,最终走向成功。

听到这里,是不是感觉:拥有成长性思维,对我们来说太重要了?

以实例来辨析不同思维的测试工程师

回到测试领域,我们可以比较一下,拥有成长性思维的测试工程师和拥有固定性思维的测试工程师有什么不同?为了更直观地比较,特地做了一张表,如表2所示。不过要注意,每一个人都同时拥有固定性思维和成长性思维,只是在那个时刻,哪种思维占主导地位。我们说他是拥有成长性思维的人,是指他的成长性思维此时占主导地位。

表2 比较拥有两种不同思维的测试工程师

要举的例子还很多,成长性思维是敏捷思维最具代表性的,不仅支持个人快速成长和学习型团队的建立,而且也从理论上支持“快速迭代”这样的实践,不断改进,持续满足业务和客户的需求。

团队对质量负责的思维

“成长性思维”不等于敏捷思维,敏捷思维还有更多的内涵。同样是 2013 年,我在第 8 届敏捷中国大会上做了一次演讲,演讲的主题是“测试价值越小则企业的收益越大”,虽然我从事测试领域工作,但在敏捷环境下没有过分强调测试的价值。

测试守护质量、提供质量信息,甚至帮助团队改进质量,自然很有价值,但是如果依赖测试来保证质量,其实是很难保证质量,而且成本很高,而应该让整个团队关注质量,从需求开始尽可能把事情做对,从而构建出高质量的产品,这对企业来讲更有价值——效率更高、成本更低。

如果我们犯了错误、产生了缺陷,就需要做缺陷分析,缺陷预防比发现缺陷(测试)更有价值。所以,当一个企业在测试上投入越来越少,同时还能维持原来有的质量水平,则说明这个企业努力的方向是正确的,“测试价值越小则企业的收益越大”就是这个含义。有了这样的思维,TDD/ATDD 就容易被接受。

上下文驱动思维与用户思维

敏捷测试中还包含上下文驱动的思维,认识到上下文一直是在变的,所以要小步快跑,测试的策略和方法也是要根据上下文及时进行调整,不断优化,尽可能达到更有效、更高效的测试状态。什么是上下文呢?可以简单理解为“项目所处的环境、所要满足的条件等”,包括项目人员、风险变化、研发状态、质量要求等。

基于上下文的思维,一个简单的例子就是:不存在最佳实践,虽然我们经常提“Best Practices”, 因为 它只代表昨天,不代表今天、更不代表明天;也因为它只是相对某个团队是最佳的,而对我们团队则不一定是最佳的。

敏捷测试更需要用户思维、价值思维,这些比较易懂。例如,不要追求技术的复杂性,而是做对客户有价值的事情,所以多数情况下越简单越好。而像系统性思维、批判性思维、结构化思维等,是传统测试和敏捷测试共同拥有的,在此就不做介绍了,有兴趣的同学,可以去我的个人公众号“软件质量报道”阅读相关文章。

小结

最后总结一下,敏捷测试思维方式(Mindset)如下:

(1) 成长性思维,通过不断学习和解决问题来提高个人的测试技能,不躲避问题,而是迎难而上,克服测试困难或解决测试问题。

(2) 用户思维,一切从用户角度出发,只做对客户有价值的事;想客户所想,基于客户的角度来判定这是不是缺陷。

(3) 团队对质量负责的思维,质量是构建的,缺陷预防胜于发现缺陷,开发承担更大的质量责任;质量不能靠测试人员,测试也不只是测试人员的事情,而是靠整个团队。

(4) 上下文驱动思维,没有最佳实践,只有优秀实践;基于上下文不断调整测试策略,精益求精,持续改进测试流程和方法。

传统的固定思维和敏捷思维的对比相关推荐

  1. 敏捷思维- 架构设计中的方法学

    敏捷思维-架构设计中的方法学 目录 1.从方法论看架构设计... 2 2.架构设计的敏捷视图... 7 3.源自需求... 13 4.团队设计... 18 5.简单设计... 24 6.迭代设计... ...

  2. 敏捷思维-架构设计中的方法学

    敏捷思维-架构设计中的方法学 1.    从方法论看架构设计 1.    架构设计的敏捷视图 2.    源自需求 3.    团队设计 4.    简单设计 5.    迭代设计 6.    组合使 ...

  3. 《超越需求:敏捷思维模式下的分析》—第1章 1.2节交付价值

    本节书摘来自异步社区<超越需求:敏捷思维模式下的分析>一书中的第1章,第1.2节交付价值,作者[美]Kent J. McDonald(肯特 J. 麦克唐纳),更多章节内容可以访问云栖社区& ...

  4. 如何用成长型思维赋能敏捷

    成长型思维是斯坦福大学心理学教授卡罗尔.德韦克总结出的信念体系,核心概念就是人的智力和能力是可以通过努力得到提升的.成长型思维适用于学习.教育.体育.商业.人际关系等各种领域.个人.家庭.团队.组织都 ...

  5. 汉语是思维广阔敏捷的语言

    汉语是思维广阔敏捷的语言 from: http://holbrook.github.io/2006/10/26/greate_chinese.html 汉语的一个明显的优势是,思维面广阔,在数学上由于 ...

  6. 思维【敏捷开发ACP】总目录

    1.敏捷历史之 PMP.ACP 及 CMMI 介绍_YYDataV的博客-CSDN博客_pmp和cmmi区别2.1 敏捷历史软件工程和项目管理的历史要从1910年说起,美国福特汽车公司(简称" ...

  7. 【总结整理】传统行业如何合理利用互联网思维----摘自《人人都是产品经理》...

    [天天问每周精选]第49期:传统行业如何合理利用互联网思维 人人都是产品经理社区 发布于 2018-10-08 08:03:46 举报 阅读数:1287 ​​近年来互联网思维一词火爆,无论是互联网行业 ...

  8. 转发:汉语是思维广阔敏捷的语言

    汉语是思维广阔敏捷的语言 转自:http://club.china.alibaba.com/FCKeditor/editor/fckeditor.html?InstanceName=body& ...

  9. 深度解读敏捷思维与敏捷开发实践

    一.如何正确看待敏捷? 1.对敏捷的误会 关于敏捷,许多人常常有这样那样的误会,比如一下典型的四类: 第一类:将敏捷与快速划上等号 敏捷开发就是快速开发 敏捷能够提高开发速度 使用敏捷,产品可以更快上 ...

  10. 《超越需求:敏捷思维模式下的分析》—第1章 1.1节简介

    本节书摘来自异步社区<超越需求:敏捷思维模式下的分析>一书中的第1章,第1.1节简介,作者[美]Kent J. McDonald(肯特 J. 麦克唐纳),更多章节内容可以访问云栖社区&qu ...

最新文章

  1. C#让程序只运行一次实例
  2. Lock和synchronized比较详解
  3. python---统计列表中数字出现的次数
  4. Objective-C设计模式——单例Singleton(对象创建)
  5. CSS样式:2、超出隐藏控制
  6. Web页面自动化执行,Java+Selenium3.0-Mac OS环境搭建
  7. APP开发内容介绍(源代码)
  8. 打印机可以打印不能扫描怎么弄_惠普打印机可以打印但无法扫描的解决办法
  9. 51nod 1272 最大距离 By Assassin
  10. MySQL:2016年天猫双11化妆品销量数据分析
  11. 解决idea在运行时出现Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8?
  12. 基于墨刀实现的音乐播放app-Sound From The Soul
  13. Android从相册中选取图片上传到阿里云OSS
  14. OSCS-软件供应链安全威胁与业界解决方案
  15. D触发器竞赛4人抢答电路
  16. 关于Realtek HD Audio声卡驱动与系统HD总线驱动冲突的问题
  17. gitEE(码云)的使用
  18. Visa通过Visa Direct Payouts将全球资金转移能力扩展到卡片以外的账户
  19. Flowable入门系列文章183 - LDAP的属性介绍
  20. react-native 接QQ钱包支付的SDK

热门文章

  1. 微信/支付宝扫码支付流程
  2. 项目管理术语英汉对照表
  3. numpy-stl中文文档
  4. 淘宝用户行为数据挖掘-python
  5. java写入到excel表格乱码怎么办,数据库导出excel表格是乱码-java导出excel表格乱码!...
  6. From Calcite to Tampering with Flink SQL
  7. 深度解读Swarm/BZZ项目的风险与创新
  8. WORD之文字处理之插入复合条饼图
  9. 模仿excel复合饼图 (饼-柱)
  10. Oracle定时任务DBMS_JOB