如何成为一名合格的CTO?(转)

不会走出去公众演说的的攻城狮不是好CTO。

本文来源于微信公众号“线性资本”(ID:LinearVenture)

成为一名合格 CTO

我们投过很多技术型的公司,对于什么是合格的 CTO 有过自己的一些思考。最近关于什么是一名合格的 CTO 有些争论,我们以Q&A 的方式分享一些我们的看法。这些看法一方面有时候会影响到我们投不投一家公司,一方面也是从被投公司的历程中总结出来的。

CTO 的定义是什么?

根据其定义,Chief Technology Officer,就是技术方面的最高负责人。和Technology方面相关的问题的争论在 CTO这层就停住了,CTO的回答将是最终回答。No appeal, no further escalation. CTO如果自己无法独立回答该问题,他或者她应该想尽各种办法寻找各种帮助最终做出决断。但回答该技术问题将是他的最终责任。就好像司法上面的最高法院 - 判决将是最终的。即使是错误的,也是最终的。所以一个 CTO 的水平将会最终决定一家公司的技术水平。

但这不代表所有的技术问题都应该是 CTO 来回答。用司法系统再次做个类比,各级法院在其职责和能力范围内尽可能的进行司法实践。同样的,尽可能的将技术问题控制在负责相关实践的技术人员那边,直到争论产生或者技术小组无法独立回答。

上面谈的技术是事方面的责任,硬币的另外一面是人方面的事务。CTO 里面除了Technology之外,另外一个不能忽视的关键词就是 Officer。Officer 是一个 leadership role。一个领导位置。好的领导是一位管理者但多于管理者的角色。他需要打造团队不然没有队伍可以领导,光棍司令要么过劳死,要么拖公司发展后腿;他需要发展(grow),激励(inspire),刺激(motivate),挑战(challenge)队伍,不然队伍无法发展超越自我;他是一个榜样,他需要说一套就做这套,因为技术团队里面的人会以他的言行作为自己行为的一个对标。最好的 leadership 是 lead by exmaple. 他需要去挖掘和培养团队里面的其他有领导潜质的人不然团队没法 scale。我记得从工程师转做 manager 的时候我们 VP 专门找我聊了下,其他都忘了,我记得这一句

『I don‘t care about your personal success. I care about your team‘s sucess. As a leader, your job is to make them successful.』

(我不在乎你的个人成功,我在乎的是你的团队成功。作为领导,你的职责是使他们成功。)

一个 CTO需要在必要的时刻站出来保护自己的团队,因为公司的政治在发展过程中会不可避免的出现;与其像某BAT公司那样内部宣布不允许政治,但其实比谁的政治斗争都多,不如坦然的对待,把一些利益纷争放在台面上来讨论。

所以纯粹的只讨论管技术不管人的 CTO 是不合格的。有些公司的选择是到一定情况下,将 CTO 和 VP of Engineering 的角色分开,前者只管技术,后者更多管人和文化,也是一种选择。这个时候的 CTO 里面的 T是重点,而非 O。

CTO 最核心的职责是什么?

保证核心产品能够保质按期发布。

不管是前面提到的技术,还是技术人员的管理,『最终』不是为了建立一个『伟大』的技术架构。最终目标是为了能够发布产品,解决问题,满足客户,占领市场 - 这是一家商业公司的核心所在。CTO 的职责是为核心服务。

重点虽在今天,但也要为未来产品快速迭代和持续发布做好准备。

CTO 到底需不需要coding?

不需要。

但是,早期除外。

早期的时候啥都缺,很多事情都需要 CTO(有时候包括 CEO)亲力亲为。这个时候是不需要讲太多规矩的。没有队员就自己上,没人会,组织人学了上,包括自己。但CTO作为 IC (individual contributor) 应该是暂时的行为。尽可能通过寻找到更加专业的人来做具体业务的编程。不管是前端,后台,数据,全栈等等,刀应该是越磨越锋利。CTO 是操刀的人,不应该是刀本身。

CTO需不需要懂编程?

CTO 必须懂编程,很懂编程。

他应该是个很好的工程师。如果他需要,不应该超过3个月可以重操旧业成为很好的程序员。只有这样他才能和其他工程师有好的沟通,在必要的时刻介入到技术框架讨论中不会鸡同鸭讲,被自己的手下鄙视。

CTO 要不要参与做核心技术的选型?

只有在自己擅长的领域内或者团队没法自己做出有效决策的情况下才介入。

这里涉及一个做核心技术决策时候的原则"let the expert decide"。 如果你就是那个最好的 expert,你来。这个时候你不是以 CTO 的角色,而是以一个领域专家的角色参与讨论。另外一个原则就是尽可能让负责实践的团队来决策。一个施工团队是受一个技术选型决定的影响最大的一方,他们最有动力花时间来深入研究,去做一个将来不会让他们难堪的决定。如果有必要,CTO 可以利用自己在行业里的关系链邀请最合适的外面专家给团队分享案例提供建议,但不要将决定权交给外面的专家。

而当团队陷入一种争论而无法独立做出决断的时候,假如你相信你的队员们,这个时候你可以参与做个仲裁;因为如果胶着的双方都优秀的话,被争论的技术选项不应该存在一种会比另外一些选项明显好很多的情况。Just pick one and move on. 作为 CTO,你要明白争论在什么时候是足够了,什么时候该做个决断了。

CTO 要不要参与代码审查(Code Review)?

首先,不积极推动 Code Review 的 CTO 不是合格 CTO。明显没有全局化视野和对长期效率的深入思考。

有了 Code Review 的机制后,我建议CTO应该经常看看核心部分的代码,以保持对于自己团队代码的熟悉程度。

读代码就像读书一样,时间久了不读书,会失去对文字的感觉。但不一定要全读。核心系统的核心代码,和公司碰上的大 bug 时候,都应该经常看看。前者对于自己公司的最核心的技术实现有个第一手的了解,知道强在哪里;后者可以了解自己的团队通常是磕磕碰碰在什么地方,知道弱在哪里。

CTO是否应该参加核心系统的架构讨论?

应该。

如果一个 CTO 来自己最核心的系统的大体实践都不了解的话,没法在必要的时候介入做最终的技术仲裁;也没法知道需要招什么样的技术人员来发展团队。前者是做事,后者是做人。而事和人都是应该为了系统服务的。系统,当然是为了产品服务。

CTO是否应该参加核心产品的讨论?

应该。

产品需要实现,只有清楚核心产品是什么,才知道需要什么样的核心系统,然后才是什么样的技术和人才。所以CTO参与核心产品的讨论非常重要。

CTO该不该主导工程师文化和制度建设

CTO 的主要职责之一。

CTO 是一个 leadership role。团队小的时候,管理相对容易,大家主要就事论事即可。团队大了,不管你愿不愿意,会逐渐分层,你需要逐渐的去发展中层干部,也要逐渐思考文化建设。所谓文化建设,就是一个形成共识的过程。这种共识是关于什么样做事做人的风格是被鼓励。文化无关对错,文化是一种选择。

很多创始团队的早期CTO 如果没法随着公司的成长而成长起来,还是天天陷入到某块具体代码的局部战争中去,动辄就介入具体的执行,一不放心就自己啥都管管,不懂得delegate,要不就是放手就完全不管,不懂得validate。师长做了排长的工作。

如果一家公司的 CTO 只想管事,不想管人。要么加一个 VP of Engineering分管人,要么把 CTO 的位置让出来给到更合适的人选。

CTO应不应该经常走出去和外界交流?

虽然并非必须,但这是区别于一个合格 CTO 到卓越 CTO 的重要的点。

走出去,一方面可以将自己公司在技术这块的事和人方面的问题暴露出去。达到高水平的前提是你和高水平之间是联通的,这样两个水面才有机会平起来。除非你很自负的认为自己就是比剩下的世界要牛很多。另外一方面,可以将自己公司取得的一些成就展现出去,自己公司的文化特点展现出去,能够更好的吸引牛人进来。前面提到CTO 一个重要的角色就是要打造团队。团队的前提是牛人;吸引牛人的前提是别人要知道你。CTO 不走出去和业内多交流,指望猎头找来牛人多半是不靠谱的。

但要区别有效交流和饭饭之交。前者是需要扎实的去分享,去给社区做贡献,花钱花精力把牛人请进来做分享,大家做深度的无保留的探讨。后者主要是饭局交流,泛泛之交,并没有讨论到具体带人处事的实例的交流。后者虽有些价值,我们作为投资人干干可以,对于CTO 意义不大。

在这一点上,可以借鉴下这篇文章(注:http://www.svpg.com/what-makes-a-great-cto/)关于 CTO 的Evangelism(布道)上的角色

The CTO will serve as the company spokesperson for the product development/technology organization, demonstrating leadership in the community, with developers, partners and customers. This is often measured by establishing a university relations/recruitment program, and sponsoring or participating in at least two events per year in the developer community.

CTO 应该和什么人做经常性的1 on 1?

常规性的1 on 1 应该包括CEO + VP of Product + direct reports + 核心产品的技术负责人 + 架构师。另外对于即将从工程师转到管理岗位,Manager升到 Director 等的人员,应该在考察期间交流一到两次。

以上只是我们的一家之言。成功的 CTO 也许和成功的 CEO 一样,可以出身迥异,风格不同,但最终到底,一定是围绕 Technology 将 Chief Officer 的角色扮演好。

时间: 2024-10-07 21:52:42

如何成为一名合格的CTO?(转)的相关文章

如何成为一名合格的程序员.

程序员是一个统称, 每个程序员根据自己学过的语言不同.那么他们的开发方向也不同. 那么怎么才能算是一名合格的程序员呢? 有人会说 学的好 经验多 什么困难都可以自己克服,有自己的思想见解,可以帮助别人解决问题. 哈哈 ,这样说也没有错,程序员的核心就是遇到困难举一反三,能独立应对开发中的各种困难. 但是 在大工程的团队开发中,有些程序员的"本性"就暴露无遗了. 首先 程序员写的代码 不仅仅要自己懂,更要让别人也看的懂.这样才有利于团队合作. 就拿C语言来说吧. 什么是变量: 通俗易懂些

吉祥的运维工程师学习日记1 一名合格运维工程师的要求

运维是一个集多IT工种技能与一身的岗位,对系统->网络 ->存储->协议->需求->开发->测试->安全等各环节都需要了解一些,并且对于某些环节需熟悉甚至精通:作为一名合格的运维工程师,我认为要从这两方面说起,个人素质和个人技术. 个人素质方面: 1.沟通能力.团队协作:运维工作跨部门.跨工种工作很多,需善于沟通.并且团队协作能力要强:这是现代企业的基本素质要求. 2.工作中需胆大心细,特别对于运维这种新的工种,更需创新才能促进发展:心细,运维工程师是网站admi

一名合格QA的基本素养

测试不是无脑的重复劳动.测试与开发一样,先用脑,再动手. 拒绝搬砖,关注技术: 把握需求,极致体验: 把控进度,高效沟通:   测试技术 如果你只会加班,行万里路,也只是个邮差 将程序测"好":准确理解软件业务流程,运用成熟的测试框架和设计方法,保证测试覆盖 将程序测"坏":黑盒发散,灰盒分析,白盒检测,运用一切可行的方式方法,找到可能导致程序异常的组合条件 将程序测"全":全面兼顾正确性以外的各项评测:兼容性.稳定性.性能.冲突.能够有针对性的

做一名合格的软件使用者

每消费一款免费的盗版的产品,就意味着向充满创意的世界又远了一步,因为连别人的劳动成果都不懂得尊重的人不配享用产品的盛宴.在满足于这些不义之源的小便宜的时候, 这个人将逐渐丧失用自己努力去挣得的MONEY享受正品的权利和能力,丧失与那些充满创造力的作者进行深度交流的资格,因为使用盗版软件会在你内心产生深深的自卑感,让你不能真正自信坦荡地去体验软件所带来的乐趣和便利. 虽然盗版势头很猖狂,不可能在短期内改变.但我们有能力去做自己能够做的事情.在我们开始使用一款赏心悦目.方便易用的软件之前,请略微多做

如何成为一名合格的DBA

最近,由于工作的缘故接触到了很多想要成为一名DBA或是已经接触了数据库一段时间想要往DBA方向发展的朋友,但是总体上感觉大家可能对DBA的工作内容和如何成为一名合格的DBA并不是十分的了解,所以就有了想写一篇文章,就我十多年来从事DBA工作中所获得的一些感悟,来和大家分享一下.首先,要声明的是,这仅仅是我的一家之言,并不是标准答案,如果这篇文章对你有帮助我会十分的高兴,如果你觉得这篇文章写的并不好,也请你不要生气. 那么我们就先来说说什么是DBA,DBA是英文Database Administr

2018年一名合格的web前端程序员应该会哪些技术

有朋友让小编说一说web前端在未来几年的发展趋向,对于这个问题,恕小编无能为力,web前端技术日新月异,更新非常快,谁也不能预料未来会发生些什么 小编也只能说在2018年,react native和jquery 的需求会减弱,ie10以下的兼容性要求显著降低,vr 有可能会归入前端技能树 为诸位总结了一些2018年web前端程序员应该掌握的前端技术,只有掌握了以下技术,才算一名合格的前端程序员 html, css, jQuery三者完全掌握,相信每个公司对于前端程序员都会有此要求,这些也是前端写

一名合格的数据分析需要具备什么样的技能?

如今是一个数据说话的时代,同时也是一个数据竞争的时代,一切都是靠数据说话,而也正是因为这样方方面面的原因,让数据分析师这个职业水涨船高,市场需求很大.那么,我们需要先了解一下什么是数据分析师. 数据分析师 是数据师的一种,指的是不同行业中,专门从事行业数据搜集.整理.分析,并依据数据做出行业研究.评估和预测的专业人员. 尤其是互联网时代,数据过剩,数据分析师必须学会借助技术手段进行高效的数据处理.更为重要的是,互联网时代的数据分析师要不断在数据研究的方法论方面进行创新和突破.那么一名合格的数据分

一名合格的数据分析师要学的是什么

很多人看到的数据分析的前景,于是都喜欢走进数据分析行业,而数据分析师需要学习很多的知识,没有一个充足的知识储备就不能够胜任这份工作,于是很多人想要学习数据分析师的知识,但是对于数据分析师的技能不是很清楚,那么一名合格的数据分析是需要学习什么知识呢?一般来说,就是需要学习统计学.有一定的编程能力.懂得数据库.以及掌握一定的数据分析方法.学会使用数据分析工具.拥有了这些能力,相信你就能够入门数据分析师. 数据分析需要统计学知识,很多人在搜索统计学相关的书籍的时候,多少有点抵触,这是因为统计学的数据有

如何成为一名优秀的CTO(首席技术官)

最近我发现很多开发人员都表示不知道如何规划职业生涯的下一个步骤.基于我们目前所处的科技泡沫现象,很多工程师都倾向于留在大型的成熟公司,或者要么a)去初创企业工作要么b)自己搞初创公司. 回顾我自己的职业生涯,我想我是幸运的,因为不管是大公司还是初创企业我都找到了工程技术方面的工作.无论你的选择是什么,只要你想成为领导者(CTO.工程副总监.工程部管理人员等),那么有些基本技能你就必须掌握.当然,并不是每个兵都想当元帅,不过这也没关系,青菜萝卜各有所爱. 如果你对自己的目标定位非常明确,也知道应该