怎样做好一个创业公司CTO?

 

CTO 是企业内技术最高负责人,对企业的发展起到至关重要的作用。但随着公司的不断发展,CTO 的工作重心也会不断变化。只有在正确的阶段做正确的事,才能更好地为公司做出贡献。

本文作者:陈睿 优知学院创始人,10年+产品技术经验,前百度研发经理,携程定制旅游CTO,曾先后就职于淘宝、百度、携程,负责产品&技术团队。

创业公司成长的四个阶段

首先,需要非常清晰的认知一家创业公司的发展周期,一般每一个阶段都需要2-3年的发展,根据你加入的创业公司的阶段,来调整你的工作核心,这一点是非常关键的。

创业公司的生命周期会经历四个阶段:起步期、发展期、扩张期和成熟期。

0 :创始起步阶段

企业在这个阶段的核心工作是找方向,大概需要两到三年的时间。每一个创业公司起步时都知道大方向,但是成功需要的是精确的方向。实践中,需要通过不断试错才能找到那个精准的方向,而这个方向需要产品来承载。

在这个阶段,一个好的CTO对于创业公司是至关重要的,对于很多以产品技术为核心的创业公司,好的CTO可以为公司缩短试错周期,以及极大的为公司节约产品研发成本。

这个阶段的核心:任务聚焦到找方向上,打磨产品阶段(下文我会讲到这个阶段CTO的核心工作)

1 :发展期:有产品,运营推广阶段

企业在起步期找到了精准的方向之后,开始进入发展期,这个阶段需要去获取一个显著的市场份额,并把收入和利润实现。

2 :扩张期:快速扩张期

3 :成熟期:稳步发展阶段

大部分的创业公司都在0和1这两阶段,我今天主要讲从0开始的创始阶段,CTO对应的核心职责和方法步骤。

 

第一步:配合CEO 聚焦产品和业务

1.聚焦产品:梳理出核心产品雏形

这个阶段,很多创业公司的CEO有的只是一个初步的想法和初步的商业模式,具体的产品是什么样,服务的核心用户群是哪些,还不是特别清晰,这个阶段可以与CEO讨论后,先用脑图把核心业务的用户群,模块,产品功能初步的梳理出来,也可以画出产品的初步第一个雏形原型图。

通过脑图以及PPT的方式,可以更加直观与CEO再讨论(节约大量的沟通成本),在初期产品可以根据这个方向来细化形成产品文档,技术也可以根据这个方向来调研需要的技术。

对于即将远航出行的团队,这个产品方向和产品雏形犹如航海中的灯塔,重要性不言而喻。

2.做好用户调研

根据与CEO初步讨论的产品形态,可以尽早的开始做用户调研,尝试理解核心用户群的需求在哪里,提前调研用户需求。

调研的目的是为了挖掘核心用户群的最基本诉求,结合用户调研的反馈,再次打磨产品的初步雏形。

有了这个初步产品雏形,再与CEO讨论,这样会非常高效,也显示出你的专业和高效。

 

第二步:确定产品后,开始技术选型

根据产品的形态来调整技术的选型,移动产品(ios/android)、小程序、PC产品、AI产品、等来调整。

正常的产品形态,一般会涉及到如下几点的技术架构选型:

1 开发语言选择

首先,第一优先考虑业务场景。

比如对于业务型项目,采用 Java 或 PHP、Python 这种普适性语言,对于纯高并发的服务端项目考虑 Go 等。

其次,需要考虑学习的成本,找人的成本

比如:用C++来写一个后台管理系统,你确定能很低成本找到会这技能的同学吗?但是假如你采用了php这开发方案,外头随便一抓都是php,找人根本不愁(注意:我并没有对php有偏见)。

任何开发语言,从技术本质上都可以完成任务,只是时间成本问题。如果你说一定要用一个新技术可以很轻易实现功能,但是学习使用这种技术就需要几个月,等你团队成员学习完成,项目早就过了产品试错的最佳时期。

总之,技术的目的是实现产品,在创业早期阶段,除了考虑业务场景,找人、学习成本等成本外,本质就是快速试错,实现不需要过于高大上,有效实用为佳。

2 开发框架

确定了语言之后,围绕语言我们要确定开发框架。一般而言就是前端的 JS 、CSS 框架、后端的 MVC 、SOA 、ORM 框架的选型。优先考虑使用成熟以及被验证过的开源框架,除非你到了淘宝的这样的用户访问量,或许才会考虑到定制开发框架和定制的中间件开发。

3 部署服务

服务器的部署模式,持续集成方案,是否集群分布式部署形态等。

对应的服务器采集,是通过自行购入服务器,还是采用类似阿里云这样的服务商,按量所需进行采购,这里可以结合财务预算来考虑。

4 架构方案

最基本的技术架构方案,还是需要尽早确定下来,比如:

基础架构:哪些环节做高可用,涉及到哪些中间件选型,存储是什么,容量评估……

业务架构:核心系统,子系统,对内还是对外,怎么相互支持……

应用架构:层怎么分,逻辑层还是物理层,模块或服务怎么分,模块和模块之间怎么通讯,同步还是异步……

工程化:我们是需要考虑可持续、可迭代的,一个良好的工程结构和工程方式也是初期需要确定的。比如,确定项目结构、源码管理方式、分支管理方式等等。

这里我就不一一说明了,之后写文补充。

 

第三步:做好预算和团队打造

1 通过产品雏形,确立早期的产品技术团队

评估项目第一版在规定时间内上线需要多少人的技术团队,是否需要分产品线,规划出不同岗位的人数。

比如,项目经理 1 人、前端 2 人、架构师 1人、后端 5 人、客户端 2 人、UI 设计 2 人、产品经理 2 人、测试 3 人、运维 1人等。

再根据技术团队的规模预估人员成本,以及做服务器、软硬件的预算,把这些预算和整个公司的预算放到一起评估,看是否可行。

如果预算评估可行,才开始全面人员招聘(这条很重要)

2.确立产品开发模式

比如:创业早期团队可以考虑敏捷开发的模式,对应的产品技术人员,是否可以考虑敏捷的每天站会,控制开发节奏,上线后的迭代版本周期等。

3.招聘以及人员筛选

由于这是创业早期阶段,对人员的需求与发展期和成熟期,对人员的需求会不太一样,这里需要很清楚。

这里还会涉及到面试的很多技巧,以及如何通过面试沟通的方式识人,识人其实有很多沟通技巧,重点是CTO在这个阶段很清楚知道需要什么样的人最合适。

第四步:初步的产品上线时间表

在创业型公司,CEO最关心的事情就是产品什么时候能上线。

对于上线时间表,建议可以采用xmind脑图的方式,对产品按照业务模块的方式,进行任务拆解,从UI到前段、后端,测试,初步进行一个任务估算。

对于有经验的产品技术人员来讲,根据产品的形态以及人员的组成数量,初步是可以估算出一个大致的上线时间表。

创业公司从0这个阶段,快速推出产品试错是王道,这比不了成熟型公司,估算出初创的上线时间表还是蛮重要的,具体的上线时间可加入部分容错时间。

第五步:配合运营团队做好上线反馈

这里会涉及到初步的产品数据,日志记录,关键数据采集等。

产品的上线后的数据采集,产品测试。

以上就是大致的从0开始的创业公司CTO需要做好的五部曲,合格的CTO,能在第二步-第五步做的还不错,但往往反而会卡在第一步,这就是我说的真正的CTO,是一个懂产品的技术人,原因所在。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧