自从创立21CTO已来,几乎每天都有公司来找我要找CTO,有初创团队,也有A轮公司和独角兽BAT类的公司。
虽然都叫CTO,从规模来讲,初创团队其实是在找一个项目经理或技术经理,A轮公司是在找技术总监或技术主管;而B轮或研发团队人数较多、以产品技术为核心的公司,才称得上真正的首席技术官CTO。
那么什么样的人可以做CTO,需要具备哪些条件?
技术专家:具备深度和广度
CTO需要在某个技术上做到专家级别以上。例如是某个语言的hack,某个知名库的作者最佳。
一个公司的技术基础架构由CTO决定,需要他了解最新的技术,并熟悉成熟的技术。比如搜索使用Solr还是Lucene、Spinx。大数据方面是用Hadoop还是MangoDB。持久化存储是用MySQL还是PostgreSql。比如在语言上用Java还是Python,还是用世界上最好的语言PHP。亦或者这个人比较怪癖,选择了Ruby,这些看起来简单的事情,都会给未来的运营和人员招聘带来风险。
十几年前我当时公司的CTO是来自加州大学伯克利分校的日本人小饲弹博士。
他是FreeBSD内核开发者,Perl的JCode.pm的作者,技术图书作者。与国际一些知名技术大牛相交甚厚。
公司的VPN,内网,包括系统架构都是其一人使用FreeBSD架设完成,开发工具只用Perl。缘由于此,整个公司都在使用FreeBSD和Perl,到引入PHP和Java做为主流语言开发。因为他是BSD开源社区的拥泵者,不建议工程师用Microsoft的所有开发工具。
其全程负责工程师的招聘,笔试与面试。并指导了整个开发本部的项目开发流程,数据库设计规范,编码规范,文档规范等。并且指定了开发部门的副手与日本本部的另一个高手宫川合作。在人员上寻找在全国范围内招募最优秀的人才加入团队。
无论是本地的还是全球性技术大会,都做为嘉宾或演讲者身份参加。
作为技术专家,也是全公司最大的“全栈工程师”,其能力可以环视整个技术团队,放眼博硕,皆为之技术倾服。这也是一种非权力领导力。
远见与领导力
对技术不偏执有远见的CTO,在一个高成长的互联网公司尤为重要。保证正确的技术决策,可以让软件具备可扩展性,有一个精干的团队,这是一个优秀CTO的素质之一。
好的CTO运用良好技术能力,开发优秀的产品。不依靠下边的人或外部顾问的技术力量。
在自己不能充分控制的情况,那些缺乏严谨的“科学决断”和解决方案可能造成技术团队的“技术债”。
比如,一个公司在开始做技术选型,选择了自己编写框架开发,而不靠成熟的,框架。他的CTO没有想到的两个困境,一个是招人难度加大,另一个自主开发的框架越来臃肿。结果只能完全重写。
而一个有经验的CTO或架构师可以避免这种陷阱。成熟的框架让我们做事更快,比如Java 的SSH、Python的Django,PHP的ThinkPHP、Laravel、CI等。
管理能力
当你的职位加上O字时,只要不是UFO,你都需要有一定的管理能力。
这个管理包括两种,一个是自我管理能力,一个是团队管理能力。
个人管理包括时间管理和目标管理,如果一位个人的目标与工作能够完美结合,那么这个人几乎是一个变形金刚。
当你的同事每天看到一个每天提前到来,精神焕发,思维敏捷、目标清晰的老大,和每天比自己晚到几小时又很早走的一个甩手掌柜,思想的落差和团队执行力可想而知。
一个连自己都管理不好的人,怎么管理别人?
好的CTO会团队管理上对项目经理、技术经理的计划清晰有条理。他知道时间评估的合理性,敏捷开发过程的风险,适时调动工程师的积极性。比如运维团队的排班,异常处理,灾害恢复。
CTO会重视测试团队的单元测试,回归测试,压力测试,质量团队的文档以及部门培训。以及产品的准时上线和交付。
能动口也能动手,学习力强
CTO不必亲自写代码。但技术派的CTO不会放弃每次写代码的机会,比如系统的核心架构,最重要的部分由自己写出来,或与架构师提供指导和实现意见。
特别是在一个非健全的技术团队,当团队里有人在技术难点上遇到时,你走上前去,一句话,或只几行代码就解决好问题的感觉,是不是让自己也佩服呢。
当然,这种情况是在我曾经管理的团队发生,这种情况是越少越好,多半需要CTO解决好人才的分层梯度问题。另外,也需要CTO不当救火员,而是做教练。
在某些新技术,能够快速学习并应用,确定技术成熟度,指导团队立即使用,以提高团队效率,降低成本。
建立团队与研发团队文化
CTO做为技术负责人,有可能兼管理产品。这在一些产品技术为主的公司里,这几乎是大半个CEO的职责。
一个项目从启动到结束,中间会有这样那样的问题。在开始时能够责任清晰,分配得当,人员稳定,重大项目有备份机制。流程跟踪清晰,不出纰漏。
CTO性格决定了这家公司技术团队,比如敏捷高效,还是无序散漫。是每天都很严肃,如果是互联网公司,还是充满朝气的笑脸好。
极客精神与产品能力
我认为只有技术人员才算上真正的极客,产品经理不是极客。
这是一群对技术有狂热兴趣并投入大量时间钻研的人。是以创新、技术和时尚为生命意义的人。
而不是一些不懂技术的PM,只能从表面逻辑指导技术来实现,会导致产品的失败。
CTO须站在更远的战略角度观察技术趋势和工具,而不是盯在某个代码行上。他应该在产品的整体方向起更大作用。比如不断引领新的技术进步,并确保公司保持向上或向前。
比如以前的网站有几个版本,移动化网站还是过时的WAP 3G版本,而不是HTML5,而如今只需要使用一个响应式前端框架或者通过第三方搞定。从而节省产品开发时间和费用。
CTO若具备此素质,他所做的产品一定是个有生命力,有灵魂的好产品。
一些好的CEO都是由CTO转换而来,他们专业能力强,逻辑缜密,能够把产品、技术与商业良好结合,如马化腾、丁磊、周鸿祎、张小龙、王小川等。
跨部门协调
一个CTO要具有良好的沟通技巧,必须能和非技术人员之间进行话语转换。CTO会经常与CEO和主管运营的COO打交道。能够用对方能够听懂得的话传达出来,告诉这些利益相关者,技术如何影响产品运营。还能把产品目标如何结合技术,传达给团队的研发工程师。
可以利用会议和制度,确保部门之间的沟通顺畅。一个好的CTO能在业务和技术之间的切换频道,把自己瞬间变小白,以对方的角色去看问题,与非技术人员沟通并让他们理解、认同,确保项目按正确的方向前进。
与CEO的沟通
CTO也是一个好球员,他知道在什么时间应该向哪边球门踢。
比如公司要求上线时间提前,以满足市场需求。那么我们可以使用PhoneGap或Hybird方式来开发App,这样很快发布应用。
这里可能需要牺牲尊严与代码质量来做到这一点。因为CEO要确保技术与整体业务战略,这时要做出必要的妥协。
对于技术出身的CEO来说,以上的问题都不会发生。但与非技术出身的CEO,特别是传统行来出来的CEO来说,他们对产品,对技术可能都不明白。今天冒出一个想法,哎呀简直一针捅破天,马上问这个东西什么时候做出来。
这是千古难答的问题,CTO很难说这东西做不出来,或者一个准确时间表。而且过几天,这个需求可能忘了,或者又改成别的样子。
因此,好多的公司因为产品失控或延期,造成失败。CTO有责任站在专业和负责任和与CEO绕弯,纠偏,调整。如果不去纠正,导致产品体验差,运营问题等,造成公司整体失败。这时CTO要敢于说不,坚守自己的原则。
加入一个高质量的社交网络
技术分工越来越细,越来越复杂。没有人敢说胜任全部技术工作。这时,CTO需要有一个强大可信任的社交网络,它可以弥补自己的技术空白和盲点。
可以加入像21CTO这样的高端技术专家社交平台,加快学习新技术的能力,还可以快速找到iOS工程师,找到富有更多经验的大数据专家,靠谱的技术顾问等。
总结
一个优秀的CTO的成长不容易。需要同时具备卓越的管理、沟通能力,技术能力,长远的战略眼光。能够不断学习,在别人那吸取成功和失败的经验。
一个好的CTO除了带来的强大技术与领导力后,可以做出成功产品,能够为公司成长、新一轮融资、上市增加巨大的价值。