优品软件培育计划【第三期】—— 软件质量团队管理
2020/11/13


优品软件培育计划百场前沿技术系列讲座直播的第三场为大家请到的是拥有近百人质量团队管理经验的老徐,他同时也是测试行业TOP公号「简尚」、独立测试博客isTester.com的创始人,拥有行业内近10W软件测试关注者。为大家带来《软件质量团队管理》专题讲座,现将讲座内容整理如下,与大家分享。



-正文-

做技术管理,尤其是做测试管理,它跟普通的管理是不太一样的,市面上关于技术管理该怎么做这类的书籍资料也非常少,这就需要我们从“过来人”的经验和实践中去总结学习。在本次讲座中,主讲人从如何招人、如何营造团队氛围、如何去做人员互备、如何为团队赋能(解放自己,提升效率)、不同的团队规模怎么玩,这几个方面进行了分享。


以下是根据讲座内容进行的整理:

01

招人难题


技术管理与其他管理岗有何不同 ?


市面上的很多管理书籍一般会介绍建立管理制度、考核、考勤等各种制度,严格按照人的逻辑去管理,但是对于我们技术领域,这样肯定是不行的。像我本身所在的行业是整个互联网最快节奏的电商领域,加班是常态化的,那如果按照严格的制度去管理,基本是不可能的。我带领团队的方式是,只要你的事情做完了,今天想休息就可以休息,只要给我的结果是OK的,哪怕不来也是可以的。


不能脱离技术


做技术管理,不能脱离技术。有很多人问我,自己的技术不太可以,怎么做管理?我给他的建议是,可以去把自己的整个知识体系的宽度完善起来,深度的话是可以都略懂,或者擅长其中一二。这样就可以做到在某一些点上可以去指导团队,其他的点可以通过团队里招一些技术比较牛的专项的人去解决。但是从整个横向领域你一定是综合能力最强的,在某一些点上可以指导大家,所以说不能脱离技术。如果把技术放弃了,去学习一些管理的技巧,管人的技巧,其实收效甚微,对带领好技术团队作用没那么大。


技术人不来虚的


作为测试团队,它是属于一个中间地带,需要跟上游的产品、设计、开发,下游的技术支持团队、客服团队甚至客户去打交道。这句“技术人不来虚的”主要是指的跟“上游”开发去打交道时,围绕事去做,没有所谓的“职场规则”之类,我有什么事情向你去解答,你有什么事情向我来沟通就可以了,不需要那么复杂。


关注成员成长


我自己带团队不只是告诉成员,你来公司可以拿多少薪资,我更关注的是大家在团队里是否成长了,哪怕跳槽出去,薪资是否可以double,围绕这个目标去培养团队。


如果你是一个leader,你要关注团队的每个成员的能力边界在哪里,他的擅长点在哪里,他的兴趣点在哪里,根据成员的这些特点属性有针对性地去安排适合他的一些工作。


以上是根据这几个问题去做的分析,那么招人难题怎么去解决呢?我们要明确一个人在求职的时候他关注什么,第一个是薪资、第二个是是否能学到东西,最后就是你这个团队的氛围怎么样。所以面试的时候,你给面试者的印象是非常关键的。这样在他有多个offer对比的情况下,他会想“这个面试官是我的直属leader,他对我的印象还不错”,在其他条件都差不多的情况下,这样他会优先选择你的团队。


其实招人最重要的一个渠道是“内推”,团队的成员主动介绍自己的朋友加入团队。那如何调动大家内推的积极性,一定是他对整个团队是很满意的,这样他才会愿意介绍自己的朋友进来。这也是上面跟大家探讨那几个问题的原因,这些都是紧密相关的。

02

团队氛围


我自己本身是从来不“压榨”团队成员的时间的,从最近流行的“打工人”这个梗来说,大家都是打工人,把活干好就ok。如何营造团队氛围,我一般是给大家足够的自主性。假设现在有10个项目,每个项目2个版本,一共20个版本,你的团队有10个人,怎么去分配?从正常的管理角度来讲是按照人去分,哪些项目哪些人来做,每个项目都有一个主测,有其他人去做backup。如果说项目是他自己选的,版本的测试时间也是他自己估算的,整个过程也有人去指导,那这种情况下,应该还好,不会有太大的抱怨。


再一个是给大家足够的自由,不规定大家的上下班时间,当然在不违反公司的管理制度的前提下。所有的团队原则都是先遵循公司的原则,再去在团队里做灵活的变通。


请假、迟到、调休等事情我都不会去管,但是前提是该做的事情要做完。如果事情没做完,或者有许多bug的前提下还上线,这种情况我一般都会去找他聊,不适合团队的果断辞退。


初入测试Leader的障碍

第一个,事必躬亲,就是什么事情都自己做,也不给大家成长的机会。如果什么事情都不给大家锻炼的机会,也怕大家犯错,那大家什么都接触不到,你自己也会非常累。给大家一个建议,一些非核心项目,出了bug不会有太大影响的项目交给想尝试的成员去尝试。这些我一般都交给实习生、应届生去处理,年轻人是需要去历练的,如果你不给他任何项目,可能他待一年也还是什么都不懂。

不知如何放手。很多测试从业者干两三年依旧是什么不懂,当然有可能是他自己的问题,但也有一种可能就是他的leader根本不给他任何机会。就像上面说的,在“把这件事情交给他,即使犯了错,你能承受的范围内”把事情交给他去做。核心项目交给有技术经验的、信得过的人去做,非核心项目交给大家去锻炼。

不懂资源分配。再一个资源分配怎么分?先说10个人的团队,一个项目怎么分?我一般是老人带新人,然后逐步老人退出,让新人来做,然后老人去做核心的事情。10个人以内的测试团队,很简单,做好业务测试就好了。但是如果到了50人(30人以上),那我就会独立出一个测试开发团队,至少有两三人来做,不一定是做自己的工具,没必要重复做轮子,如果市面上有好的工具,可以借助现有的工具来做。


首先可以在开源的测试工具的基础上去做二次开发,再就是可以去做一些接口测试工具来提高业务测试团队的测试效率,最后就是给测试团队做一些数据、做一些环境。这也是团队里比较阻碍测试效率的一些关键点。


大家可以去了解一下,大家也可以去思考一下,你们团队阻碍效率的地方到底在哪里?首先第一个,造数据,非常费时间,特别是你的项目非常复杂,涉及到多个系统,涉及到多个部门,涉及到跨团队,跨地域、跨时区的,那更麻烦,沟通根本没法沟通。这时候就最好是自己通过一些接口工具、数据工具、脚本工具来去解决你这个团队需要用到的一些上下游的数据。最大的测试阻碍就是造数据。还有就是环境,环境这块也可以去做。针对资源分配我的建议就是这种“业务测试团队+测试开发团队”的这样一个双组合。


(注:使用道普云测试SaaS平台测试工具,可实现测试环境部署自动化,节省企业软件测试成本最高可达80%,点击文末海报扫码可申请产品试用)

不知如何差异化培养。怎么样去差异化培养,这是技术团队管理中比较重要的一点。我建议一个团队里面,不要所有的人都做一样的事情,就算是所有人都是业务测试工程师,他也应该要有一些差异,比如说,这个人重点在核心业务场景的测试,另外一些在核心终端的测试,另外一些人去做不同业务的一些测试,最后还有一些人是去做提升团队效率的一些测试。


再就是根据成员能力的边界,能力的差异化去做培养。比如说,软件测试工程师常用的知识体系,必备的SQL Linux是不是每个人都必须懂?如果有些成员完全没有任何基础,可以选择放弃,就让他去做业务测试就好了。

找不到努力的重点,很累,领导却不满意。最后一点是写给所有测试管理者的,这不只是测试管理者,这是所有管理者都会面对的一个问题。对于这个问题,首先是在效率和质量双向提升的目标下做事,再就是,了解上级领导对你这个部门的整体希望是什么样的,未来规划是什么?希望你把这个团队提升哪些方面?如果只是全部负责业务,那么你的团队可能就跟不上公司的发展节奏,就有可能被并到其他的开发团队,或者被拆分掉。

03

几个问题


你适合做管理吗?


首先你能解决团队的问题,你有一定的技术基础,沟通能力很强,快速学习知识、业务的能力也很强。那你就可以去做。


很多人想转技术管理


很多朋友,做测试做到5年,就出现瓶颈了,业务无法继续深入,技术也深入不下去了,做测试开发也做不了,这个时候就只剩一条路了“往测试管理的方向走”。


我建议不是所有人都可以做测试管理的,比如说你不擅长沟通、解决问题的能力也不突出,只是对技术感兴趣,专心往测试开发这条路走是比较好的。


需要具备什么?

首先是懂技术,有技术背景,再就沟通能力非常强,第三个是知识体系的宽度也ok,再就是有一两项的技术深度。可以很开心地去做管理这件事,也可以给团队去解决事情,对整个行业前沿非常了解,可以为团队做一些规划。


管理者就是服务于整个团队的,去为整个团队解决问题。

04

赋能


赋能对团队管理者来说,是比较重要的一件事,做管理需要去关注整个部门的整体产出。要让整个团队的能力和效率都有所提升,因为公司要发展,项目会越来越多,节奏会越来越快,如果团队成员的能力和效率没有提升,那肯定压力会越来越大,导致最后扛不住离职,造成“招人-离职-招人-离职”的恶性循环。


管理者也将又回到招人的环节去,招人也不是一件轻松的事情,招到一个合适的人也不是那么简单。所以给大家的建议是给团队“赋能”。


如何管理比自己牛逼的员工?

一个团队里一定有一个比你更牛的成员,如果你就是整个团队的能力天花板,遇到事情只有你能解决,当你分身乏术的时候,这个问题就没有人能搞得定,但是管理者的精力都是比较分散的,当所有事情都需要你来解决的时候,问题是很严重的。建议去招比自己更牛的成员进来,整个团队才会更加良性健康发展。


很多管理者会担心,我招一个比自己牛的成员,那自己会不会被替代了?首先,比较牛的人一般是在专项的领域有一定的深度,但是你一定是在横向、纵向都有的。如果管理者确实什么都不懂,那样是比较危险的,基本上管不住这样的人。


那怎么去管理比自己牛的成员呢?


首先,在他专项的领域,可以利用你业界经验和知识体系引导他在这个领域继续往下深入。再就是在他的专项领域里面可以引导他去学习一到两个横向的知识。第三个点是,给他充足的发挥空间和决断能力,这个点他就是最专业的,那就交给他去做。


最后再聚焦一下团队赋能的几个手段:


第一个就是让成员在项目中成长。尽量让成员去做一些在当前能力下有挑战的一些项目,安排专人指导,实现能力边界的一个提升。再就是团队分享,不要拘泥于形式,经验、知识以及遇到过的一些“坑”。再就是整个团队内部的知识库,如果没有知识库的建议大家去做一下,这个还是比较重要的。

05

不同的团队规模怎么玩


2-3 人需要管吗 ?


为什么写2-3人需要管吗?正常2-3人是没有什么管理的概念的,如果2-3个人再加一些管理的东西反而是一些累赘。大家各自做好负责的内容,做好业务测试、做好场景测试、不要出现线上问题,该用的一些工具都用上,对每一个线上问题做好分析,让问题越来越少,这就可以了。


10人内 怎么带 ?


这种情况一般是公司内部有几个项目,每个人会跟几个项目,然后抽一个leader出来,这个时候leader可以不用参与到每个项目中,但是建议大家把每一个项目去做了解,了解每个项目的业务。抽离出核心的项目,安排核心的人去做核心的业务。


在项目不是很忙的前提下,可以抽离出半个人,也就是这个人可以测项目,但是项目不要安排太多,安排他去做一些接口之类。如果说你的团队结构是比较合理的,每个人都懂一点接口,那就大家自己的接口自己做。但是有一个人可以研究一下怎么样可以让接口测试的效率变得更高一些。用半个人的人力去做一些接口测试工具的改善。或者说做一些测试数据的脚本,但是性能这块,10个人的团队是达不到1个人的指标去做性能的,团队里面有一两个懂就OK了。


30人 怎么带 ?


30人来说一般就是整个部门了,如果不是一个部门,也至少是技术中心或者研发中心下面的一个大团队。我建议是,抽出2-3人,组建一个测试开发组,去做这个事情。管理者更多去做上下游的沟通,给大家去争取一些资源。更多的是思考,团队效率怎么提升?怎么样去解决团队问题?


我的建议是测试开发团队去提升效率,管理者来关注整个的质量提升,引入一些新的工具来解决团队问题。


50人以上 怎么带 ?100人呢 ?


50-100人的测试团队现在并不多,现在的团队都比较崇尚“尽量拆分”,像100人的团队一般都会拆分成独立的事业部、事业中心去组建不同的测试团队。如果到100人肯定有测试总监、测试经理和测试组长,一般会拆分成两个测试经理来带,每个测试经理带三四十人,所以做法呢还是上面讲的30人团队那样去做。


建议成立工程效率提升这一块团队,去提升整个研发的效率。这个时候就可以组建一个测试管理部,除了工程效能,还会涉及到工具研发等方面,不仅可以做到测试效率的提升,也可以做到研发效率的提升,将上下游串联起来。
(End)