写点什么

团队对质量负责,“我”可以不负责?

用户头像
BY林子
关注
发布于: 2 小时前
团队对质量负责,“我”可以不负责?

本文首发于【林子的空间




“敏捷测试强调团队为质量负责,那质量变成是团队的事情,可能有测试人员认为个人不那么负责问题不大,毕竟天塌下来有团队在。”一位转型中的测试经理表达了这样的担忧。


这跟传统职责分明的做法有关,“我”管“我的”,“你”管“你的”,各自做好自己的本分就可以了。现在,既然说要团队来负责,那么“你”就可以多帮“我”负责一点,“我”少负责一点也没问题。听起来似乎还挺合情合理的。


显然,这种想法是有问题的,把个人跟团队割裂开来了。


良好的团队应该有一种“我们”的态度,而不是“我”的态度:“我如何帮助团队解决问题?我可以为别人做些什么?”,而不是“我不知道这是什么问题,这不是我的问题。”


但是,事实上有前面测试经理提到的这种想法的人应该不是个例。


因此,转型中的团队如何能够真正做到团队为质量负责,如何增强每个人对质量的责任感,是真正需要解决的问题。

01 团队整体对质量负责


敏捷测试宣言里提到“团队整体对质量负责”主要是针对传统的质量都由测试人员来把关的做法,强调团队所有角色对质量的责任。


之前从软件质量属性、易被忽视的质量、角色的质量职责分工、以及整体对质量负责的优秀团队特质等几个方面有详细分享。请参考下列文章:


敏捷测试的指导性原则

说好的团队为质量负责呢


不过,有了这些,也不是那么容易做到真正为质量负责,因为责任感的培养并不是一件简单的事情。

02 责任流程模型

为什么责任感这么难以培养呢?Christopher Avery 的“责任流程模型”很好的解释了这个问题。



上图即为责任流程模型,从下到上需要经历几种不同的心理状态:否认、指责、辩解、羞愧、放弃、义务,然后才能到达最上层的“责任”,才能培养责任感。


指责(LAY BLAME)


当问题发生时,指责心态的人会直接把责任推到别人身上,“这是他的错”。


比如,在用户故事验收时候,发现某个小功能点的实现跟需求不符,这时候开发人员可能会说“那是因为需求没写清楚,是业务分析人员的问题。”


辩解(JUSTIFY)


当发现无法指责别人的时候,就会把问题归因于我们无法控制的外部环境,通过这种方式来为自己辩解:“这就是经济”,“我们的文化就这样”,“这就是团队的管理现状”。


再比如,在软件开发中当同一个问题被多次出现的时候,可能会听到这样的辩解:“我们的遗留系统代码太乱了,出现这样的情况实属正常,很难保证代码每次都能写对。”


指责和辩解属于从外部去找原因,从而推卸自己的责任。


羞愧(SHAME)


当意识到外部环境必须改变才能使生活变得更美好的时候,再出现问题就会归因于自己的错,会感到内疚。常会有这样的想法:“我应该做的更好”,“我怎么又做成这样”,“这是我应得的后果”。


比如,当某个复杂功能上线出现问题时,他们会想“这个点我之前应该想到的,怎么会漏掉没测呢,我真是个白痴”。


感到内疚和羞愧是好的,但是光是这样不会解决问题,下次还是会有同样的问题出现。


义务(OBLIGATION)


义务不是责任,通常是一些承诺过需要做的事情,是自己不得不做但不一定喜欢做的事情。这种情况下会对自己的承诺感到抓狂,感觉到没有其他选择了,觉得生活就是一个负担。是一种非常消极的态度。


比如,在开发进度特别紧急的时候,测试人员会有测试压力巨大、根本测不完的情况,但测试人员还是会认为测试就是自己本分该完成的任务,是自己的义务,累的要趴下的时候只会抱怨工作太累了,不会积极的想办法解决根本问题。


羞愧和义务开始从自己身上去找原因,但是还达不到责任的高度。


放弃(QUIT)


有时候,我们会在羞愧和义务之间感觉到非常的抓狂和沮丧,然后就会想逃离,逃离羞愧带来的痛苦和义务带来的负担,也就是放弃。有放弃想法的人会觉得“只要不去关心问题,它们就会自行消失”,其实问题并不会消失,而且沮丧会一次又一次地袭来,从而非常的焦虑。


比如,某个开发人员开发的代码总是出现 bug,但是又找不到改进办法的时候,可能就会觉得无能为力,产生放弃的念头。


放弃是非常消极而负面的态度,很不利的。


责任(RESPONSIBILITY)


经历前面这几个阶段,并没有放弃,最后就会承担起责任,培养责任感,来到责任流程模型的最高层次。


进入这个阶段,会意识到自己是有能力和力量去解决某个问题。遇到需要解决的问题后,会直面问题本身,分析根因,想办法解决问题,而不是去应对自己的沮丧感觉。


在软件缺陷出现以后,解决了缺陷并且对其根因进行分析,找出以后避免出现同样问题的改进办法,并实现改进,做到缺陷预防。这就是责任,就是为软件质量负责的表现。


否认(DENIAL)


还有一个状态是模型右下角的“否认”。否认通常是因为没有意识到有问题,而忽略问题的存在。这是责任流程模型的最低层次。


比如,测试人员跟开发人员说发现了一个 bug,开发会潜意识的反应说:“我代码没问题,我自己测过了。”


否认属于负面心态,但这种心态更多的是因为能力或认知有限所致。

03 培养责任感的三把钥匙

责任流程模型形象地展示了培养责任感需要经历的几个阶段,我们可以清晰地看到培养责任感的不易。Christopher Avery 为此也给出了培养责任感的三把钥匙:动机、意识、面对。



动机(INTENTION)


首先,当事情出现问题的时候,需要以负责任的动机去面对,积极地想办法解决,而不是忽视、找内外部借口、甚至是逃离问题不予理会。


比如,当我们在软件开发中发现缺陷的时候,不管是什么原因导致,先要做的是积极想办法来解决、分析并做好后续的预防,以减少同类缺陷再次出现。


做一件事情的动机将会决定后续所采取的行动,这个非常关键。因此,端正动机,积极面对问题,是通往责任之路的钥匙之一。


意识(AWARENESS)


其次,是对责任的意识。当出现问题的时候,如果又开始找原因、找借口应对的话,要尽快把自己拉回来,增强自己面对问题的责任意识。


敏捷团队强调团队整体为质量负责,我们作为团队的一员,都需要有对质量负责的意识,每次代码变更都要考虑是否引入新的质量问题;当发现缺陷的时候要意识到需要一起来想办法解决,作出自己力所能及的贡献。


只有意识到了,才可能采取相应的行动。毫无疑问,意识非常重要,这是通往责任之路的第二把钥匙。


面对(CONFRONT)


以积极的心态面对真正的问题,尝试去发现其中有哪些是可以学习的、哪些是可以改正的、以及哪些是可以提高的。


出错不可怕,可怕的是出错以后不能从中吸取经验教训,同样的错误频出。失败是成功之母,从失败中学习,定会有所成长。


当我们说要为质量负责,就是不管质量出现什么样的问题,我们都能积极面对,找到真正的问题所在,采取积极的应对措施,持续改进。


积极面对问题是一种成长型心态,是一种负责任的心态。积极面对是通往责任之路的第三把钥匙。

04 写在最后

通往责任之路的三把钥匙说起来都比较抽象,培养责任感纯属个人的自我修养。对于有志要增强责任心的人,可以从上述三个方面去刻意练习。


另一方面,从团队领导者的角度,可以创造一种免责的文化氛围,鼓励团队成员的创新、倡导持续改进,允许犯错,不要对个人追责,从而更好的帮助团队成员培养责任感。


最后,回顾一下文首的问题:团队对质量负责,个人需要负责吗?


答案当然是肯定的。我们要理解团队的概念,个人属于团队,团队由个人组成,个人和团队是一个整体。


团队对质量负责,就是需要每个人都对质量负责,是质量人人有责。

推荐阅读

敏捷测试宣言

敏捷测试的指导性原则

说好的团队为质量负责呢

责任流程模型

Christopher Avery的对责任流程模型的解读

发布于: 2 小时前阅读数: 3
用户头像

BY林子

关注

ThoughtWorks首席软件质量咨询顾问 2010.08.06 加入

还未添加个人简介

评论

发布
暂无评论
团队对质量负责,“我”可以不负责?