CTO不写代码,凭什么拿高工资?

新闻
常常会被问到这样的问题:CTO、技术总监、架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资?

 [[384084]]
图片来自 Pexels 

其实,这个问题本身就错了。就好比问:导演、制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的?

其实不难理解,导演、制片人的核心能力并不是演戏,又怎么能跟演员作比较呢?

回答前面的问题,逻辑也是一样的,拿 CTO、技术总监、架构师,跟程序员比写代码的能力,本身就是个错误。因为,他们的核心能力是不一样的。

CTO、技术总监、架构师的核心能力是技术判断力。简单来讲,就是判断一个项目、一个系统架构、某个技术方向,是否符合企业当前现状,是否对企业的未来产生价值。

程序员的核心能力是写代码的能力。就是做具体的代码实现。

所以 CTO/技术总监/架构师,跟程序员的核心能力,是完全不一样的能力,是没法作直接比较的。

通常我们说,CTO、技术总监、架构师们很牛逼,指的是他们的技术判断力牛逼,而不是他们写代码的能力牛逼。相反,他们写代码的能力可能还比不上一个资深程序员。

但是,他们所做的技术判断,给公司带来非常高的价值。比如,阿里云创始人王坚博士,在所有人反对的时候,他坚持云计算是未来,帮助阿里提前布局云计算,为阿里成长为万亿商业帝国,立下汗马功劳。

这就是技术判断力,给企业带来的巨大价值。

大家之所以都很容易混淆这几个角色,以及它们的职责,其实很重要的一个原因就是,人们常常把 CTO、架构师、技术经理的头衔,乱授予技术负责人。在国内这种现象尤其严重。

比如,一个初创公司的技术负责人,实际干的活就是个技术经理。老板为了显得高大上,硬要给他安一个 CTO 的头衔。这种情况很普遍,特别是全民创业的那几年,遍地都是 CTO。

为了说清楚技术负责人的职责,我们以一个电商公司的成长为例,讲解企业在初创期、发展期、成熟期的不同阶段,都需要什么样的技术负责人,以及他们具体都干些什么。

01第一阶段,高级程序员 实现复杂功能,解决技术难题

一个刚刚起步的创业公司,通常只有几个程序员,甚至连产品经理、项目经理都没有,老板自己就是产品经理,把想法跟开发人员一说,就快速地做出原型。

如果这个阶段对开发的能力不满,那么大概需要的只是一个高级开发人员,他能搞定一般的技术难题,实现复杂功能,思路清晰、干活利索。

千万不要去大厂挖个技术总监,你家庙太小,供不起这么大的神,他真来了也发挥不了应有的作用。

老读者知道,笔者有过一段创业经历,当时追随我的老领导出来创业,我就是名义上的 CTO,带了 7、8 人的团队,我还同时带了两个项目,每个项目里我都贡献了 30% 以上的代码量。其实,当时的我,就是个高级程序员而已。

小结一下,高级程序员的主要职责是:

  • 实现复杂功能,编写核心代码
  • 处理线上 Bug,解决技术难题。

[[384085]] 

02第二阶段,技术经理 交付效率提高、质量提升

当公司的业务发展起来后,就需要一支相对完善的技术团队,有了专职产品经理、测试人员等,团队规模在 15 人左右,专注于一条产品线。

复杂功能、技术难题,高级开发人员可以搞定,但是如果要解决开发团队效率、技术人员能力提升、代码质量和编码规范等,就需要技术经理了。技术经理通常写少量的代码,更多做技术管理、项目团队等工作。

这就是许多创业公司 A 轮融资前的情况。由技术经理总体负责技术团队,产品经理对接业务需求,做产品规划、竞品分析,而不是抄袭哪个 App。

小结一下,技术经理的职责是:

  • 开发任务分派。开发工作量评估、分派,最大化资源利用率。
  • 代码质量提升。Code Review、编码规范、线上 Bug 分析。
  • 项目管理。确保项目的按时交付,建立管理机制。
  • 团队管理。团队搭建、人员招聘、人员培养。

03第三阶段,技术总监 技术规划、多产品线、项目群管理

当技术团队发展到 30 人左右,有了多条核心产品线、有了多个技术经理时,就需要一个技术总监了。

技术总监,作为领域专家,站在更高的层面思考技术如何建立壁垒,构建技术竞争力。

逐步开始建立公共技术平台,协调多条产品线在统一的技术平台上快速迭代,让产品线跑得快、跑得稳。

技术总监,在领域内有多年沉淀,来自知名互联网企业,能够把技术团队带上一个新的台阶。

技术总监,更多是做技术判断了,也有些技术型的技术总监仍然会写些核心代码、做架构设计。

技术总监的职责:

  • 搭建公司技术平台部,统一技术栈。
  • 建立产品研发体系,让技术团队可持续性地快速交付。
  • 管理和协调多条产品线,打造明星产品。
  • 建立技术壁垒,形成技术竞争力。

[[384086]]

04第四阶段,架构师 架构设计、架构实现、架构评审

公司如果“跑到”了 B 轮,技术团队应该要接近百人了,此时的技术团队跟初创时期相比,已经很不错了。

有技术总监协调着各产品线,有开发经理带领技术团队快速迭代产品。代码规范、最佳实践的总结和推广也在逐步开展。

此时,需要把架构规划和架构评审的职能从技术总监和开发经理身上剥离,即分离专业岗和管理岗,专业人做专业事。

这时候就需要设立架构师岗位,专注于技术架构分析、架构设计、架构实现、推动重构、推行架构原则等工作,让技术总监和技术经理侧重在项目管理、团队管理。

架构师的职责是:

  • 业务架构设计和实现。根据业务规划和应用场景,设计切合当前业务要求,并且具备一定前瞻性的应用架构、类、接口、业务抽象及业务建模等。
  • 架构设计和实现。识别非功能性需求,如性能、可扩展性、安全性、高可用及易部署等。
  • 重构计划及执行。关注全链路监控数据、线上 Bug、系统预警等信息,识别架构缺陷,提出重构建议并推动执行。

05第五阶段,CTO 技术产品战略规划,提升技术竞争力

当技术团队有了几名总监、架构师,人数达到几百人,是时候引入真正意义上的 CTO 了,除非 CTO 是联合创始人,否则这个 CTO 会有“虎落平阳”的感觉,公司也会觉得这个人“满嘴跑火车,却落不了地”。

国内的中大型互联网公司,一般有产品 VP 和技术 VP,有的技术 VP 就是 CTO。

如果 CTO 统管技术和产品,那么产品 VP 就给 CTO 汇报,否则他们是平级的。

在国外,CTO 主要研究 3~5 年的技术发展趋势,为公司做中长期的技术规划,是具有行业影响力的技术大咖,公司技术领域的精神领袖。CTO 较少关注当下的具体事务,这类工作主要由工程副总裁们处理。

以国内互联网公司 CTO 为例,总结一下 CTO 的主要职责:

  • 技术赋能商业。敏锐的商业洞察、深入的产业研究、参与公司战略规划,技术引领业务增长,通过技术和产品实现战略落地。
  • 技术趋势研究。思考未来 3~5 年的技术发展趋势,以及新技术发展给企业带来的机遇和风险,为企业提前布局。
  • 技术治理体系。持续的过程改进、高效的研发流程、稳定的交付质量、高可用的系统。
  • 组织与文化。建设学习型组织、自我完善型组织,建立符合企业特色的文化氛围。

06结语

最后,不想当 CTO 的程序员,不是好骑手。从程序员到 CTO 的成长过程,需要不断提升技术能力、产品能力、项目能力、管理能力、商业视野、个人影响力、行业人脉等等。

除了自身的奋斗之外,机会和运气同样重要,而且是可遇不可求的。但是,梦想还是要有的,万一见鬼了呢。

作者:Mr.K,知名电商公司技术老K级人物。文出过畅销书,武做过 CTO,若非生活所迫,谁愿一身才华。

编辑:陶家龙

出处:转载自公众号技术领导力(ID:jishulingdaoli)

责任编辑:武晓燕 来源: 技术领导力
相关推荐

2021-02-25 11:30:17

代码开发技术

2018-09-30 09:36:58

CTO代码程序员

2015-05-14 14:17:28

拿工资写代码

2017-09-21 16:13:32

程序员工资机会

2020-08-20 08:39:54

CTO代码数据

2018-12-28 09:25:50

机器学习深度学习工程师

2019-05-15 09:59:24

程序员技能开发者

2020-10-10 09:09:21

CTOCRUD设计

2019-08-05 13:47:18

2023-02-27 15:24:07

代码

2023-10-27 22:53:08

2017-06-06 16:30:55

戴尔交付保障

2021-07-20 06:37:33

CTO代码程序员

2021-10-18 08:15:12

CTO代码裁员

2020-08-20 14:04:34

日志MySQL磁盘

2018-04-11 23:26:44

2014-05-12 00:35:58

创业CEO工资

2020-03-24 08:22:12

开发工资代码

2020-12-15 16:44:48

代码程序运行

2019-09-12 10:00:57

程序员技能开发者
点赞
收藏

51CTO技术栈公众号