目前创业,最后一家公司任职医疗科技公司的研发中心总经理,之前也在几家公司的任职研发/技术总监岗位,在我理解的范围,目前国内中小企业对于CTO/技术总监的岗位区别没有那么明确的职能区分。
我先概要性总结一下CTO/技术总监的作用:
❶ CTO/技术总监应具有企业技术方向的整体把控力,也就是说总监是“帅”,架构师是“将”。总监会深入到技术架构的研究和理解当中,一旦认准一个技术方向,会安排具体架构师,与产品经理或项目经理,在具体的产品研发或项目研发中合作,落地设计,整个架构设计过程中。总结需要在多条技术、产品、项目线上实现协调,保证企业整体架构的协作精密性。
❷ CTO/技术总监应是Boss,商务经理,产品经理中把控并协调公司产品或项目稳定运行的关键人物,打个比喻:Boss在船头掌舵,控制企业的航线,总监就要在船尾指挥水手,保证整条船航行的稳定,船行驶过急要懂得提醒舵手,船遇到危险,要懂得身先士卒地带人救援。
❸ CTO/技术总监要成为企业科技软实力的布道者,能用更形象的比喻向Boss,商务,产品传达企业技术的核心优势,能在具有技术优势的客户面前,展现企业技术能力,为商务谈判争得技术层面的信任分。
❹ CTO/技术总监具有招聘技术工程师的实质性决定权,这个权利往往会略低于Boss的拍板权,但实际上总监把关后的技术人事安排,Boss都会作为自己拍板的关键因素,因此往往技术工程师的人事招聘,是一家科技公司的核心问题,需要总监与Boss亲密无间的沟通商量。
这也就是为什么互联网/科技企业行业往往优秀技术出身的Boss一旦把公司做起来都很厉害的原因,例如:丁磊、马化腾、雷军、张一鸣.......
那么我就聊聊身为总监,我在职场模式下最后一家科技创业公司的日常工作安排,这也是我在技术管理领域日臻成熟的最后一次经历回顾。我分为了六项主要工作职责:
① 研发协调:我们研发分了三条线,互联网APP团队,线上线下(业务中台)团队,院内开发团队。
三条产品线的研发内容和技术大不相同,例如APP平台主要是互联网医院的打造,新技术应用很多,Flutter、微服务、Docker...,实现医患完全的互联网远程问诊。
线上线下团队则是遗留系统不断过渡到业务中台的过程,需要与院内his密切交互,大家的手机预约挂号等业务就是这种平台承载。
院内团队则是以围绕遗留系统(HIS)的维护为主,开展新功能的开发,开发语言也不同于互联网的Java,而是.Net平台。
那么作为研发老大,懂技术又懂协调就很重要,例如:我们要完成一项APP问诊下单与购药,那么APP就要对接业务中台,而业务中台就要负责与HIS协作,协助HIS系统实现线上订单在院内数据库的一致性。这个过程很复杂,也不能分隔处理,因为支付,发票对账与医保都是在his中完成。
可想而知研发协调的工作有多复杂,必须不断组会沟通,线下都在院内办公,很多情况都是远程会议,而且必须协调多方在沟通一致性线索上尽快配合各方设计出实际的通讯协议,在协议之上在不断测试正确性,之后才是开发升级。
② 项目协调:做产品研发的目的是靠承接医院项目实现盈利回报,就涉及不同医院不同项目团队和运维维护团队的系统,往往研发人员也会负责具体项目开发,但是运维人员在现场了解客户需求,经常会委任为项目经理,项目经理就需要与研发沟通具体工作,院内还好说,现场他们之间就解决好沟通,但是涉及到线上产品,就需要与我不断敲定产品实施需要修改的细节,甚至组织会议,现场与线上负责人技术沟通,敲定开发细节。
项目协调非常辛苦,主要是医院有大有小,项目需求也一样,那么人员来回扯动就会很频繁,如何最优化利用好手中的资源,排兵布阵就是门艺术,不能让大家累到骂娘,也不能让客户等急到投诉,个中滋味只有负责人清楚。
③ 产品协调:这里的协调是最累人的地方,产品研发初期需要大量产品设计沟通,医疗系统的产品经理的特征主要是熟悉医疗业务,而不是熟悉互联网产品设计,这是与目前互联网电商团队最不同的地方,这也是大量互联网+系统的特点,复杂业务熟悉的人员才能担负产品经理,但又很难找到兼备互联网产品设计的复合型人才。
若招聘纯粹的互联网产品设计经验的人才又很难在这里发挥作用,因为产品经理大量工作需要与院内人员沟通,而熟悉业务又需要多年的经验。
那么作为协调人,我懂一些互联网产品设计,而且也会去找一些有这方面经验的人进行咨询,主要是帮助产品经理完成互联网产品设计,这些产品经理从原型设计开始学习,差不多经过半年的锻炼都能上手。主要是产品设计品味不是短期能提升的,但互联网医疗业务的核心不在于抖音一样的体验,而是解决问题,体验足够好即可。
其实最累的还是产品设计理念,很多互联网思维的设计需要一遍一遍再一遍地给产品经理们灌输,想想在传统业务系统成长多年的人突然给出互联网设计思想有多难,就一个注册要简化的问题,你都要拿着笔画,甚至到狮吼,这才明白。
④ 人力协调:公司互联网核心团队基本上都是我通过各种渠道挖来的,对于创业型有投资而且想在新领域突破的公司,必须快速吸引互联网人才,产品业务和维护开发人才老板挖,互联网技术人才我来挖,短短一年就建成了三十人后续规模达五十人的企业团队,朝气蓬勃,但更关键是消化人才,我的做法就是不断构建研发与产品的宏达蓝图,你们也可以理解为画大饼,尽管虚,但是在这个阶段有用。大家能看明白公司的发展主旨,研发需要承担的内容,每个团队每个人需要前进发展的路线,这就类似研发规划和发展参考手册,那么就能大量减少解释沟通成本与磨合。
⑤ 高层沟通:主要是与Boss的协作沟通,上面提到了招聘人力与企业内消化,其实研发头的核心就是理解Boss的经营意图,并且在其不擅长的技术领域给予帮助,让他明白什么可为什么不可为,做什么代价高,什么问题不解决会后患无穷,例如:遗留系统的升级问题,我立主尽快升级到业务中台,即便人力资源不够的情况下,我选择理想的外包团队与核心团队一起完成,这就是解决办法,Boss觉得可行就拍板,一年多耕耘,新业务中台很快成为公司客户增长最快的产品。
因此Boss告诉你我想干什么,你的作用就是在现有条件下怎么干!干不干那是Boss的决策,但你始终要给予客观的评估。
⑥ 技术落实:作为研发头必须要有过人的技术能力,尤其是在软件架构方面,否则难以镇住各路神仙,但是光有技术还是不够的,关键在于对公司研发产品架构方向上的有力量的支撑与构建。
我们的APP后端上什么技术服务,那么我就要先将技术服务预研做清楚,尤其是技术特性到底是否符合业务支撑需要得讲清楚,甚至在云主机上直接构建好服务,并指导开发在自己所构建的技术体系上进行开发,例如:我坚持走PostgreSQL,那么所有遗留系统就必须从MySQL进行迁移,不会迁移的工程师,我直接写迁移手册,做例子指导。
我们上微服务,API网关大家不懂,我就自己研究Openresty,写Lua做动态转发,甚至很长一段时间内我就配合工程师落实互联网上线发布的节奏,直到再手把手教会具体工程师作为后续的技术维护负责人。
前端或者是院内系统,可能技术并不擅长,但是并不影响这些团队人员对你的信赖,有很多情况,作为技术头,你知道和掌握的情况和研发经验要比他们全面得多,因此你总能站在解决问题的角度提供一定抽象的思路,这种思路就是不同技术团队的共同语言,搞清楚解决思路然后在具体实现上,大家就不用说太多,直接落实解决即可。
总之,CTO/技术总监岗位是个极其辛苦且不讨好的位置,并不是所有人想象中那么精英、霸气和惬意。不仅需要掌握多方面的职业技巧和协作经验,而且还需要具备百折不挠的意志力,同时在国内的这种环境下,还要懂得一些中庸之道,不媚上、不欺下,懂得权衡轻重,还要能有效解决问题。另外自己的专业技能还必须不断提升,甚至在复杂的环境当中,随时做好救火队长。