在众多的科技型组织尤其是信息技术行业组织中,研发部门都是一个重要的部门,研发部门生产的产品创造的收益,是组织生存和发展的基础。因此,研发部门的管理是这些组织管理的重中之重。
研发部门很像一辆战车,带着武器(产品)冲进战场(市场)消灭敌人(竞争对手)占领城池(市场份额),这样的一辆战车,要想跑得快走得好,选好马做好车是必须的,笔者认为人才、技术、制度是研发部门管理的三驾马车。
【第一架马车:人才】
事情是要靠人去做的,尤其是在研发部门这样创造性的组织中,人的作用难以被自动化的设备所取代,因此人才的管理就非常重要。因为优秀人才的出走而导致组织分崩离析的事情我们听得并不少,因此人才可算是研发部门管理的第一架马车。
对人才的管理需要从以下几个方面考虑:
1、岗位和职责:所谓岗位和职责,指组织应充分考虑自身需要完成什么样的工作,完成这些工作的人需要具备什么样的技能,完成这些工作的人应该站在什么岗位上。一般的组织都会有一份岗位说明书对岗位和职责进行说明,这是人才管理的根本,关于岗位说明书,网络上类似的内容已经太多,不再详谈。如果组织不能对岗位和职责进行规划,就会造成“做不该做的事、做不了该做的事”的乱象,笔者曾见过一个软件公司规模不大,做的产品规模也不大,却花高价招聘了软件架构师和数据仓库专家,结果二人入职后没有发挥专长的机会,数月之后便离职。
2、职位职级:组织应建立职位职级体系,如职位包括软件工程师、测试工程师等,职级如技术1级、技术2级、管理1级这样的,明确规定每一种职位包含哪些职级、每一种职级的工资福利范围、职级的晋升下降标准、职位的转换标准等等,并让所有人知道这样的标准。一方面,职级的存在让员工有升值的目标和动力,可以激发员工的积极性;另一方面,职位职级的透明性避免了不透明带来的互相揣测猜忌引起的内部不合。没有职位职级的存在是很多中小规模组织的通病,员工看不到自身的进步、感受不到组织的认可、感到被不公平对待都是人员流动的原因。
3、绩效考核:关于绩效考核,无论是多么完美的方案,每一个组织中都会有人抱怨,我们怎么可能满足每一个人的要求呢?但是最起码我们可以做到公平。绩效考核包含两个部分,一部分是绩效的内容,一部分是考核的标准和方法。很多组织中不明确绩效的组成,一到月底就这个人绩效是A另一个人是B反正都凭印象,甚至有的组织规定不同等级绩效的比例,这样员工对管理层会满意吗?对高绩效的人满意吗?有努力工作的动力嘛?有生产高标准工作产品的动力嘛?所以,组织必须明确每一个岗位绩效考核的内容,如测试工程师测试出的bug数量等等,并明确考核的标准和方法,如什么样的bug算有效的,数据从哪里来等等,这些内容、标准、方法应该让组织所有成员明确的指导,这样才可以激发大家更好的工作的动力,即使绩效不高,也可以说明原因尽量消除不透明带来的不满。
4、人才培养:作为“白领”,研发部门的成员对组织的要求不像生产线工人那样有工资那就行的要求,他们除了物质上的考虑,更多的是考虑的自身的成长和发展。因此,组织必须满足他们的这点正当的追求,君不见,时至今日追求职业发展是白领换工作的最重要原因。组织应结合组织的目标建立人才培养机制而非根据员工的期望,如企业用MySQL做为生产工具而员工希望更多的学习Oracle以提高自己的含金量的要求是万万不应该满足的,组织应该识别正常工作需要的技能库并在技能库的范围内通过新老员工帮带、内部培训、外部培训等方式帮助员工成长。员工成长了不仅仅能更好的完成工作,同时也会感激组织。
5、文化建设:所谓文化,就是一种价值观。简单说,就是在这个部门中,倡导做什么事情,反对做什么事情。一个部门的文化,是在部门管理者的不断教导下,逐渐形成的部门所有人员所共同认知的价值观。因此,部门管理者要把价值观逐渐提炼出来,明确化,并在部门日常运作中不断贯彻落实,让部门每一个人都认知,都认同,都执行。
6、团队建设:团队是一个自己纪律约束的组织,是一个建立在技术能力和人与人之间团结理解的组织,团队的核心是团队的管理者,一个基层团队的人员的责任人、自信心、成就感其最大的影响就是来自这个团队的管理者,首先对管理者来说,要做到以诚对人,诚信两个字是最重要的,人和人的关系是平等的,仅仅不过只是分工不同而已,一些从事技术,一些从事管理,没有谁优越谁的说法,第二管理者要做到以身作则,或者是身先士卒,第三加强沟通,加强对团队里人的理解, "能攻心,则反侧自消,自古之兵非好战;不审势,即宽严皆误……"。当员工内部存在矛盾时,及时发现,及时化解。从各方面保证员工的权益,平时组织一些有利于身心健康的集体活动,增加员工之间的感情,另外也应该定期不定期的招开内部沟通的工作会议,如例会等。
【第二架马车:技术】
一个研发为主的组织自然靠技术取胜,市场上因技术失去竞争力而导致组织衰败的例子数不胜数,因此技术可算是研发部门管理的第二架马车。
对于技术的管理需要从以下几个方面考虑:
1、技术方向:技术方向是技术管理之本,方向决定了成败。技术方向包括开发工具、开发语言、开发框架等等。笔者见过一家公司,百人左右的研发人员规模,使用的技术却各有不一,开发语言有用JAVA的,有用.Net的,还有用C++的;数据库有用MSSQL的,有用MySQL的,还有用Oracle的;配置库有用SVN的、有用VSS的、有用TFS的;即便是同用JAVA语言开发的,也有用不同框架的,如有Spring的,有用Quartz的,有用Webwork的不一而足。试问,这么多的技术方向如何专一,每一个都要花时间学习研究,人又不够,会的人走了项目就做不下去了,产品如何维护?所以组织应尽量使用同样的技术,这样可以最小的降低学习成本、开发成本、维护成本。
2、技术积累:组织在从小发展壮大的过程中,需要用到的、掌握的技术一般也是增多的,一些组织中不注重对技术的积累,往往一个项目用到了某项技术,花了很大功夫学习研究,等再去做另一个项目的时候,由于当初懂这个技术的人员离职等原因又必须全部重新学习研究。如果对于工作中用到的每项技术,无论难易,都积累起来,对于使用到相同或者类似技术的时候是否学习研究的成本就降低很多了呢?譬如,一些组织在发展的过程中发现,开发的很多功能、用到的技术都是重复的,所以就形成了公共模块、技术平台,极大地降低了新产品、新项目的开发成本。
3、技术分享:在很多的组织中,项目之间的技术往往是得不到分享的,这就造成的重复开发的浪费。这点Google就比较好,他们内部的代码库可以供内部开发人员搜索,一旦发现可重用的就直接拷贝粘贴,成本降低了很多。这是值得我们学习的。
【第三架马车:制度】
在宇宙诞生之初,就存在一些规则,在后来的发展中也形成了一些规则,具体到人类,无论是原始社会、奴隶社会、封建社会还是现代社会,都是有很多的规则的,这些规则往往以道德和法律的形式固定下来,其实道德也好法律也好都属于制度的范畴。
为什么需要建立制度呢?抛开规范员工行为、规范管理等作用不谈,制度首先是一种好的实践,一个人用这样的方法做事情效果很好,就让其他做这种事情的人也用同样的方法保证结果。
制度可以包括行政制度如考勤、采购等方面的制度,也可以包括管理制度如人力资源、财务等方面的制度,本文中的制度可以理解为泛指,也可以理解为研发中偏向过程的制度。
1、制度建立:组织中过程的建立一般有两种方式,一种是逐渐积累,自底向上;另一种是自顶向下、借助外部力量如咨询公司及业界优秀实践体系如ISO、CMMI等。两种方法各有优劣,前一种是比较稳定,切合实际,成本较小但是速度慢;后一种速度较快但可能脱离实际易被反对。制度应切合组织实际情况、围绕组织目标而制定,否则制度无法知道组织工作,被抛弃只是迟早的事情。
2、制度推广:制度建立后需要推广到整个部门,由于新的制度往往与之前的工作方式有所不同,因此推广过程往往会遇到各种难度,制度推进的而一些策略可见笔者的文章
《过程改进漫漫谈之过程体系推进策略》。
3、制度保证:制度建立不是为制度而制度,而是为了实现特定目标而建立制度,因此制度建立后需要保证制度被执行。很多组织中存在类似流程管理部、质量管理部之类的部门保证制度的执行。
4、制度改进:制度被执行的过程中,肯定会有一些不太合适的地方,如随着组织的各种变化原有的内容不适用等等,这就需要不断的去改进、优化组织的制度。
【三驾马车的典故】
汉代以前,军队中还没有现在所谓的骑兵,而是战车,就是两马拉一车的模式。中军统帅的战车和其他不同,是三匹马来拉,也叫“三驾马车”,是统帅的标志。
“三驾马车”原意是指三匹马拉一辆车。中国古代以拉车的马匹的多少来区分地位,所谓“三驾马车”,不是说三匹马拉的车,而是说三匹马一组一辕,分前、中、后三组来拉的车。