本帖最后由 lyscser 于 2011-5-19 08:18 编辑
话说我们测试部门巅峰时期曾经有150多人,后来由于集团业务发展,测试部门分成了两个,我们部门保有110人左右,另一个测试部门约有70多人吧。新生的部门我不了解,单看我所在的这个庞大的测试部门,我这两年来(除了今年,今年笔者不吱声了)一直不断地诟病方方面面的问题,向领导反馈但由于没有给出实际解决方案而最终无法“上达天听”,最后也就变成了敢怒不屑言,现在索性写出来给自己、给大家看看吧,或许从字面上能发现一些解决的途径。
整体层次感模糊
说到资深测试工程师这个头衔,我觉得更多的不是体现技术能力和头脑的灵活,而是工作经验、综合实例和资历,在公司内部有一定的人脉,有着与干系人较多的合作经验。当然,不同的公司依据自身的体制对测试人员的称呼也有所不同,我们这里不去纠结这个。我们公司是采用职级制度,初级测试工程师的可能就是指本科毕业3年以内的同事,也就是在工作2年后由初级升到资深,当然这两年的考核要在一定的百分比之内。那么由初级升到资深看起来是件很简单的事情了,或许正是因为这个资深的头衔来的太过简单吧,我们的整个测试部门没有综合能力上的层次感,有些工作3年或者5年的同事与工作2年之内的同事在各个方面没有多大差别。另一方面,在日常工作中领导并没有把测试分析、测试设计、和测试执行在资深测试工程师和初级测试工程师之间进行明确的分工,往往由某一个人全程负责测试分析、设计和执行。虽然我们尝试过使用测试执行工程师(执行员),但是沟通成本太高几乎让所有的测试工程师都抱怨不休;另外,对测试执行员没有有效的培养和激励机制,而且领导决定原则上只招收大专毕业生(摆明了就是学历歧视),导致他们本身工作也没有多大积极性,这个划分体系也就渐趋式微了。
针对这种情况,我认为应该从职责和职位上进行细化分解,把测试工作逐层分离,这样对于测试部门这样的成本中心来说,人员流失就是不很大的问题了。因为依据能力合理分解工作,职责分明,进一步铲除吃大锅饭的意识,让能力更强的人承担更加有价值的工作,也能吸引更多人才,而不会让这些真正的“能人”的出走带动连锁效应,造成很大的人员损失,因为这些能力更强的测试人员的非职权影响力也是不可小视的;我亲见过(在我上一家公司)一个牛人辞职陆续带走一群人的情况。具体如何分层划分测试部门的职责和职位呢,具体情况具体对待,我觉得大致可以参考如下结构,由上级领导进行技术和综合能力的考评,而不使用资历评判:
1、测试部门经理、测试总监、质量总监——负责管理整个测试部门的人力资源; 2、分组测试经理——适合20人以上的测试部门,因为每个团队最佳配置应该是8、9个人; 3、技术主管/测试架构师——每个分组配备一位技术主管或者测试架构师; 4、高级测试工程师——通常5年以上经验而且达到一定技术层次; 5、中级测试工程师——通常3年以上经验并且满足一定技术层次; 6、初级测试工程师——通常是应届毕业初几年,刚开始工作的同事。
作为一个测试主管,如果你让大家所从事的工作内容都基本一致,而你却跟别人说资深测试工程师的一个人月的成本是15万,初级测试工程师的成本是9万5,你这不是自欺欺人么?除了资深测试工程师的工资比初级测试工程师的高一些还有什么差别呢?另外,既然工作内容一样,凭什么资深的要比非资深的工资高呢?
当然,或许你会回答说资深测试工程师业务知识熟悉得多,那么我们来看看包含业务知识在内的各个方面的综合能力发展情况吧。
综合能力不健全
既然是软件测试,那么测试人员至少应该具备三个能力:业务知识、IT专业技能、职业技能。一般情况下,对于资深测试工程师来说,由于长期在一个公司或者一个行业工作(喜欢换行的咱们不讨论),他们的业务知识一般的确比初级测试工程师熟悉很多。
而他们优势最明显的是职业技能,职业技能对测试来说较多的体现在沟通能力、协调能力上。但是,在我们公司,这个词并不见得代表一种正面的解释,是因为有部分人把这种能力变成了扯皮、推诿的能力!尤其在一个部门非常多的公司,长期的跨部门协作练就了他们敏感的神经和打哈哈神功:不轻易明确自己所代表的测试部门的立场,不发表与多数人意见相悖的言论,哪怕自己有十足的把握大家的看法是有疏忽或者片面的,自我保护意识很强……甚至有些人根本不认为自己有权利和义务去否决有严重问题的版本的下发!十分崇尚升级,事无巨细,只要自己没有经历过的便推到领导那里,即便自己有权利和能力去分析决断。看起来是一个十分没有个性、十分听话的员工或者团队,如果本职工作进行得不错,那么领导是十分喜欢的,因为他们从不“捣乱”。相反,也有一部分人喜欢“倒江湖”,相信自己能够代表所有人,很豪爽,喜欢随意许诺,有时候犯的错误会让领导“恨得牙直痒痒”。相比之下,初级测试工程师由于大都刚从校园出来,显得稚嫩而直率的多,虽然错误不会少犯,但是如果善加诱导,他们的进步会让人看在眼里、喜在心里。如何能够让他们避免过多接触“扯皮神功”和“倒江湖神功”就要看公司的体制了。就我们公司来看,如果没有重大变革发生,大部分应届毕业生将会延续前辈们的旅程,可惜我也只是动动嘴皮子,未必能提供什么有建设性的意见,但愿英明的领导们能洞察这些细节,不要让这种怪圈循环持续下去了。
在IT专业技能上,有两种发展趋势:一种是随着经验越多技术越强、大局意识越强;另外一种是被温水煮的青蛙,慢慢的失去跳跃的能力,那么等着被开水烫死,要么跳出去……由于温差太大而被冻死。很悲剧的是我周围有大半的测试同事走向了第二条道路,可能随着年龄的增长,学习和接受新知识的能力在下降吧,我们很多资深的老同事对新技术、新方法持怀疑、观望甚至抵触的态度。这样一来整个测试部门的情绪看起来并不那么高,学习氛围不是很好,整体技术水平不高,而且断层明显。比如在我们部门,且不讨论测试分析设计本身的能力,了解QTP的可能有90人,但是精通的不过2、3人,其余的只停留在简单的录制、修改的层次;了解Selenium的20来人,精通的可能仅1、2人甚至没有;了解Oracle和SQL的100多人,懂得优化算法和SQL效率优化的也不过3、5人;了解性能测试的大约50人,精通它的2、3人而已,还有中间件、操作系统……而且我发现,就是那么几个人对各种技术都有涉猎,而其余的同事则似乎是没有强压根本不会去学习,遑论深入研究了。我分析造成这种局面的原因有这么几点:
1、价值取向或者说兴趣不在技术本身,对于偏资深的测试工程师来说,大部分可能都已经成家,他们不愿意挤出时间在技术研究学习上,而更乐于回去照顾宝宝。我曾经尝试举办很多次技术分享和请外援来进行技术培训,但是大家都报着拿培训积分的态度去参加,培训完毕立刻就忘记了,根本不去主动尝试研究和应用。这一点基本无法改变,除非有足够多的利益放在他们面前,但是这这种诱惑也会养成娇纵的情绪,是不可取的。
2、公司运作方式决定了大家的工作很忙碌,一个测试人员要应对10来个开发人员的代码,压力大貌似很锻炼人,但是只是锻炼我们时间管理和处理并行任务的能力,并没有给我们留下多少学习的空间。而且在这种情况下工作,即便有朝一日清闲下来,很多人也不再愿意学习了:人的能力就像弹簧,拉直了就再也缩不回去了!
3、有些领导信奉这么一个观点:公司付薪水是让你们工作的而不是学习的云云……对这种说法吾深鄙视之!殊不知所谓的学习不仅是对个人的提升,也是在为公司提高产能。如果整个测试部门在使用QTP作为UI测试的工具,那么就不能留出一些时间让对Selenium很有兴趣的同事去研究一下Selenium么?假如有朝一日需要这么一种工具或框架的支持,谁能担当此任呢?
4、测试部门的培训机制不健全,偶尔有培训的机会,便进行大规模的“推广培训”,没有提供有效的技术深入探讨和学习的机会,例如参加测试沙龙、举办技术交流会议,或者搭建知识共享体系,仅有的一个Wiki到如今我也不知道自己的用户名和密码是啥。负责培训的人好像只是为了花完这笔培训预算而进行培训,根本不在乎大家整体的知识层次是怎样的,也就不去仔细的调查分析。如果不分析就提供几门看似华丽但是毫无用处的课程让大家自己去选,还要这个负责人有什么用呢?
这样看来,随着我们的“资”变得越来越深,我们的综合能力好像并没有得到质的提升,所谓的资深测试工程师,好像除了业务知识并没有什么优势了。相反初级测试工程师看起来则更有学习的欲望,更容易管理。人说职业发展要经历:有冲劲期、疲惫麻木期,之后再回到有干劲的状态,这种理论在我们这基本属于扯淡,因为我们的测试人员看起来只要一旦疲惫就必定会辞职……恢复有干劲的状态那是在别处的事情了,我们这是看不着了吧。
论坛发贴字数有限制,全文请看http://www.51testing.com/index.php?uid-68857-action-viewspace-itemid-236965 |