分享

怎样给研发团队做好内训?

 昵称1999158 2010-07-07

一个高效的研发团队是高质量软件项目或产品的保证,而企业内训能最大程度地确保研发团队的高效运转。内训很多公司在做,但效果不好。请问,贵公司是如何实施内训工作的?


陈尚义陈尚义 中软通用产品研发中心总经理

根据我的观察,软件企业内训效果不好的最主要原因是没有好的师资,工程师的一大特点是不爱表达,没有授课经验,让他们授课显然效果不理想。我们主要有三种内训形式。

第一种形式是Tech Talk,定期将个人在工作中所掌握的新技术或在某一领域内掌握的特殊知识,讲出来让大家分享。Tech Talk可以是边吃饭边听课,也可以是边发问边解释,体现了一种轻松、自由、民主和融洽的研发文化。Tech Talk在美国硅谷的软件公司得到大力推崇,效果很好,一方面讲课者不用花很多时间作特殊准备,因为讲的都是他本人熟悉的内容;另一方面员工有表达的机会,能借此提高口头表达能力;另外,听众从中接触了很多新技术和新知识。

第二种方式是导师带徒弟。给每个新来的员工配一位导师,导师的责任是教会徒弟企业工作流程、代码书写规范等,帮助徒弟转换角色,尽快适应公司环境和文化。这种方式目标明确,不需要特殊的时间和形式,潜移默化地帮助了新人,也有利于互相增进理解和感情。

第三种形式是通过评审达到互相培训的目的。例如,代码检查(Code review)可以让参加会议的人互相取长补短,经验欠缺的程序员可以向经验丰富的程序员学习编程经验、编码规范和风格。代码检查不仅能检查出代码错误和遗漏的问题,也能在很大程度上互相提高。

以上三种形式的内训都不需要专门的讲师,避免了由于程序员不擅表达而引起的效果问题。

除此之外,我们也经常从公司的其他部门(如质量控制部门)请一些资深人士,到研发中心进行培训、交流和座谈,除了教给员工新的知识和技术,还以其个人丰富的经历,教导员工如何对待工作、如何做一名合格的职业化的软件工程师。


林国勇_Small_林国勇 奥博杰天软件(北京)有限公司交付运营经理

我们通过组织高水平技术团队为美国市场提供软件外包服务,需要不断招收和培养技术及管理人员。我们的内训目标是提高软件开发管理、质量和生产效率以及人员的技术能力,培训内容覆盖诸如项目管理、通用管理技巧、业务领域知识、软件技术和英语等方面的内容。

我们从公司实际出发有针对性地设置课程,例如项目管理培训的内容包含项目管理的艺术、风险管理、客户管理等。先期会在公司内部精心筛选适合的老师,使课程内容更具实操性。例如项目管理方面的老师由总经理及PMO直接兼任,通用管理技巧课程由人力资源总监主讲,技术课程由经TEC审核的公司内部技术尖子或项目的技术领导主讲。

公司对新员工的培训尤为重视,除了传统的入职培训外,还为应届大学生设立了企业内部学校,他们要经过三个月项目的实习期和三个月企业内部学校的学习。在实习期,学生直接参加实际项目的工作,在导师的带领下学习体会项目开发过程、严格质量要求和编码标准、英文E-mail和口语沟通以及公司文化;在企业内部学校里,学习各种课程、参加公司论坛和专门定制的练习项目。每门课程结束后都有考试,对学员的代码进行抽查评审,完成绩效考评。

第三,建立了培训奖励和考核机制。例如为技术培训老师设立TEC币,以资鼓励。技术和英语授课过程中和结束时都有考试,对参加培训的员工给出评分和评语。对成绩优异的学员适当奖励,并在全公司的TGIF大会上宣布,员工的培训记录和通过证书也会作为绩效考核参考之一。

另外, 项目团队领导都要参加交付研究会来学习公司基于CMMI5的项目交付过程,所有技术人员都可以参加技术研讨会,管理层自身也通过Leadership论坛来不断学习提高。


乐伟梁乐伟 SAP BusinessObjects上海研发中心总经理,SAP全球副总裁

开发人员不只做开发,测试也是他们必需的工作。程序是开发人员写的,技术上只有开发人员才清楚测试的技术要点。要保证产品的质量,开发人员必须做测试。差别在于开发的测试是技术上的,开发完成后要马上进行,而QA的测试是系统的、客户导向的。

针对软件测试的特点,培训应着眼于五个方面:一是系统性。如果从软件测试的行业定义而言,软件测试是系统化地保证软件产品满足设计规范和用户需求。一个好的软件测试人员往往可以系统地去审视测试需求,制定测试策略, 从而做到心中有数,保证有计划地测试产品的功能和需求,按时达到预期的质量要求。二是从无穷到有限。软件只要复杂到一定程度,其功能的组合就是无穷的了,理论上说测试要涵盖全部的情况。好的专业的软件测试人员能在无限的测试案例中找到最合理和最有效的有限集合来测试,而这些集合涵盖了对于客户来说最重要的应用集合。三是对客户和产品的了解。软件产品是设计给特定的客户来解决特定的问题。一个好的软件测试人员应该真正了解产品的目的和客户要解决的问题。所以他们的测试往往是有针对性和分优先级的。这些知识会被有机的、创造性的发挥应用于软件测试的实践中。四是不断创新和改进。测试往往是重复和枯燥的。一个好的软件测试人员会在每天的重复工作中发现规律,思考如何改进这些重复和枯燥的工作,以提高效率为乐趣,最终发明和创新更有效的方法和流程来把测试做得更好。五是感觉和敏感度。一个好的软件测试人员会对bug有一种特别的敏感和感觉。有时即使还不晓得错在哪儿,就是感觉有问题,即所谓的“smell not good”。当发现这种问题苗头,会坚韧不拔,直到找出了问题之所在。当然这需靠经验的积累和培养形成。

我想如果我们能够有目的地来培养我们测试的修养,做个好的软件测试人员就不难了。而这样的测试人员正是中国软件行业所缺乏和急需的。


吴淏吴淏 北京全景赛斯科技发展有限公司技术总监,中国SaaS与云计算专家顾问团顾问

技术团队内训是因人而异、因公司而异的。不过内训的目的只有一个,即确保技术团队能够高效运转,有更多的产出。在很多规模稍大的公司中,技术部门主管常常把需求丢给HR部门,而HR部门可能要花费几小时到几天不等的时间去联系一些培训中心,咨询确认培训相关事项。然而这样的培训带来的效果,很多时候是难以测量和评估的。

我们公司的内训是这样开展的,首先根据培训对象的职位来划分培训的方式和目标。主要的培训对象有三类:第一类是刚参加工作不久的实习生和新员工;第二类是公司内部一线开发人员,如测试、设计工程师;第三类是中层管理人员和技术骨干,如开发经理、产品经理。对不同类别的员工有不同的培训策略。其次作为公司技术团队的负责人,我和首席架构师在公司创立之初就对公司的技术走向和技术资料进行整理和储备,采用逐渐积累和优化的方式形成我们自己的速成“三板斧”,目标是使一个新人能够在2~4周的时间具备职位必需的开发和测试技术。以文档加案例的模板形式,帮助新人快速转化为“生产力”。对刚进入公司的实习生,我们用传统的“传帮带”方式加上“三板斧”,使实习生逐渐转变为熟练的工程师。对一线的开发和测试工程师,内训计划以内部讲座结合未来产品发展方向的研究,根据每个人的背景、优势和能力来定制不同的学习目标和方向,帮助一线工程师成为领域专家。对经理级别的培训分两个方面:一是提高业务能力,二是提高管理与领导能力。在提升业务能力方面,我们采用内部技术研究小组的形式,1~2人牵头,大家共享成果。在提升管理与领导能力方面,我们会经评估后引入一些外部培训,利用外部资源来提升中层管理人员的管理与领导能力,并以此增加他们对公司的向心力。

(本文来自《程序员》杂志10年05期)


2 Responses to “怎样给研发团队做好内训?”

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多