写点什么

敏捷团队中测试工程师的绩效管理

  • 2011-06-02
  • 本文字数:3268 字

    阅读完需:约 11 分钟

在正文开始之前,首先感谢张凯峰编辑不厌其烦的提醒,没有他坚持不懈的提醒,就没有本文的面世:)

在本专栏的前几篇文章中,我们提到了敏捷测试的概念、组织,以及敏捷测试中的自动化测试组织方式。在这篇文章中,我试图来讨论一个更加困难的话题——敏捷测试中工程师的绩效管理。众所周知,绩效管理从来都不是一个容易的工作。甚至,我认识一位测试经理,他视绩效打分和沟通为畏途,每到季度结束需要为员工做绩效的时候就格外紧张。

为什么绩效工作不容易?从我自身的感受以及听到的抱怨中,主要有两个方面的原因。首先是评价标准的确定。对测试工程师团队来说,通常测试工程师都会分散在不同的项目中,追求建立一个“公平的”标准非常困难;其次是在对绩效工作的理解上,绩效工作包括目标设定、绩效评价、绩效跟踪、绩效沟通几个主要部分,但不少测试管理者仅仅把重点放在绩效评价上,忽略了目标和基于目标的沟通,导致绩效工作变成了一个单纯的打分,这样自然引入了许多的问题。

首先来看看测试工程师的绩效管理。设定绩效目标是绩效管理的第一个环节。我以为,对绩效目标正确的理解是建立合理的绩效评价原则和体系的前提。例如,“发现的缺陷数”和“编写的用例数”大概是最多的测试组织对测试工程师绩效评价的标准,那么这个标准是否合理?实际上,在实践中,“发现的缺陷数”并非一个好的衡量成员工作的指标:首先,不同的项目中,缺陷数量本来就不同,发现缺陷的难易度也不同;其次,并非每个缺陷都有相同的价值,发现缺陷的数量多不见得意味着发现的缺陷的质量高。既然这样,为什么“缺陷数”仍然成为了大多数组织的绩效衡量标准?我想,主要的原因,恐怕在于这个数据具有典型的“量化”特性,在一定程度上反映了测试工作的状况,且具有表面的“公平”的特性。

1. 设定绩效目标

在讨论这种方式是否合理之前,我们先讨论绩效目标本身。为什么要为测试工程师设定绩效目标?答案可以是“为了发奖金”,但在我看来,奖金的发放只是对绩效完成好的员工的奖励,而绩效目标本身是对团队成员的一种指引。简单的说,设定绩效目标是为了让员工明白“组织期望你做什么”,通过这种设定来达成组织的目标和期望。所以,设定一个绩效目标的目的不是为了“绝对的公平”,而是为了让所有的团队成员都明白“怎么做才是组织期望的”。设定“发现的缺陷数”作为主要的绩效指标只能导致一个后果:所有的团队成员都把自己的价值定位在“发现更多的缺陷上”。表面上看,这样并没有问题:测试团队的工作不就是发现缺陷吗?这里有一个有趣的虚拟场景(这个场景是我最喜欢的,用来挑战这种衡量标准的场景):

测试团队成员 A 加入了 P 项目,在开始的一个月中,平均每个版本他能发现 50 个缺陷;半年后,A 可以在每个版本中发现 100 个缺陷。你认为他应该得到很高的评价吗?

从“发现缺陷的数量”上看,显然,成员 A 做得非常出色。但是,如果从项目的角度来看呢?这个项目的质量显然越来越糟糕了。这样岂不是非常危险的信号:“测试团队所期望的目标和组织的期望是背道而驰的”?太糟糕了。

为组织中的测试成员设定什么样的绩效目标才合理?简单的说,取决于组织的目标是什么。在敏捷环境下,我们期望整个测试组织能够持续的提升生产率,能够持续的提高产品质量,因此,在设定绩效目标的时候,需要把员工的绩效目标与组织的这些目标牢牢的绑定在一起。此外,目标本身需要是可度量和衡量的,因此,从生产率和提高产品质量等角度入手,可以考虑以下这些绩效目标:

  1. 提高生产率
  • 更短的产品的发布周期
  • 更短的测试周期
  • 更少的产品测试迭代次数
  1. 提高产品质量
  • 更少的线上缺陷
  • (同样测试覆盖率下)更少的系统测试中缺陷数量
  • 促进更好的代码质量
  1. 促进可测试性
  • 单元测试覆盖率
  • 接口和系统的自动化测试覆盖率
  • 促进更好的可测试性

2. 绩效跟踪和打分

设定绩效目标之后,依据绩效目标跟踪测试工程师在整个绩效周期中的工作,保证 TA 的方向的正确性,这是一般意义上的绩效跟踪工作。通常情况下,绩效目标的完成情况可以通过定期的一对一会议或是通过工作日志、周报等来获取信息。一旦发现员工在完成绩效目标方面存在困难,或是目前的方向有偏差,管理者就需要及时指出并和员工讨论如何改善之。在某些情况下,管理者甚至需要为员工设定明确的以周为单位的分解后的绩效目标。

在绩效周期结束的时候,为员工在一个绩效周期内的打分主要依据绩效目标的完成情况来决定。除了绩效目标的完成情况外,员工在反馈、沟通、响应变化等方面的表现也是对员工进行评价的因素。因此,除了对照绩效目标的完成情况外,从测试工程师所在项目或产品的干系人(Stakeholders)得到该工程师的反馈也是很重要的。这方面的内容可以参照 360 度考核的具体方式,可以采用正式和非正式的方式从干系人除获得对员工的反馈。

3. 绩效面谈

设定目标与打分完成后,你是否可以松一口气,告诉自己“嗯,这个季度的绩效考核终于完成了“?不然,最残酷的考验还没有到来呢。愿意回忆一下你最近一次的绩效面谈是怎么开展的吗?

“现在我们开始绩效面谈。你这次的评价是 B,因为……。有什么问题吗?没有问题的话,那就下一个”。

大约这是你所能想到的最顺利的面谈了吧,如果遇到不那么配合的员工,对话通常会演变成这样:

“现在我们开始绩效面谈。你这次的评价是 B,因为……。有什么问题吗?没有问题的话……”。

“有问题。我觉得我这个季度工作表现还不错,为什么只是这么低的评价?”

“呃,是这样的。这个季度的绩效目标中,你完成了第一项和第三项,但是第二项完全没有完成……”

“第二项没有完成不是我的问题啊,是 XX 没有及时提供文档给我,这个情况你是知道的。”

“呃,对。我知道,但是……”

“既然不是我的问题,为什么你要把这个责任算在我的头上?我觉得这个不公平。”

“你看,我们的绩效原则就是这么定的,这个也不是我定的……”

“你的意思是,我们就是这样的,即使不合理也要按照这种方式来做,是吗?”

“……”

节节败退。一旦你搬出“这个原则不是我定的”这个理由时,你就已经一败涂地了。至此,员工已经 100% 确认了你对他的评价是不公平的。你的绩效工作在 TA 身上彻底失败。那怎么才能避免这种情况呢?招一堆小绵羊似的员工,或是干脆不要做绩效,都能让你不会陷入这种境地。但是,对一个的负责任的管理者来说,这两种都不是好选择。

冲突,在绩效上与员工的冲突并不罕见。我猜想,即使是最好的管理者,也一定遇到过这种类似的被员工挑战的情况。退回到“公平”的底线,和员工讨论绩效原则是否“公平”并不是一个好的策略(记得我在前面提到过,绩效不是为了“公平”的目的而设定的吗?)。

绩效面谈是一个极好的认可你的团队成员的工作、和他共同探讨如何改进自己工作的机会。绩效面谈的重点不是和你的团队成员纠缠在每一个 0.1 分的得失上,也不是要让他认为你是绝对公平的上帝,重点是和他共同探讨如何改进自己的工作。所以,一旦对话开始纠缠在公平、0.1 分的具体分差上,立刻当机立断,引导话题到改进工作和展望下一个绩效周期吧。

要能够正确的评价敏捷环境下的测试工程师,除了设定合理的评估体系外,评估者本身是否具有足够的技能来对工程师进行评价也是一个重要问题。Michael Lopp 在《软件人才管理的艺术》这本书中建议,技术管理者应该“不要停止写代码”,这样才能保持敏锐的技术触觉,以及更好的弄清楚“如何帮助和支持工程师”。在敏捷的环境下,这一点尤其关键。如果一个测试团队的管理者不能深入了解每个项目的状况,改进,问题,那就不可能真正合理的评价在该项目中工作的测试工程师。管理者不仅需要了解测试工程师在每个项目中的任务,还必须能够深刻理解工程师在项目中采取的促进质量提高的方法,并能在方向和具体方法上对其进行指引。不管怎么说,你的团队成员是你最大的财富,尽一切努力让他们有目标,有方向,有成就感吧。

关于作者

段念:Google 中国高级测试经理,毕业于华中科技大学,先后在通讯、嵌入式软件、互联网等多个行业的国内外知名公司中从事软件开发与测试工作。对软件测试中的技术和管理工作有独到见解,对软件测试团队管理、自动化测试、性能测试与开发测试有较多研究。

2011-06-02 23:285108

评论

发布
暂无评论
发现更多内容

从 0 到 1 教你在亚马逊云科技中部署动态网站 Typecho 系统

亚马逊云科技 (Amazon Web Services)

php 亚马逊 typecho

专访 KubeVela 核心团队:如何简化云原生复杂环境下的应用交付和管理

阿里巴巴中间件

阿里云 云原生 OAM KubeVela

科创人·36氪副总裁王坤:企服产品应重视使用者体验,36氪将推出中国版「魔力象限」

科创人

企业服务

云计算时代服务器运维就用行云管家!功能齐全,福利多多!

行云管家

云计算 云管平台 服务器运维

Figma断供大疆,对国产设计软件的启示

ToB行业头条

SaaS tob 国产替代

百万大数据错题笔记

Clarke

SpringBoot性能怎样优化

编程江湖

【高效开发】不止面对面,Cloud Studio 推出 MetaWork 云协作套件

CODING DevOps

疫情 协同办公 Cloud Studio 云端编码

【OH干货】 告别代码,让Openharmony软总线测试用例跑起来!!!

拓维信息

分布式软总线 OpenHarmony

领域驱动设计入门与实践[上]

LigaAI

领域驱动设计与实践

一文弄懂Linux下五种IO模型

Linux服务器开发

epoll Linux服务器开发 Linux后台开发 select IO复用

一文读懂蓝绿发布、A/B 测试和金丝雀发布的优缺点

阿里巴巴中间件

阿里云 云原生 中间件 蓝绿发布 A/B 测试

【Altium Designer】工程的组成 & 创建

謓泽

3月月更

【IT运维】传统运维与云运维到底有什么不同呢?

行云管家

云计算 IT运维 云运维

带你详细了解mongodb数据库

编程江湖

知识社会的到来:知识管理与知识协同

小炮

知识管理

每周问答精选:PolarDB 和 PolarDB-X 的区别是什么?

阿里云数据库开源

数据库 阿里云 开源 polarDB

2022年2月视频行业用户洞察:冬奥吸引全民关注拉动视频平台出圈

易观分析

短视频 冬奥会

你可能需要知道的API接口文档神器

ModStart开源

中文版Postmna

Liam

Jmeter Postman 开发工具 swagger 测试工具

手把手教你搭建博客

亚马逊云科技 (Amazon Web Services)

Apache ShardingSphere Agent 可观察性实用指南

SphereEx

数据库 ShardingSphere SphereEx apache 社区

Flink Watermark 机制及总结

腾讯云大数据

大数据 flink 实战 流计算 Oceanus

网络安全kali之利用宏感染word文档获取shell

侠盗安全

网络安全 kali kali Linux

Sealer - 把 Kubernetes 看成操作系统集群维度的 Docker

阿里巴巴中间件

云计算 阿里云 云原生 中间件 sealer

RadonDB MySQL on Kubernetes 2.1.3 发布!

RadonDB

MySQL 数据库 Kubernetes 高可用 RadonDB

华云数据与龙蜥社区完成产品兼容互认证,携手推动开源生态体系建设与发展

OpenAnolis小助手

云计算 开源社区 生态体系 华云数据 兼容互认证

MapReduce的Shuffle过程及Hadoop优化(包括:压缩、小文件、集群优化)

编程江湖

物联网——智能点灯搭建

kof11321

面试高并发,凉了!!(全程高能,建议收藏)

冰河

并发编程 多线程 高并发 协程 异步编程

团队需要移动CRM系统的原因

低代码小观

移动 CRM 客户关系管理 CRM系统 客户关系管理系统

敏捷团队中测试工程师的绩效管理_研发效能_段念_InfoQ精选文章