和楼主说好要写一点技术管理方向的文章,从开始说到正式接受主题为《异地研发中心建设模式》的约稿有数月之久,原计划1~2周内写完,结果光思考“应该要写什么”就花了一个月。一方面是拖延癌的原因,另一方面也是担心写不好,害怕误导读者。
在记忆中,读过一本叫《世界是平的》书,讲述了通信和互联网的飞速发展带来了全球化的浪潮,催生了软件离岸外包等新兴产业的发展,尤其是在中国和印度获得了惊人的发展,这是异地研发中心建设的第一波浪潮。本篇主要是介绍异地研发中心的建设过程,探讨思考其建设模式,并介绍笔者参与建设研发中心的一些案例(注:此处的研发中心特指软件研发中心)。 异地研发中心通常是指在总部以外的地方设立研发团队,减轻或分担总部的研发压力。在中国的起步多数是这样的:海外高科技公司到中国来设立研发点,我们通常称为ODC(Offshore Delivery Center 或 Offshore Development Center),即离岸交付中心或离岸研发中心,实际上就是异地(跨国)研发中心。其中设立离岸研发中心最多的两个国家是中国和印度,其次还有东欧、亚洲四小龙等。其主要原因有:1. 有大量受过高等教育的研发人员 2. 人力成本优势明显。在21世纪初,这股浪潮席卷了中印两国,之后中国国内出现了很多大型软件、通信、银行、互联网等公司需要在总部(通常是北上深一线城市)以外的城市(南京、杭州、成都、西安、武汉、苏州等二线城市)设立异地研发中心。现在软件团队对于多地协同开发已经不陌生,甚至已习以为常了。 异地研发中心的建设是软件企业/部门发展壮大到一定阶段必然会发生的,是软件研发企业降本增效、控制风险必然会选择的一种方式。笔者在ODC工作超过14年,之后5年又不同程度的参与了国内数个异地软件研发中心的建设,其中包括知名大厂平安科技。
建立异地研发中心的14个要点经过19年的异地软件研发中心工作的积累,我总结归纳了“3-3-4-4”,即4个过程14个要点。
1
第一个过程:异地研发中心的选址
第一个3是指在选择异地研发中心时的3个关键性指标:人才、成本、核心人员(团队)。笔者曾经参与规划数个企业选取异地软件研发中心/团队的工作,由于软件研发的特殊性,能否获得足够的人才是软件企业选择一个地方的首要条件。其中的一个案例:一个快速发展的金融机构需要在总部上海以外选取一个地方来设立第二研发中心,考察选取了苏州、无锡、南京、成都、西安作为候选城市。在第一轮分析筛选中就把无锡排除在外了,原因就是没有足够多存量的金融软件研发人才,且由于大学数量少,每年新毕业生数量也偏少。因此,存量软件人才和高校数量(尤其是知名高校)是异地研发中心选址的首要条件。 其次是成本:包括人才成本,其又和当地房价及消费水平关联性很强;此外还包括总部到异地研发中心的交通成本,也就是区位优势,不过中国高铁及机场的大量建设,距离影响在减弱;还有政策扶持/补助/税收优惠等,降低了企业的运营成本;此外,在靠近市场区域附近建立研发中心,降低出差成本提升服务效率等等。上面举的案例中,成都成本评估优势明显,且人才优势也不错,逐步成为异地研发中心的热门选择地。 最后一个是核心人员(或团队),前面两个是外部因素,核心骨干是内部因素。负责人及核心骨干往往成为影响研发中心选择的最重要因素,或者说能否找到合适的负责人是异地研发中心建设需要面临的首要问题, 他将会影响后续很多事情的发展。一般来说会有几种找核心成员的方式:1. 总部选择一个合适靠谱的人,比如某核心骨干回到原籍地,或者派遣到异地做“拓荒”。这样的好处是显而易见的,容易把文化带入异地研发中心,容易建立和总部的关系。2. 通过猎头或重要“人物”的推荐找到合适人选,候选人必须有不错的人品、出色的能力、对企业价值观的认同。 通过三个关键指标的分析,会相对比较容易选择一个合适的城市来设立研发中心。接下来的一个3就是指研发中心建设过程中需要落地的三个方面。
2
第二个过程是研发中心三个重要落地措施
第二个3是指研发流程梳理、质量控制、工具使用,最终形成一套包含了自动化工具的研发体系。笔者曾在的两家外企分别获得的CMMI5和CMMI3的软件成熟度模型认证,在带的几个研发团队过程中导入了敏捷开发模式(Scrum),后期学习了解过DevOps(开发运维一体化)。在研发中心选取团队组建完成后,研发中心的流程梳理和研发体系的建立是团队协作必不可少的。 其中质量控制将贯穿软件研发、测试、交付的全过程,也是研发体系建设中最关键最重要的。软件质量的控制,从系统架构设计、代码评审、代码扫描、代码复杂度,到各种测试的覆盖(包括单元测试、集成测试等等),质量控制是研发中心建设最重要的一环。 而软件工具的使用,将极大的改善研发中心的工作效率,包括开发工具、测试工具、过程管理工具、数据收集、流程管理等等,是研发中心建设的基础。
3
第三部分是技术团队管理的四个能力建设
- 业务/产品能力(Domain Knowledge)的建设:以客户为中心,提升团队行业、业务、产品的理解能力;
- 技术能力的建设: 建设工程师文化,打磨技术细节,让技术赋能业务,最少成本的前提下满足业务的要求,并做适度的提前预估;
- 工程效能(DevOps)的建设:从获取需求开始,到系统开发,再到运维的全流程团队协作更高效更自动化,确保既不发生漏球又不流程过渡;
- 管理和领导力建设:激发团队成员活力,建立信任、凝聚共识、为目标努力奋斗不息;
关于以上四点的详细情况这边不展开说明(其实每一点都可以做长篇大论),它是研发团队必须建设的四个能力,我们可以各种技术管理介绍中都能听到看到。
1
第四部分是研发中心四个重要体系建设
这四个体系包括招聘、培训、绩效(或激励)、组织变革,这几个看起来像是HR的4个模块。实际上他是我们研发中心建设非常重要的四个方面,作为研发中心建设、研发负责人必须时时刻刻要关注的重要点,并且必须要亲历亲为做好开局,把握实施细节,持续推动。 招聘到优秀人才,无论如何强调其重要性都不为过。选错人将付出高昂的代价,特别是团队成立初期,一旦选错人将是致命的。我们必须建立严密的招聘体系,包括招聘渠道、人才画像、选取面试官、面试流程、面试评价等环节必须严密把控。在岗位技术技能匹配、学习能力、价值观等方面都做考察,有条件的情况下务必做背景调查,通过几个小时来全面了解一个人很难。 培训体系的建立是研发中心成长道路上关键的一步,从新员工入职培训,到建立新员工培训导师,以及团队年度差异化培训计划,包括骨干成员职业规划及培训、改进培训等。培训体系的建立不仅仅是团队成长的助力器,也是研发团队工作总结、知识沉淀、知识图谱建设的重要一环,同时更是培养培训师,打造优秀团队的重要方式。 绩效考核和激励机制的建设是人才保留、团队激励、以及对不胜任岗位的员工做出果断的处理,全球第一CEO——通用电气公司总裁:杰克·韦尔奇认为:“留着并且奖励20%最好的优秀员工,以及惩罚和解雇10%最差的员工”,任正非、马云、刘强东无不是是这样管理团队的,这是一个放之四海而皆准的至理名言,这是把团队从优秀变成卓越的法宝。 组织架构的设计以及组织变革优化是让团队变得更加高效,目标更加明确,资源配置更加合理的必要手段和方法,在研发中心起步阶段,负责人需要被充分授权。随着团队不断成长发展,组织架构要不断的做出调整,让团队分工更加精细化和合理化。根据产品/系统的研发需要,可以在职能团队还是项目团队之间做出必要的切换和调整(项目管理中定义为矩阵型组织,其分为弱矩阵、平衡型矩阵和强矩阵)。 以上介绍的各步骤是相互联系,相互影响交叉在一起,并且部分是环环相扣的,比如培训体系主要是针对团队成员的业务、技术、DevOps、管理能力的培养提升。流程优化、质量控制及工具使用和DevOps密切相关。人才的招聘、激励、以及组织架构的设计也是管理及领导力的一部分。 问题的应对
决定建异地研发中心,多数是因为异地有更好的人才、更低的成本等。然而正因为“异地”的原因,会让我们遇到很多问题和困难,接下来根据笔者遇到过的问题做分析,并介绍如何应对这些问题。 第一个是沟通,异地意味着距离,沟通不能再面对面(关于沟通方面,我曾经写过一篇文章发表在《极客时间》)。异地沟通比起坐在一起的沟通,效果、效率、方便程度都要大打折扣,我们如何尽可能降低这样的影响呢?
主题描述 | 改进应对措施 |
硬件设备和网络,主要包括通话效果不佳,通话不稳定、出现卡顿、只有语音没有视频等等 | 使用合适的硬件设备,包括高清摄像、电视机、高质量的蓝牙音箱,通话使用整套解决方案,或者至少是稳定的通话(比如webex,zoom等) |
沟通方式 | 正确使用邮件、电话、以及即时聊天工具(钉钉、微信)1. 重要紧急事情 邮件+电话;2. 紧急问题 电话+即时聊天工具;3. 普通事情 邮件 或即时聊天工具;4. 需要持续跟踪的事情 邮件+其他针对不同的事情选择合适的沟通方式将会显著提升沟通效率,当前很容易过渡使用聊天工具,一方面文字沟通容易产生歧义和误会,另一方面事情不易持续追踪。 |
面对面沟通 | 利用一切机会策划面对面沟通的机会,对于非常重要、敏感和极其复杂的事情,要选择面对面沟通的方式。重要关键成员可以定期到对方出差工作一段时间,增进了解和互信。 |
集中式/封闭式研发 | 在系统开发重要阶段,交付的紧张时期,可以安排两个异地团队在一起做短期封闭式开发,一方面可以解决项目短期困难,另一方面也可以增进团队的相互了解,建立信任。 |
异地团队活动 | 组织异地团队间的活动,可以增加整体团队的凝聚力,这也是其中重要的一种方式。 |
良好沟通是对建设高效、互信异地研发团队极其重要的,我们必须有计划提升硬件设施、提升使用各种沟通方式和工具的技能、创造各种近距离沟通的机会,尽最大努力减少因距离而产生的沟通问题。对于沟通中出现的问题,如果不及时解决容易产生信任危机。而信任是是一切沟通、协作、团队凝聚力的基石。“信任是基石、沟通是桥梁”——这个也是我的座右铭。 第二个是后勤保障,由于异地研发中心远离总部,很多后勤支撑部门是缺失的,很可能没有财务、人事等后勤支撑人员,这会给异地团队运营保障带来很大的不方便。一般情况下,会招聘一个行政综合岗来服务于团队,需要研发的负责人(如果研发中心不足够大,多数是不会设立GM的职位)承担起更多的责任,不要给自己的工作范围设限,怀有一颗创业充满激情的心态是必要条件。 第三个是地区及文化差异,如果异地研发中心离总部比较远,很有可能面临着和总部不一样的文化习惯。比如深圳和成都的差异就比较大,深圳员工会拼搏、更乐意加班,成都这个城市给外界印象比较安逸(但实际情况未必,成都蚂蚁研发中心、腾讯游戏业务都做的不错),同时深圳团队的稳定性比成都要差很多。在建立异地研发中心的时候,我们需要关注不同城市区域的文化差异,避免因为这个而产生问题。巧妙的处理好异地研发中心可能出现的问题,做到扬长避短,就可以把问题化作机会。未完待续
作者介绍:
邱良军,极智嘉研发总监,TGO 鲲鹏会会员,负责组建极智嘉苏州研发团队。曾担任英飞凌高级Java工程师,在新电信息任职超 10 年,带领团队交付数个项目,团队峰值人员超 70 人。2014 年在文思海辉担任总监,从零开始将团队带至 300 人,是有10年开发和9 年技术管理的IT老兵。
往期推荐: