当前位置: 首页 > news >正文

CTO的职责是什么?

看《架构思维》作者是这样讲的:

CTO 到底是做什么的?

我当下的答案是:“CTO 就是一个从技术视角出发,为公司或者所在的部门做正确决策的 CEO。”怎么理解这句话呢?作为一个 CTO,其长期目标和决策优先级与 CEO 的是 完全一致的,只不过 CTO 是通过技术手段来最大化公司的生存优势和发展,而 CEO 则是 在更广泛的视角上解决公司的生存和发展问题。

我时常问自己:CEO 现在需要什么?从长期看,他需要什么?我怎么做才能帮到他? 在技术视角上,我看到了什么机会和风险?他看到了吗?

也就是说,CTO 的大多数时间都是从技术视角出发,思考 CEO 一直在思考的问题: 如何为企业带来更大的生存优势?这个决策目标有非常大的特殊性。企业内的所有技术人 员,包括总架构师,一般都是以技术本身的先进性作为决策的第一优先级的。技术人员在 考虑企业生存的时候,往往仅以多个约束中的一个作为参考,但 CTO 不是,企业长期生 存才是他决策的第一优先级,技术先进性反倒是第二位的,甚至是可以忽略的。

我们可以通过一个案例来理解这两种思考方式的差异。

假设一名 CTO 所在的行业竞争激烈,所在企业还没有积累足够的资本和领先优势。有 一天,技术团队在讨论是否应该采用云原生的架构来替代现有的方案。从长期的技术发展角 度看,云原生会带来更好的计算伸缩性、更大的技术生态、更先进和更快速迭代的技术栈。

那么,如果以技术先进性为决策第一优先级,公司应该把线下的机器迁移到云上才能加速在 云原生技术栈上的积累,因为这样做不会对公司的生存带来负面影响,所以要立即规划和行 动,才能尽早培养人才和积累技术优势。

但是,同样的问题如果 CEO 以企业生存优势最大化为第一位来思考,结论就会不一样: 第一,做迁移会增加技术投入,降低业务迭代速度;第二,云原生迁移带来的回报是一个长 期且相对缓慢的释放过程,在迁移前期,由于周边技术的不成熟、投入大,资本回报反倒比 较小;第三,也是最重要的一点,迁移到云原生并不能给企业带来当下的生存劣势,但是也 不一定是当下最大化企业生存优势的最好的技术项目。所以,如果以企业生存为第一优先级 做出这个问题的决策,那么对比其他更实用且有明确回报的技术投入,云原生还不是最高优 先级,云原生这件事情可以放一放。

这个案例说明了一件事情,作为 CTO,技术先进性只是他的次要目标,其首要目标是 必须从企业生存为第一优先级出发来做技术取舍。在这种视角下,投入技术创新、加速技术 壁垒的构筑、放弃某项先进技术和某个团队,甚至寻找技术之外的选项,断臂求生,都是非 常合理的选择。

CTO 的这种以企业生存为第一目标的判断能力往往会让 CTO 把最重要的人才投到最有 利于商业增长的领域,而做到这一点就要求 CTO 对所在行业的未来走向有明确的判断,这 其实就是人们常说的商业嗅觉。CTO 只有商业嗅觉足够好,才能知道如何做技术战略,把 最重要的技术投入放在最关键的位置上。

CTO的双重人格

多数 CTO 不会放弃技术思维,因为在多数中小企业中,CTO 和总架构师这两个角色 是合二为一的,由 CTO 一个人承担,其原因有很多。首先,总架构师非常难找,公司对 这个岗位的能力要求非常高,总架构师在软件架构正确性的判断能力上必须在整个公司无 出其右,包括 CTO;其次,总架构师很难从内部培养出来,因为这个角色的判断能力需要 通过许多高风险的决策机会才能提升,这也是大多数中小企业最稀缺的;再次,总架构师 的职级和薪酬很高,从 CEO 视角来看,要招聘的人非常多,为这个岗位付出高薪往往不 是很多中小企业的第一优先级;还有,尽管这两个角色是汇报关系,但是决策的出发点完 全不同,所以经常会发生冲突,发生冲突多了,渐渐就失去了信任,长此以往,难免分道 扬镳;最后,总架构师有个人成长的诉求,很多总架构师期望自己做 CTO,也在企业生存 的维度上决策思考,一旦有机会,也会主动选择离开。

总架构师岗位难招聘、难培养、成本高、合作难、易流失,所以在大多数公司总架构 师这个角色就必须由 CTO 来承担。但是,这两个角色对一家企业来说都是必不可少的。 看一下图 23.1,最上方的是真正担任 CTO 的某个人,他是企业的最终的技术决策者,他 有两种人格,一种是总架构师人格,另一种是 CTO 人格。

图 23.1 CTO 的两种人格

CTO 的这两种人格分别持有不同的视角和决策优先级,对待任何一个问题,CTO 人 格都要和 CEO 保持高度一致,以企业的生存为第一优先级,并兼顾到商业竞争、业务、 财务和产品的视角;总架构师人格必须以技术实力的增长为第一优先级。

这两种人格要不断交锋,总架构师人格要把 CTO 这个决策者的视角拉到技术思维中 去,以技术先进性和技术团队的利益为先;CTO 人格要把 CTO 这个决策者拉到商业思维 上去,以企业的长期生存优势为先。这种冲突势必存在于每个日常的决策中,不断交锋, 但是交锋的最终目标只有一个,就是“从企业的长期利益出发做出最优的技术决策”。

总架构师人格的价值在于为 CTO 决策者提供不同的视角,并在合理的时候帮他顶住 来自 CEO 的压力,坚持正确决策。CTO 人格的价值在于抵抗内心对技术的痴迷和保护自 己团队人员的本能,从公司全局出发作出最优决策,必要的时候,技术先进性、团队利益 和架构合理性都是可以牺牲的选项。

做好总架构师其实有一个必要条件,就是具备与 CTO 建立深度信任的基础和化解日 常冲突的能力。但是, 在频繁的冲突和信息不对称的情况下,做到这一点非常难,所以中 小企业的 CTO 最终选择同时保持两种人格。

关于《架构思维:从程序员到CTO》这本书

本书以架构师工作中的痛点问题为导向,结合大量真实、复杂的案例,帮助架构师提高架构设计能力,规划职业成长路径。本书共4部分,第一部分“架构师的思维模式”介绍3种架构师的思维定式和4种架构活动中常见的思维模式;第二部分“架构师的生存法则”介绍影响架构活动成败的6个要素,以及由其引出的架构师的6条生存法则;第三部分“架构活动中的挑战、根因和应对”介绍架构师在整个架构活动中持续发挥的作用以及架构活动不同阶段常见的问题;第四部分“架构师的职业规划和能力成长”介绍架构师的成长地图和对应角色的关键能力,以及提升思考力的方法。

相关文章:

CTO的职责是什么?

看《架构思维》作者是这样讲的: CTO 到底是做什么的? 我当下的答案是:“CTO 就是一个从技术视角出发,为公司或者所在的部门做正确决策的 CEO。”怎么理解这句话呢?作为一个 CTO,其长期目标和决策优先级与…...

【GD32】从零开始学兆易创新32位微处理器——RTC实时时钟+日历例程

1 简介 RTC实时时钟顾名思义作用和墙上挂的时钟差不多,都是用于记录时间和日历,同时也有闹钟的功能。从硬件实现上来说,其实它就是一个特殊的计时器,它内部有一个32位的寄存器用于计时。RTC在低功耗应用中可以说相当重要&#xf…...

HTTP网络协议

1.HTTP (1)概念: Hyper Text Transfer Protocol,超文本传输协议规定了浏览器和服务器之间数据传输的规则。 (2)特点 基于TCP协议:面向连接,安全基于请求-响应模型的:一次请求对应一次响应HTTP协…...

Kubernetes相关生态

1、Prometheus、Metrics Server与Kubernetes监控体系 简介: Prometheus 项目与 Kubernetes 项目一样,也来自于 Google 的 Borg 体系,它的原型系统,叫作 BorgMon,是一个几乎与 Borg 同时诞生的内部监控系统 Pro…...

C语言入门4-函数和程序结构

函数举例 读取字符串&#xff0c;如果字符串中含有ould则输出该字符串&#xff0c;否则不输出。 #include <stdio.h>// 函数声明 int getLine(char s[], int lim); int strindex(char s[], char t[]);int main() {char t[] "ould"; // 要查找的目标子字符串…...

分行业二氧化碳排放数据

分行业二氧化碳排放量 资源名称&#xff1a;分行业二氧化碳排放量 数据来源&#xff1a;中国能源统计年鉴 时间范围&#xff1a;1995-2018年指标&#xff1a;八类能源和总量&#xff1a;煤炭、焦炭、原油、汽油、煤油、柴油、燃料油、天然气...

【OS基础】符合AUTOSAR标准的RTAOS-Alarms详解

目录 前言 正文 7.报警Alarms 7.1配置Alarms 7.1.1激活一个任务 7.1.2 设置一个事件 7.1.3报警回调Alarm Callback 7.1.4 增加计数器值 7.2设置Alarms 7.2.1 绝对Alarms 7.2.2 相对Alarm 7.3自启动Alarms 7.4 删除Alarms 7.5确认何时会发生Alarm 7.6非周期Alarm…...

基于Java的学生成绩管理系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Java技术&#xff0c;B/S结构 工具&#xff1a;MyEclipse&#xff0c;MySQL 系统展示 首页 个人中…...

都2024年了,还有人不懂动态代理么?

文章目录 一、定义二、静态代理三、动态代理1. JDK代理1.1 JDK代理实现流程1.2 动态生成的类字节码 2. Cglib代理2.1 Cglib实现流程 四、总结 一、定义 静态代理和动态代理都反映了一个代理模式&#xff0c;代理模式是一种经典的设计模式&#xff0c;常用于为其他对象提供一种…...

ARM功耗管理框架之PPU

安全之安全(security)博客目录导读 思考&#xff1a;功耗管理框架&#xff1f;SCP&#xff1f;PPU&#xff1f;LPI&#xff1f;之间的关系&#xff1f;如何配合&#xff1f; 目录 一、功耗管理框架中的PPU 二、PPU的结构与连接关系 三、PPU操作模式和电源模式及其之间的转…...

说说 SSL 的错误认识和不足之处

最近明月在学习折腾 LNMP 期间无意中建了一个 Typecho 的博客小站&#xff0c;近一周的折腾下来&#xff0c;收获真的不少&#xff0c;致使兴趣也越来越浓了&#xff0c;在升级 LNMP 的时候捎带手的给这个 Typecho 博客也启用了 SSL。并且开启了 memcached 和 OPcache 优化加速…...

Go语言day1

下载go语言的安装程序&#xff1a; All releases - The Go Programming Language 配置go语言的环境变量&#xff1a; 写第一个go语言 在E:\go_workspace当前窗口使用cmd命令: 输入 go run test.go...

【Python机器学习】利用t-SNE进行流形学习

虽然PCA通常是用于变换数据的首选方法&#xff0c;使你能够用散点图将其可视化&#xff0c;但这一方法的性质限制了其有效性。 有一类用于可视化的算法叫做流形学习算法&#xff0c;它允许进行更复杂的映射&#xff0c;通常也可以给出更好的可视化。其中特别有用的一个就是t-S…...

03 - matlab m_map地学绘图工具基础函数 - 设置坐标系(m_coord)

03 - matlab m_map地学绘图工具基础函数 - 设置坐标系&#xff08;m_coord&#xff09; 0. 引言1. m_proj使用方法2. 结语 0. 引言 上一篇介绍了m_proj函数用于初始化投影&#xff0c;本篇介绍的函数m_coord用于初始化地理坐标系或地磁坐标系&#xff0c;地理/地磁坐标系和投影…...

UEC++ 虚幻5第三人称射击游戏(一)

UEC 虚幻5第三人称射击游戏&#xff08;一&#xff09; 创建一个空白的C工程 人物角色基本移动 创建一个Character类添加一些虚幻商城中的基础动画 给角色类添加Camera与SPringArm组件 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category "SpringArm")clas…...

java小代码(1)

代码 &#xff1a; 今日总结到此结束&#xff0c;拜拜&#xff01;...

SLAM ORB-SLAM2(27)词袋模型

SLAM ORB-SLAM2(27)词袋模型 1. 词袋模型1.1. 词汇树1.2. 逆向索引表1.3. 逆向索引表2. 词袋向量3. 匹配候选帧3.1. 找出和当前帧具有公共单词的所有关键帧3.2. 找出和当前帧最多公共单词的关键帧3.3. 剔除共享单词数较少的关键帧3.4. 计算关键帧的共视关键帧组的总得分3.5. …...

OpenAI 的 GPT-5:CTO米拉-穆拉提说,到 2026 年将实现博士级智能(Ph.D.-Level))

据首席技术官米拉-穆拉提&#xff08;Mira Murati&#xff09;介绍&#xff0c;GPT-5 是 OpenAI 人工智能的下一代进化产品&#xff0c;将于 2025 年底或 2026 年初在特定任务中实现博士级智能。 GPT-5 内部代号为 "Gobi "和 “Arrakis”&#xff0c;将是一个多模态…...

macbook配置adb环境和用adb操作安卓手机

&#xff08;参考&#xff1a;ADB工具包的安装与使用_adb工具箱-CSDN博客&#xff09; 第一步&#xff1a;从Android开发者网站下载Android SDK&#xff08;软件开发工具包&#xff09;。下载地址为&#xff1a; 第二步&#xff1a;解压下载的SDK压缩文件到某个目录中。 进入解…...

微软TTS最新模型,发布9种更真实的AI语音

很高兴与大家分享 Azure AI 语音翻译产品套件的两个重大更新&#xff1a; 视频翻译和增强的实时语音翻译 API。 视频翻译&#xff08;批量&#xff09; 今天&#xff0c;我们宣布推出视频翻译预览版&#xff0c;这是一项突破性的服务&#xff0c;旨在改变企业本地化视频内容…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

【Vue】scoped+组件通信+props校验

【scoped作用及原理】 【作用】 默认写在组件中style的样式会全局生效, 因此很容易造成多个组件之间的样式冲突问题 故而可以给组件加上scoped 属性&#xff0c; 令样式只作用于当前组件的标签 作用&#xff1a;防止不同vue组件样式污染 【原理】 给组件加上scoped 属性后…...

旋量理论:刚体运动的几何描述与机器人应用

旋量理论为描述刚体在三维空间中的运动提供了强大而优雅的数学框架。与传统的欧拉角或方向余弦矩阵相比&#xff0c;旋量理论通过螺旋运动的概念统一了旋转和平移&#xff0c;在机器人学、计算机图形学和多体动力学领域具有显著优势。这种描述不仅几何直观&#xff0c;而且计算…...

运动控制--BLDC电机

一、电机的分类 按照供电电源 1.直流电机 1.1 有刷直流电机(BDC) 通过电刷与换向器实现电流方向切换&#xff0c;典型应用于电动工具、玩具等 1.2 无刷直流电机&#xff08;BLDC&#xff09; 电子换向替代机械电刷&#xff0c;具有高可靠性&#xff0c;常用于无人机、高端家电…...