CTO修炼之路的经验和反思 - 知乎

导语:驰远算是我一手带大的工程师,在途客圈的两年,他的成长速度惊人。离开途客圈后,他加入了百度,然后又以CTO的身份创立青橙科技,短短4年,实现了职业生涯的三级跳。如今青橙渐入佳境,他终于可以腾出时间写写他的「CTO修炼之路」。

前言

陈天大神回国之后,有幸应邀参加他的读书见面会。作为一名”安静“的程序员,因为现场演讲时间有限,准备的话题只说了一小部分,于是陈天邀请我写一篇文章,发在程序人生里面。

这个邀请让我两难:从大学毕业至今已经4年了,作为一线程序员体验过创业,参与过百度电影票平台从零组建到壮大的过程,再到作为CTO创立青橙科技,确实有不少可以分享的东西。但毕业至今从未对外发过任何形式的文章,略有怯意。

这一步迟早得迈出去,思来想去,分享下我作为一位90后CTO,参与青橙科技从创立到如今成为国内健身行业最大Saas系统服务商的经验和反思。

修炼开始

初创阶段

招人永远是最重要的事情。

创业初期,我们期望搭建一个小而精的团队,规模控制在8人以内,薪资总额控制在10万/月。初步打算:一位服务端工程师(当然就是我),一位全职前端工程师,一位全职或兼职的设计师,一位产品经理(CEO),一位商务负责人,一位移动端负责人。

然而普通的招聘渠道不适合我们,短暂的面试虽然大体可以把控求职者技术层面的广度、深度,但在初创公司,技术只是一个最最基本的要求,我们需要找到一些有潜力的“种子”员工,他们的能力、稳定性必须很高,在往后能在各个领域开花结果,独挡一面。

这时候核心的渠道是自己的一二级人脉:我的大学室友兼前同事被我“忽悠”来负责前端,大学学妹被“忽悠”来做设计师,前同事被“忽悠”来负责商务,移动端负责人“忽悠”的是高中同学被“忽悠”来负责移动端。

我们组建了一个武汉大学(我的母校)+ 途客圈(我工作的第一家公司)为核心的初创团队。

技术选型及架构

对初创公司来说,技术架构选型很重要,适合自己的架构能让创业事半功倍。

青橙科技做的是健身Saas服务,主要的开发精力在业务逻辑上,因而更倾向于功能齐全、可快速迭代的脚手架框架。

框架可以从自己或者团队的过往技术栈来选,我考虑过以下技术架构:

LAMP(PHP)技术栈:PHP是最好的语言(恩,我真的这么想的)。在BAT的引领下,PHP在国内活跃度很高,配套框架/库成熟。PHP求职者人数众多,职位投递数量是同类的数倍甚至十数倍,最容易找到生力军。但问题很明显,PHP求职者质量层次不齐,公司需要花费大量的时间在招聘筛选/培训上。按照我的面试经验,有效简历(学校/项目经历过得去的简历)面试合格率在10%左右。同时,大量创业公司选型PHP技术栈,造成这10%合格的求职者薪资虚高,最终能入职的寥寥无几。在多次犹豫之后,我放弃了PHP技术栈。

Java 技术栈:Java也是极好的语言,程序员众多(大概是因为学校都在教Java和C)。但Java有一个致命的问题:开发效率太低。语言/框架本身有一定原因,熟悉程度同样是关键因素,我用Python或者PHP的单位时间产出是Java的3-5倍。初创阶段,最核心的开发就是CTO自己,我可不能坑了团队,于是果断放弃。

LAMP(Python)技术栈:我从大学时期开始用Python,熟悉程度甚于PHP。整个社区的配套技术也相当熟悉,绝大部分的需求都能找到合适的库快速实现。创业公司选型Python技术栈的不是太多(拜国外互联网创业环境所赐,目前有改变的趋势),而求职者相对较多,不容易出现哄抢的情况。Python第一大Web框架Django是一大神器,有以下特点:

  1. 功能强大的ORM,可反射生成带有权限控制的admin管理后台,堪称原型神器。
  2. 胶水语言/框架,核心功能只需要组合,可以最快程度的响应需求。
  3. 文档丰富,容易入门,培养人才成本低。
  4. 社区活跃,Pythoner或多或少用过或者了解过Django,招人相对容易。

综合考虑,我们选择了Python + Django 技术栈。

初期青橙的技术架构更多考虑服务的可扩展性,从功能模块进行拆分,抽象出公有服务,为以后做微服务架构做准备。具体如图:


总结下来,初创阶段大部分的事情都是CTO来做,CTO的能力决定了公司的发展速度。

A轮阶段

团队得扩招了

A轮融到了,我们考虑扩大技术团队。招人不能盲目,和CEO讨论完业务需求和发展目标,规划人员配置:服务端3人,Web前端3人,客户端2人,设计2人,产品2人。

人脉有限,一,二级人脉来的推荐虽然还是主要渠道,但已经满足不了需求,我们陷入了长期事情做不完的阶段,这时候线上招聘渠道成了救命稻草,我们主要的渠道有:Boss直聘、拉勾、100offer、内推、jobdeer等等。

其中Boss直聘是一个很不错的渠道,它有一定的存量简历库,最主要的是里面藏有不少“钻石”。看直聘简历,整体质量分布大概是优秀(10%)、普通(30%)、差 (60%)。我们iOS负责人,两位优秀的后端工程师都是通过直聘找到的,感谢一番。而其他渠道,因为我们没花大量的精力在平台维护上,也没花钱去购买线上流量,自然投递效果一般。回头再看,招聘是一个长期的过程,我们从开始就应该扩大品牌影响力。要长期运营一家公司,花费人力/时间/金钱在招聘上,永远不浪费。这些细节的日积月累,在日后一定有所帮助。

管理架构搭建:

技术团队规模已经超过十人,CTO的事事亲为拖累了其他人的节奏,反而成为大家工作的阻力。我开始反思该如何搭建管理架构:除了应该向前辈学习,类比他们来管理团队,更重要的是摸索出一套最适合自己团队的方法。

每家创业公司都有自己的基因和企业文化,我们强调平等,快乐,成长。单纯的用“管理”,不适合我们。身为一名架构师,情不自禁的把这个问题当成了一个需求来解决:人力的增长类似服务流量的增加,如何保证“服务”的可用性、稳定性、可扩展性,是“架构”上的问题,突然发现原来“架构”思想是可以体现在管理上的。

用程序员术语,CTO应该做“HAProxy“,偶尔充当一下”心跳检测“,遇到”IO“大的需求,应该异步出发合适的服务执行,等待回调。

从效果上来看,CTO应该充当“光环”:提供好的环境让大家效率更高,让团队成员的技术劳动体现出应有的价值,把技术和产品变成一家公司的发动机。

总结下来,A轮阶段最困难的事情需要CTO来做,CTO的能力决定了公司发展的深度。


B轮阶段

团队再次扩招

我一直认为,要做牛X的事业,一定得招最牛X的人才。

而牛X的人才会优先选择牛X的团队,这是一个冷启动的问题,那么该怎么找到最初的牛人呢?

CTO的影响力会起到很大的作用。陈天大神的做法给了我不少启发:我开始尝试参加一些技术活动;开始写一些技术文章;从团队内部鼓励新技术尝试,积累技术、分享技术。

猎头在这个阶段也是一个不错的选择。有钱的时候,花钱能解决的问题就不是问题。

数据决策体系

如果重头再来,数据决策体系的搭建我一定会放到创业之初。限于创业时的条件,我们找不到理想的服务,也不可能花费大量的精力,自己搭建一套有效、容易扩展的数据分析决策架构。

现在的互联网环境大有不同,有不少数据分析服务平台可供选择,包括但不限于:神策数据、诸葛IO、GrowingIO。接入一套数据分析服务,大概需要1-2周时间,但影响确是深远的:这套服务能让团队更理性的进行产品决策,能更早的暴露目前的问题并及时修正。

青橙最终选择了神策数据,原因如下:

  1. 在百度工作期间,我已经用过桑文锋大神团队搭建的数据分析平台,对他们在数据分析服务领域的的实力表示由衷的佩服。
  2. 神策数据采用Event数据模型,存储方式采用宽表,这带来了难以想象的便捷性以及可扩展性。
  3. 神策数据支持私有化部署,对于我们这种极其看中数据安全的Saas服务来说,太有吸引力了。

青橙科技即将完成B轮融资,这个阶段我也在不停的学习摸索。往后的阶段还有更困难的事情等待CTO来挑战,CTO的修炼之路还未完待续……

总结

在经历了这一路的修炼之后我对CTO的职责有着比以前更为深刻的理解:首先初创公司CTO最基本的职业素养就是能够解决公司的技术问题,比如:在众多的实现中,选择一个最适合团队目前状况的解决方案;掌握技术脉络,知道团队现在的技术瓶颈以及在什么时候以什么方式去解决。而CTO最重要的职责莫过于管理技术团队,这并不只是一个简单的招人问题,而是在招到合适的人的基础上,组建一个好的团队并让整个团队持续迭代,成长。除此之外,CTO还要具备成为公司万能适配器的自觉:拉网线,查机房,装系统,重装系统;讨论方案,推翻方案;谈合同,签合同;哄手下,骂手下,被老板哄,挨老板骂;确定进度,拖延进度,重新定进度;运维,监控;写画饼邮件,写辞职邮件都是可能会发生的工作。

总之CTO需要根据公司的状况,变身为最适合公司的角色,可能是技术大牛,可能是招聘达人,可能是产品大神,可能是运营高手,可能是行政主管,也可能是以上的综合体。

在写这篇文章的时候,创业以来的各种回忆也在脑中浮现,对我来说CTO的修炼成长固然重要,但这一路上收获的回忆与同伴更是宝贵的财富。感谢大家一路的陪伴!

这是我第一篇对外发布的文章,如果你觉得我写的对你有帮助,还想看到我更多的分享,可以在陈天的程序人生公众号留言支持,当然转发就更好啦!如果你想进一步跟我交流技术、创业上的问题,可以加我微信:shadow_ccy(注明姓名+公司/学校+职位/专业)

http://weixin.qq.com/r/D-4IENzESIE3rZhz96sd (二维码自动识别)