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在低功耗应用中可以说相当重要…...
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-函数和程序结构
函数举例 读取字符串,如果字符串中含有ould则输出该字符串,否则不输出。 #include <stdio.h>// 函数声明 int getLine(char s[], int lim); int strindex(char s[], char t[]);int main() {char t[] "ould"; // 要查找的目标子字符串…...
分行业二氧化碳排放数据
分行业二氧化碳排放量 资源名称:分行业二氧化碳排放量 数据来源:中国能源统计年鉴 时间范围:1995-2018年指标:八类能源和总量:煤炭、焦炭、原油、汽油、煤油、柴油、燃料油、天然气...
【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的学生成绩管理系统
你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java技术,B/S结构 工具:MyEclipse,MySQL 系统展示 首页 个人中…...
都2024年了,还有人不懂动态代理么?
文章目录 一、定义二、静态代理三、动态代理1. JDK代理1.1 JDK代理实现流程1.2 动态生成的类字节码 2. Cglib代理2.1 Cglib实现流程 四、总结 一、定义 静态代理和动态代理都反映了一个代理模式,代理模式是一种经典的设计模式,常用于为其他对象提供一种…...
ARM功耗管理框架之PPU
安全之安全(security)博客目录导读 思考:功耗管理框架?SCP?PPU?LPI?之间的关系?如何配合? 目录 一、功耗管理框架中的PPU 二、PPU的结构与连接关系 三、PPU操作模式和电源模式及其之间的转…...
说说 SSL 的错误认识和不足之处
最近明月在学习折腾 LNMP 期间无意中建了一个 Typecho 的博客小站,近一周的折腾下来,收获真的不少,致使兴趣也越来越浓了,在升级 LNMP 的时候捎带手的给这个 Typecho 博客也启用了 SSL。并且开启了 memcached 和 OPcache 优化加速…...
Go语言day1
下载go语言的安装程序: All releases - The Go Programming Language 配置go语言的环境变量: 写第一个go语言 在E:\go_workspace当前窗口使用cmd命令: 输入 go run test.go...
【Python机器学习】利用t-SNE进行流形学习
虽然PCA通常是用于变换数据的首选方法,使你能够用散点图将其可视化,但这一方法的性质限制了其有效性。 有一类用于可视化的算法叫做流形学习算法,它允许进行更复杂的映射,通常也可以给出更好的可视化。其中特别有用的一个就是t-S…...
03 - matlab m_map地学绘图工具基础函数 - 设置坐标系(m_coord)
03 - matlab m_map地学绘图工具基础函数 - 设置坐标系(m_coord) 0. 引言1. m_proj使用方法2. 结语 0. 引言 上一篇介绍了m_proj函数用于初始化投影,本篇介绍的函数m_coord用于初始化地理坐标系或地磁坐标系,地理/地磁坐标系和投影…...
UEC++ 虚幻5第三人称射击游戏(一)
UEC 虚幻5第三人称射击游戏(一) 创建一个空白的C工程 人物角色基本移动 创建一个Character类添加一些虚幻商城中的基础动画 给角色类添加Camera与SPringArm组件 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category "SpringArm")clas…...
java小代码(1)
代码 : 今日总结到此结束,拜拜!...
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))
据首席技术官米拉-穆拉提(Mira Murati)介绍,GPT-5 是 OpenAI 人工智能的下一代进化产品,将于 2025 年底或 2026 年初在特定任务中实现博士级智能。 GPT-5 内部代号为 "Gobi "和 “Arrakis”,将是一个多模态…...
macbook配置adb环境和用adb操作安卓手机
(参考:ADB工具包的安装与使用_adb工具箱-CSDN博客) 第一步:从Android开发者网站下载Android SDK(软件开发工具包)。下载地址为: 第二步:解压下载的SDK压缩文件到某个目录中。 进入解…...
微软TTS最新模型,发布9种更真实的AI语音
很高兴与大家分享 Azure AI 语音翻译产品套件的两个重大更新: 视频翻译和增强的实时语音翻译 API。 视频翻译(批量) 今天,我们宣布推出视频翻译预览版,这是一项突破性的服务,旨在改变企业本地化视频内容…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...
goreplay
1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具,可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长,测试它所需的工作量也会呈指数级增长。GoRepl…...
网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...
二叉树-144.二叉树的前序遍历-力扣(LeetCode)
一、题目解析 对于递归方法的前序遍历十分简单,但对于一位合格的程序猿而言,需要掌握将递归转化为非递归的能力,毕竟递归调用的时候会调用大量的栈帧,存在栈溢出风险。 二、算法原理 递归调用本质是系统建立栈帧,而非…...
Java设计模式:责任链模式
一、什么是责任链模式? 责任链模式(Chain of Responsibility Pattern) 是一种 行为型设计模式,它通过将请求沿着一条处理链传递,直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者,…...
MeanFlow:何凯明新作,单步去噪图像生成新SOTA
1.简介 这篇文章介绍了一种名为MeanFlow的新型生成模型框架,旨在通过单步生成过程高效地将先验分布转换为数据分布。文章的核心创新在于引入了平均速度的概念,这一概念的引入使得模型能够通过单次函数评估完成从先验分布到数据分布的转换,显…...
