当前位置: 首页 > 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;旨在改变企业本地化视频内容…...

python爬虫 -爬取 json 格式数据

在Python中&#xff0c;爬取JSON格式的数据通常涉及到发送 HTTP请求到某个URL&#xff0c;并解析返回的JSON数据。以下是一个简单的示例&#xff0c;说明如何使用Python的requests库来爬取JSON格式的数据&#xff1a; 1. 首先&#xff0c;确保你已经安装了requests库。如果没…...

Pytorch(5)-----梯度计算

一、问题 如何使用Pytorch计算样本张量的基本梯度呢&#xff1f;考虑一个样本数据集&#xff0c;且有两个展示变量&#xff0c;在给定初始权重的基础上&#xff0c;如何在每次迭代中计算梯度呢&#xff1f; 二、如何运行 假设有x_data 和 y_data 列表&#xff0c;计算两个列表需…...

C#的膨胀之路:创新还是灭亡

开篇概述 C#&#xff0c;这门由微软推出的编程语言&#xff0c;自2000年诞生以来&#xff0c;以其简洁的语法、强大的功能和广泛的应用场景&#xff0c;赢得了我等程序员的热爱。它在.NET框架的加持下&#xff0c;展现出无与伦比的开发效率和性能。然而&#xff0c;随着时间的流…...

SpringBoot 过滤器和拦截器的区别

SpringBoot 过滤器和拦截器的区别 Spring拦截器&#xff08;Interceptor&#xff09;和过滤器&#xff08;Filter&#xff09;是Spring框架中用于处理请求的两种机制&#xff0c;虽然它们都可以在请求处理的不同阶段进行拦截和处理&#xff0c;但它们的工作原理和应用场景有所…...

协程执行顺序引发的问题

引言 在Golang中&#xff0c;因为协程执行的顺序是不固定的&#xff0c;如果不在代码里进行控制&#xff0c;可能就会导致预期外的输出。 本文通过分析一段代码的执行来介绍这种情况&#xff0c;以及可行的控制协程执行顺序的方法&#xff1a; sleep()waitGroup 实例分析 代…...

android webview调用js滚动到指定位置

一、activity import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.tencent.smtt.sdk.WebView import com.tencent.smtt.sdk.WebViewClientclass MainActivity : AppCompatActivity() {private lateinit var webView: WebViewoverride fun …...

WPF 深入理解一、基础知识介绍

基础知识 本系列文章是对个人 B站 up 微软系列技术教程 记录 视频地址 https://www.bilibili.com/video/BV1HC4y1b76v/?spm_id_from333.999.0.0&vd_source0748f94a553c71a2b0125078697617e3 winform 与 wpf 异同 1.winform 项目结构 编辑主要是在 Form1.cs(页面)&#…...

腾讯云点播ugc upload | lack signature 问题处理

我犯一个很傻的错误 参考腾讯云官方文档&#xff1a;云点播 Web 端上传 SDK-开发指南-文档中心-腾讯云 进行开发&#xff0c;但是却报错了&#xff0c;始终找不到问题&#xff0c;错误提示&#xff1a;ugc upload | lack signature&#xff0c;意思是缺少签名或者签名失败&…...

计算机视觉实验二:基于支持向量机和随机森林的分类(Part one: 编程实现基于支持向量机的人脸识别分类 )

目录 一、实验内容 二、实验目的 三、实验步骤 四、实验结果截图 五、实验完整代码 六、报错及解决方案 PS:实验的运行速度受电脑性能影响,如遇运行卡顿请耐心等待。 一、实验内容 编程实现基于支持向量机的人脸识别分类,基本功能包括:Labeled Faces in th…...

5.什么是C语言

什么是 C 语言? C语言是一种用于和计算机交流的高级语言, 它既具有高级语言的特点&#xff0c;又具有汇编语言的特点 非常接近自然语言程序的执行效率非常高 C语言是所有编程语言中的经典&#xff0c;很多高级语言都是从C语言中衍生出来的&#xff0c; 例如:C、C#、Object-C、…...