最近一直在想怎么去更好地解释自我价值。虽然之前写过一些相关的文章,可能是过于偏理念和认知,有些同学还是不太清楚落地下来应该是个什么样子,在私信里也给了我一些反馈。所以我想今天还是用一些实际例子来讲讲这个问题。
我们一直在说测试要被重视,就得体现自己的价值。要是觉得“价值”这个词还是太抽象,那么我们可以换个词叫“专业性”。怎么理解专业性?如果某件事情我能干,普通人轻易干不了,那么我就具备这件事上的专业性。
举一个实际发生过的例子。我们团队接到过一个很紧急的项目:把某个产品从平台 A 移植到平台 B,两边的技术栈不一样,发布时间是定死的,需求也只知道个大概。这个情况让项目组的很多人打起了退堂鼓,而测试的责任落在了 M 同学身上。
M 接到任务之后,立即就找到我,表示这个工作量和时间,质量不可能保证。我首先肯定了他的风险意识和及时反馈,然后给了他第一个建议:做任何事情之前最好先搞清楚目标是什么。
而后我们一起约了项目经理,重新对了一遍项目背景,得出的结论是:我们没必要完整移植,只要具备最核心的能力就行。就这样功能范围做了大幅削减。我再问 M:现在这些功能点,你能按期完成吗?M 想了想,说还得知道开发的排期。
于是我和他又约了研发负责人,确定提测时间是 x 月 x 日。M 同学回去之后把测试用例整理成脑图,详细标注了每个模块的计划工时,给我的反馈是时间还是不够。我又给了他第二个建议:如果不能改变时间,那能不能改变方式?
我们再次约了研发负责人,调整了一下提测形式:开发按独立模块推进,不追求整体提测,模块完成之后即可部分提交,前端先使用 Mock 方式验证。虽然会增加重复测试的情况,但测试时间可以整体提前。我又问 M:那么现在能按期完成吗?M 很开心地说可以,让我放心。
离项目发布节点仅剩两天的时候,M 略显不好意思地跟我说:这次实在是没有办法了,有个缺陷挺严重的,研发定位不到原因,项目又不能延迟,希望我能通过审批,允许特殊发布。
我无奈地问他,需要我审批的意义是什么?解决问题?还是免除责任?M 回答他做了所有他能做的事,定位不到原因也不是测试的责任。我给了他第三个建议:这不是责任的问题,是专业的问题。我不在意要定谁的责任,我只在意质量能不能做好。
随后我们发起了一个会议邀请,和项目组一起找找应对办法。缺陷的表象是服务启动时包含一个主进程和十个子线程,但子线程数总会不定时减少直至完全归零。经过讨论大伙确定了一个临时解决方案:先不使用这个服务,把数据发送到老的稳定系统中,通过标识符来区分新老系统的内容。
很快这个方案就被采纳,项目最终也顺利按时发布。而那个“诡异”的缺陷在一周后发现其实是由于异常格式的数据引起的。随着问题的修复,这件事情也就告一段落。后来我和 M 单独进行了一次复盘,总结的一点是:我们的专业度,靠的不是规范和流程约束,而是面对变化和问题的时候,能够做出自己的判断和决定。
前两年有次做团队内部述职,我给团队同学打过一个比方:当产品质量出现问题的时候,我们总能找到各种原因,比如需求总是写不全,开发总是改代码,测试总是有遗漏,这一切都是自然的、合理的、无法解决的,那测试到底在承担什么责任?如果测试不敢承担责任,那凭什么要重视我们?
权利和责任从来都是对等的,想让自己得到更多认可,需要的是“我来搞定”而不是“这不是我的问题”。从某种程度上说,对错其实没有那么重要,没有责任也就意味着没有价值。坚持自己的初心,坚守自己的底线,时间自然会给予我们一切的答案。