曾经和一位担任测试经理不久的朋友和我谈到过他们部门建设的问题。刚开了个头,这位经理就急不可耐地倒起了苦水:“部门的工作真是不好开展,员工没有劲头……”“某某员工简直是不可救药,总是把事情办砸……”、“某某员工真是让人着急,来公司三年了,对业务也熟悉,你想要提拔她吧,她就是不上进,让她去做一点以前没做过的事情她都会惊慌失措”、“老员工都死气沉沉,新员工都没有上进心……”、“某某最近要辞职了,我也不明白怎么回事,我还一直以为他工作得很愉快呢……”。足足在发了半个多小时的牢骚以后,他仍然沉浸在自己的痛苦中。 说实在的,我真的很同情他,也很同情他现在的处境。作为一个新上任的测试经理,自然会有一股子劲头,恨不能一夜之间就让部门面貌焕然一新,恨不能让所有的员工一夜之间突飞猛进……,可惜,罗马不是一天建成的,部门管理的问题也绝对不会解决得那么轻易。
管理是一种艺术,对测试团队的管理更是一种需要小心的艺术。测试工程师一般都敏感且自尊,他们有发现缺陷的能力,自然也能轻易发现你在管理工作中的疏忽;他们能够评价应用系统,评价你的管理工作对他们来说也不是难事。
那么,真的就那么难建立一个高效的测试团队吗?实际上,管理工作的核心是“人”,作为测试部门的负责人,只要抓住了这点,就能很顺利地把整个团队调动起来。我在不同的公司经历过不同的测试团队,在我的感觉中,测试工程师其实都是很好相处的人。测试工程师不是纯粹的技术人员,他们一般来说都敏锐、有耐心、有责任心、能承受工作压力,也具有比较好的沟通能力。但是,“测试工程师”这个对他们的统称掩盖了太多他们之间的不同。
回到我们在文章最初的例子,当我问那位新测试经理“你觉得你理想中的测试工程师是什么样子的呢?”这个问题的时候,他的回答是“我希望他们都能有上进心、积极进取、有高的技术水平,同时能够承担工作压力。”我想,他的回答可能是用对自己的要求来要求部门所有的测试工程师了。一个全是将军的团队绝对不会比一个分工明确、高效协作的团队更加有战斗力。
那么,究竟如何来建立一个高效的测试团队呢?这个问题,一定是“仁者见仁,智者见智”的问题。不过在这里,我不揣冒昧,说一些自己的看法。
1 测试团队中的“人”
首先,高效的测试团队需要不同角色的“人”。根据我的经历,一般来说,测试团队中经常都有些这样类型的员工:
1.1 不同类型的员工
l 老虎
测试部门的老虎是那些有活力、有冲劲的人。他们聪明、能干、敏锐、不惧怕压力。每个我见过的测试经理都期望能找到这样的人才,可惜,这样的人才并不多见,而且,这样的人才大多都是依靠测试组织自己培养出来的,一只“外来的”虎不一定能在新的组织中也发挥虎的威力。
不过,即使在部门中有了老虎的存在,还必须为老虎创造出适合他的空间。很多测试经理都会为部门中能人的离去而烦恼,但在烦恼的同时,你有没有想过为什么他要离去?纯粹为了薪酬待遇?——实际上,老虎是很有上进心的,一旦他发觉自己只能在一个固定的环境中做固定的事情,他就会选择离开。要想留住这种类型的人才,必须为他创造一个时刻充满挑战的环境——让他开拓一片天地,让其他角色来“守城”,最可能是最合适的搭配。
l 牛
牛是最勤勤恳恳的,踏实、勤劳、敬业是牛最好的写照。这样的员工能完成你交给他的明确的任务,把明确的任务交给他是最让人放心的。但美中不足,这样的员工往往缺少主动的创造性,明明他对业务很熟悉,明明他经验很丰富,但一旦要他跳出自己习惯的工作氛围和角色,创造性地完成一些工作,他们就束手无策了。这种类型的员工让人又爱又恨,爱的是他勤勤恳恳的态度,恨的是他不肯进取的心态。
l 猴子
猴子是聪明的代名词,这种类型的员工聪明、大胆、活跃。在部门里,这类员工总是在鼓捣各种新工具、新技术、新名词。他们是工具引入的主要建议者和新技术采用的主要倡导者。这类员工对新事物有执着的热情,愿意去了解每一种他们所能接触到的新东西。对于解谜,这类员工有着天生的爱好,他们最大的兴趣就是从谜团一样的系统中找到能证明自己聪明的证据。然而,这类员工的缺点几乎和优点一样明显——缺乏持之以恒的耐心,一旦他们不得不长期进行一些重复性强的工作(例如,手工的回归测试),他们就会表现出不耐烦和由此因为疏忽产生错误。
l 长颈鹿
长颈鹿在这里并不是“迟钝”的同义词。长颈鹿通常是一个部门中最有前瞻能力的人。他们具有对软件测试深入的理解和认识,能够对测试部门的发展提出非常好的建议(而不仅仅是意见),唯一的问题是,对细节上他们总是缺乏关注,能够给出漂亮的流程图或是建议书,但如果由他来执行,则一定是一场灾难。
l 狐狸
测试部门中也会存在一些狡猾的人,我们可以把他们称为“狐狸”。狐狸这种类型的员工总是整个部门看上去最为忙碌的一个——他们为自己揽下一个又一个的工作,却用一个工作去掩饰在另一个工作上投入的无效劳动。每当你问起这类员工“A事情进行得如何?”,他们总能用“我正在忙着B事情(或是C事情)”这样的回答搪塞你。最终的结果是,经过几个月时间的忙碌,他们可能拿不出任何有效的工作成果。
l 鼹鼠
当然,这种类型的员工可能是我们都不希望见到的。他们永远都想没有睡醒一样,更多时候看到的是他们茫然的眼神。交给他的任何工作都可能没有理由地失败,而且,更可怕的是,他们很少能够从失败中学习到教训。
对这些不同类型员工来说,重要的不是改变他们的性格类型,而是要了解他们的性格类型,再根据他们的性格类型为他们分配不同的工作,让他们能够在一个能顺利施展自我和自我前进的环境中工作。
1.2 不同类型员工的对策
l 老虎——给他挑战,把部门最重要的、最困难的工作交给他,你只需要充分发挥他的主动性,定期让他汇报工作的进展就可以。让老虎觉得最安全的方法是让他能够充分证明自己的能力。当然,要注意的是,如果一个团队中有几只老虎,合理分配他们的工作(负责不同的方面)可能是一个好主意。
l 牛——让他做自己最擅长的事情。牛会很高兴自己在某个方面可以一直发展,直到成为这方面业务或是实施方面的专家。让他接手老虎开拓的工作范围,做一个好的执行者对组织是最有利的。当然,牛有时候也会提出想要一些“挑战”,这时候最好先为他准备好退路。
l 猴子——部门新技术研究的不二人选。无路是在测试自动化、测试工具引入、新的测试方法和测试技术引入方面,都可以仰仗猴子。不过,最大的风险来自于他们的不确定性和其天生地乐观心态,因此,如果让他们主导某个项目(例如,测试工具引入项目),要他们更加频繁地汇报工作进展和为他们规划细节。
l 长颈鹿——参谋。在规划部门发展的时候,可以多听听他们的意见,但最好不要让他们去完全承担部门测试过程改进的任务,在执行方面,他们可能并不会照顾到太多的细节。
l 狐狸——拿掉他用来隐藏自己的“多任务”。明确交给他一个任务,例如“完成某项目的测试”,时刻关注他们在任务进行过程中的报告,一旦发现他们主动承担不属于自己的任务,就要立刻分析,看他们是否又犯了老毛病。
l 鼹鼠——怎么说呢?给他一个机会吧。可能是他并不真正热爱这个工作,也或者是他有些心理上的疙瘩没有解开,不管怎么说,找出他这样糟糕表现的原因,如果真的没有办法改变他的工作,很可能只能选择让他离开现在的团队了。
1.3 团队成员的默契
没有一个测试团队可以依靠一个人取得成功,成功必然是大家共同努力的结果。在短时间内建立一支成功的团队非常困难,因为你必须按照部门的规划去了解每个团队成员、对他们进行培训、在必要的时候重新培训等等。
然而,由于种种原因,一个团队不可能总保持在建立之初的状态,有老成员的离开、也有新成员的加入。团队规模可能在变化,团队承担的职责也可能在发生变化。那么,在这些变化的同时,我们怎样让一个团队始终保持人员上相对的成功呢?答案就是“默契”。
一个团队必须依靠制度才能建立这种默契。比如,建立员工之间的定期的沟通会、强制的培训和接受培训的机制、人员的定期轮换、岗位角色的互相备份等等。这方面没有定式可以遵循,每个人都可以按照自己团队的特点来建立体系,但必须要有这样的体系,才能将团队的成果和发展以某种形式固定下来。
2 测试团队的“规则”和“氛围”
除了人员之外,最重要的就是团队的“规则”,也就是团队赖以生存的规范土壤了。一个团队的战斗力更多地体现在“令行禁止”上,因此,对成功的测试团队而言,必须要有明确的角色分工和明确的团队规则。
另外,“氛围”也是测试团队的一个重要因素。所谓测试团队的氛围,就是一种置身其中的感受,一个高效的测试团队,必然有良好的氛围。
2.1 学习和交流的氛围
一个高效的团队必然是一个持续学习的团队。测试团队中每个测试工程师其实都会对自己的未来有自己的规划,也会希望自己能够在团队中学习到更多的知识和技能。高效团队依赖团队中的每一个人来达到“高效”的目的,也要求每个团队成员都具有良好的技能,因此,学习的氛围是高效的测试团队必不可少的。
但是,要建设学习型组织,并不是一件轻易的事情。组织不可能把学习作为一个任务来下达,因此学习必须要与工作进行结合;另外,如何调动组织中“能者”带动“暂时不能者”进行学习,也是很有技巧的事情。
l 部门讲师制度
部门讲师制度是一种比较有效的制度。在我的实践中,部门讲师是一种权利,也是一种责任:“部门讲师”认证是获得“高级测试工程师”级别的必要条件;同时,要保留住“部门讲师”的认证,必须保证每月至少4个小时的内部课程,而且,内部课程获得的评价要大于平均8分。
除此之外,每年评选一次年度的“最佳内部讲师”,每年对内部讲师进行一次重新认证,内部讲师可以优先获得一些外部交流的机会等等,这些都进一步将内部讲师变成了一种荣誉,从而使更多的成员愿意为整个团队奉献自己的知识和经验。
l 专题研究
测试工程师都知道,测试工作最容易陷入的一种不好的工作状态就是“事件驱动”——测试工程师整天忙于处理临时的突发事件,而忽略了自身技能的提升和部门长远的目标。这种状态一旦持续下去,形成惯性,测试团队的成员很容易产生厌倦和倦怠的情绪,失去目标和方向,而这种没有目标和方向的氛围又很容易影响到整个团队的士气,乃至于导致人员的流失。
我在工作中会采用一种“专题研究”的指导方式。实际上,在测试团队中,可以进行的研究和提高工作是非常多的,我们正好可以利用测试工作的“间歇性”特点,在不是很紧张的时候进行一些针对性的研究工作。之所以采用专题的方式进行研究,是因为要确定研究的目标,否则,研究工作没有目标的指引,很容易就会被忽略。而且,这种专题研究不要设置过大的专题,最好是能够在短时间内可以看到一定成果的专题。
l 重总结的气氛
及时对自己的工作进行总结是一个非常良好的提升个人和组织能力的机会,一定要在组织内建立这种“重视总结”的氛围。总结并不仅仅是描述做了哪些事,更重要的是,要总结得失——“我们在这次的工作/项目中得到了什么?哪些地方有失误?能不能做得更好?”总结的目的不是为了惩罚某个人,而是为了让团队成员都能看到工作中的成绩和不足,总结出好的地方形成流程或是规范,从而提升个人能力和组织的能力。
2.2 用制度和流程形成团队的战斗力
l 制度流程先行
“没有规矩,不成方圆”。一个高效的测试团队同时也一定是一支纪律严明的队伍。我们团队的每一个新入职者,不是首先去学习业务知识和测试技能,而是首先用一个月的时间学习我们的测试流程和工作规范,因为这些才是团队最直接的经验总结和提炼。
l 知识不止是个人的,更是团队的
人员的交替对测试团队来说很很正常的事情,但无论人员如何变化,测试团队必须要能够保证团队不会由于某个人的离去而不能正常运转。我们在前面提到了“人员备份”的概念,除了“人员备份”之外,还必须通过一定的制度来保证人员的经验和知识能及时转化成团队的知识和经验。
Ø “项目总结”制度可以保证在每个测试项目结束时,项目成员的经验能够体现为组织的经验;
Ø “部门讲师制度”可以让个体(讲师)的技能与知识通过文字、语言的方式成为团队的知识和技能;
最后建立高效的测试团队并不是一个轻松的任务,但也绝对不是“Mission Impossible”,只要团队的管理者能够管好“人”、“制度”、营造良好的“氛围”,相信每个管理者都能营造具有特色的成功高效的团队。