杏树林CTO王哲:程序员和医生都是工匠精神的代表

来源:杏树林信息技术(北京)有限公司
2016-05-20 13:36:00

北京2016年5月20日电 /美通社/ -- 2016年,资本对移动医疗的态度从狂热趋于冷静,投资人遴选、投资好项目的标准也越来越严苛。恰在这个时期,耕耘近五年之久的移动医疗公司杏树林在2016年1月宣布获得3200万美元的融资消息,让整个行业都为之一振。杏树林联合创始人、杏树林CTO王哲接受腾讯云布道师专访,解密一家公司的技术领袖如何带领技术团队走上C轮融资之路。

王哲毕业于英国约克大学,获软件工程硕士,在职博士研究生。目前负责杏树林技术团队管理和数据平台业务建设,特别关注移动医疗创新方面的工作。他虽然一身程序员标配:眼镜、衬衫加牛仔裤,但笑成一条缝的眼睛和闪闪发光的大白牙比常见的程序员多了一点阳光。

除了写代码,王哲在他的blog“杰克船长的小屋”还会不定期更新博文,他还用代码写了一首诗。

王哲博客:wangzhe.github.com

github代码地址:github.com/wangzhe

“在公司发展的不同阶段,CTO的角色和侧重的重点也会有所改变”。对于初创团队来说,CTO与技术合伙人是个种角色;对于走到B轮的CTO而言,重心应该从产品转到团队培养和新技术引进;对于走到C轮的CTO而言,应做好最重要的三件事:搭建技术体系、掌握业务发展和未雨绸缪。

同时,王哲还提出“程序员是工匠精神的代表”、“技术栈是个伪命题”等观点,充分体现这个“有意思的程序员”的独到见解。

工匠精神

做杏树林的很重要的一个逻辑是:程序猿和医生两个群体高度相似,医生需要把患者背过河,好的程序猿也需要把业务背过河,他们都是工匠精神的代表,既可以独立工作同时也需要协作。

杏树林在做病历夹和医口袋的时候,初衷是要做医生领域的stackoverflow和github,让医生之间可以更好地围绕病历进行协作。

A轮CTO和技术合伙人不一样

对于A轮以前的创业公司,技术人员的数量一般从几个到十几个不等,对于像腾讯云这类云计算服务器的需求,可能也就只有3到5台。对于公司而言,最重要的是尽快开发能够验证自己商业模式的技术产品,运维自动化、devops、大数据还都言之过早,基本顾不上。

那么对于这个阶段的CTO而言,最重要的是研发过程的管理以及产品原型的快速迭代,尽快开发出技术产品,投放市场搜集行业和用户的真实反馈。

从程序员的角度来说,创业CTO作为会坐下来写代码的人,更希望是和自己相似的人一起工作。当我和其他程序员吵程序命名和重构方法的时候,会强烈的觉得大家是一群“屌丝”,但大家在一起也很开心……

现在回忆起来,之前一帮程序猿连着熬了几个通宵写出了一个测试框架的时候,也是我在那个阶段最high的时候。但是从CTO的角度来说,我会希望团队会更加异构和多元的,有些擅长项目、有些擅长产品。

CTO和技术合伙人是两个角色。初创团队需要的是把技术产品快速产出和快速落地的人。但是之后CTO这方面的责任就已经减少了不少,身边已经有几个靠谱的技术leader来帮忙撑着,CTO更多从蓬头垢面写代码,转为培养技术团队,下一步就是体系的建设。

B轮从产品到团队培养+新技术引进

创业公司如果能走到B轮,技术团队的人数可能会从十几人增加到数十人,对于云计算服务器的需求也会去到几十台或者是都更多。

对于这一阶段的CTO,他们的身边基本上已经形成了一些可靠、核心的技术骨干,能够帮助其分担技术管理的工作,比如说具体的研发管理、测试管理、运维管理等等。

在这个技术团队人数和产品的业务需求同时快速增长的过程当中,对于这些走到B轮的CTO而言,是否敢于做出一些长远、有助于提升整体的研发效率,但是,又可能会影响产品交付时间的技术决策,可能是一个严峻的考验。

当年我在公司推广node.js的时候,顶了很大的业务压力,招人+培训+业务还在快速增长。最厉害的时候产品的上线晚了2个月,但是第3个月开始可以做到2个产品、4个平台的版本,每周迭代一次。

Angualr JS在公司做过实验,失败了,主要原因mvc的模式,不太适合前端研发的场景需要。所以放弃了。

技术栈是个伪命

技术负责人这段时间熟悉什么,CTO身边的人最熟悉什么,可能就会选择什么技术。就像最近有消息说uber的技术栈从node.js换到go。

王哲也正是因为之前2014年的时候项目用过node,所以会开始引入node。现在前端难招,反过来看看来之前选node.js的选择还是对的,因为现在他们可以帮我判断哪些前端是靠谱的。

杏树林的技术栈从Android、iOS+Java->Java +Angualr JS->Java+React+Node.js->又引入Go、Swift、Ruby目的在于避免程序员的技术思维僵化,Java的门槛低,大学和机构培训了很多年了,招人容易,有时受业务压力的时候会降低招人的门槛,中低端的程序猿会比较保守。

通过引入Node.js和React这样的新技术,研发团队会开始有一些技术方向的争论,我们技术团队的氛围也变得更活跃了。

创业公司和大公司比较而言,创业公司在人才等等各个方面都是付不起代价的。

《创业维艰》那本书提过招人要快,开人也要快。但从我们自己来看,这个更多是做成事的人的马后炮。当你在面临业务压力,是否要开除一个可能不合适的技术人才的时候,怎么做出选择?

之前我们有一个很好的技术人才,但是他的沟通能力和思维方式有问题,业务返回的问题也不愿意解决,但是之后一个小的业务方向因此花多了半年的时间来解决他留下的坑。其他的技术人员也会因此产生疑问,这个被开除的人比我技术能力还强,为什么会被开除。

C轮技术战略与体系搭建

一般来说CTO职责包括:参与公司战略计划的制定;制定技术发展规划;领导技术团队实现产品目标;技术人员的招聘、培训、考核。

走到C轮,我目前在这几类工作上的时间分配比例,技术战略项目占1/2,主要基于对公司的业务战略的理解,最近的2个月特别关注devops方向,目前运维的自动化程度还有待提升,上个季度会关心大数据。团队占到1/3,这是是CTO工作的很重要一部分。

最后1/6会处理各种杂事,比如和HR对接招人的需求,做招人相关的数据分析,确定季度招聘重点等等。

我会希望公司的技术团队变化不会太大,但是不断提升招人的标准,我们喜欢招能够提升我的危机感的人……

2014年时,王哲最重要的两件事是R&D和Team,2016年最重要的是战略和R&D,Team这块会重点看文化和效率。

对于能够带技术团队走到C轮的CTO而言,很重要的三件事分别是搭建技术体系、掌握业务发展和多做未雨绸缪。

你不能等到需要devops运维研发体系的时候再去研究devops,这个时候你的服务器可能已经宕机几十回了,业务需要大数据的时候再去建大数据的体系,技术已经成为了业务发展的瓶颈。

了解了业务发展,我除了带技术团队外,还会带医疗大数据商业化的产品团队,有助于加深他对于业务的了解和掌控。

创业的过程可能也是CTO成长的最快的时候,人在被逼得最紧的时候。因为不管是技术实践还是管理能力的方面都会得到更全面的锻炼。