为什么有些公司的IT很乱?
——别问,问就是赛马,问就是KPI驱动
为什么很多公司甚至是闻名遐迩的资深IT公司,都被吐槽IT技术建设很烂呢?按惯例,问为什么之前,先问是不是。
▒壹·鹅厂▒
2018年一个名为“当下腾讯的技术建设是否处于落后同体量公司的状态?”的问答一石激起千层浪,一位网名叫toughguy的腾讯人写下一篇著名檄文,炮打香港帮,以至于有阿里人留言:“你的回答已在A厂里传阅过了,包括很高很高的老板们,我们看完这篇文章并没有幸灾乐祸的心情,而是对技术人的可惜。”
作为课代表,我总结一下当时各方人士对鹅厂IT技术建设的矛头所向:
(也许因为)CTO缺位:不是说鹅厂一直没有CTO,而是CTO缺位。表象之一是,此前没有人站出来“拉通”整个集团所有BU的技术和规范,各干各的。表象之二是,迟迟还没有集团层面的技术委员会(反观美团、58同城、蚂蚁金服等公司早早就设立了技术委员会,负责顶层设计),直到2018年第三次大规模重组中,由于内部争斗爆出几篇文章抨击鹅厂不重视技术,才在重组变革清单的最后加了一条要成立技术委员会。
(还可能因为)业务导向太严重:据说鹅厂可能是互联网Top巨头中技术地位最低的公司,毕竟是产品驱动的企业文化。
(其实最重要的原因是)内部赛马机制:鹅厂不同BU之间不敢说势如水火,至少是如同防火防盗,究其原因就是内部赛马文化,成也萧何败也萧何。“一个新点子,四五支队伍同时做,谁做得快谁就享受流量支援”,在这种情况下,谁会分享技术,谁敢采用其他BU的技术?!
(导致)技术债务沉重:以至于有人吐槽:“如果你来自于其他IT公司,那么你进入鹅厂之后会有极大的自由,自由到你无法意识到你是在一个庞大的市值世界前十的公司工作,自由到和十几个人的创业公司差不多。”

* 拉通:互联网高端大气术语,本文中特指由一名得到更高层授权、拥有一定决策权的人跨部门或跨公司沟通协调。
▒贰·其他大厂▒
2015年有一个著名的“为什么有些大公司技术弱爆了?”问答一箭穿心,虽然提问者说的是一家“卖机票的”大型互联网公司,但射中了IT人的脆弱,无数人将心比心、换位思考地为技术团队中的 Bad Smells 辩护。
比如雷军旗下的公司,各搞各的体系建设,感觉没有人抓总,小米集团技术委员会姗姗来迟,2019年4月成立的。但58同城就很明显有技术委员会在抓总,举个简单例子,集团以前名下有统一的配置管理和过程控制部门,把下面各个公司的版本控制、持续集成和持续发布牢牢地抓在手里,后来好像因为成本核算的原因才把配管打散了下放到每一个公司里。有人抓总和没有,确实不大一样。
再比如2015年我们就了解到蚂蚁集团有着庞大的产品研发支撑体系,可以浓缩为四个平台:ACP(阿里协作平台)、九州资源管控平台、AQC(蚂蚁质量基础设施平台)、Zpass(蚂蚁集团发布部署平台)。ACP是总驱动,九州、AQC、Zpass作为基础设施,整个形成一套CI/CD流水线,如下图所示,注意这只是2015年我画的快照。

我可以把大家的辩护解读为“从熵增到熵死”:熵增:这是热力学第二定律所描述的原理,在孤立系统中,体系与环境没有能量交换,体系总是自发地向混乱度增大的方向变化,使整个系统的熵值越来越大。熵死:熵达到极大值,系统达到最无序的平衡态,整个系统最终慢慢地退化成毫无生气的、死气沉沉的一团物质——这是一种持久不变的状态。
但我不愿意承认“熵增”是根本原因,也不愿意承认“熵死”是必然结局,因为菊厂一直致力于“熵减”,此病虽积重难返但并非无药可解。
虽然2016年一位名叫“泥瓦匠”的海归程序员写下了那篇《华为到该炸掉研发金字塔的时候了》,从组织、流程、环境、工具等四方面阐述在菊厂做研发之不易,但2017年菊厂总裁办发布了一封《华为之熵,光明之矢》的学习邮件,试图从企业宏观层面论述如何解决企业发展过程中出现的组织惰怠、流程僵化、技术创新乏力、业务固化守成等问题。此处不再赘述,感兴趣的同学可自行搜索。* Bad Smells:坏味道。Martin Fowler在其名著《重构:改善既有代码的设计》中生动形象地使用“代码坏味道(Bad Code Smells)”来比喻低质量的代码设计和实现所显现的“症状”。
▒▓三·问题出在哪儿呢?▓▒
我跟一些大厂的人深入聊过,我们自己人也有不少人去了大厂,确实有不少声名显赫的大厂虽然业务高歌猛进,新闻高潮迭起,但IT缺少顶层设计,各自为战,高高砌起部门墙和公司墙,缺乏自发革新和革命。
我试图从组织行为逻辑上解释这个问题,首先我把它归因为“缺少德才兼备的长期主义者”。
其次,我从组织管理上描述一下表象,看看你是到哪一行心有戚戚焉,感慨这不就是我们公司嘛:
A.一开始有CTO的:
A.1.业务发展太快,CTO跟不上
A.1.1.CTO德不配位,水平不够,大家不服
A.2.公司押中赛道,巨量资金进入,同时引入了阿里腾讯百度等内企、微软谷歌等外企的风格迥异的技术大咖,这些势力互不买账,纠缠掣肘,公有公理,婆有婆理,做业务都一个头九个大,更别提顶层设计高举高打了
B.一直没有CTO的:
B.1.始终缺一票拉通抓总的人(比如技术委员会),BU们各自为政,自然而然,必然结果
B.1.1.技术选择太多了,光是Apache基金会里顶级项目就一大堆,每一个聪明人都想引入更好的,结果谁也不听谁的,你一个,我一个,慢慢地,集团里就脑裂成不同技术路线,各自演化
B.2.换人如换刀:现实中还有一种常见情况是,外行指挥内行,不解决问题专门解决人,工作达不成就换人,再达不成就再换。很容易在产研团队里导致这样一种后果,刚要有所起色就换了一拨人,又刚要有所起色又换了一拨人,最后搞得一团糟,满地全是无主的“焦油坑”。

* 焦油坑,参见软件工程经典著作《人月神话》。
▓█四·小结█▓
最后我总结一下:因为“缺少德才兼备的长期主义者”,面对企业不期而至的“熵增”,既不敢像马云支持阿里云王坚一样去寻求管理层的理解、信任和支持,也做不到“日拱一卒,功不唐捐”,更无法像王坚一样“所有理想主义都是用命来填”,最后变得像印度一样大而不强。
资源链接:
1,2018年著名问答,https://www.zhihu.com/question/278473776
2,2015年著名问答,https://www.zhihu.com/question/32039226
3,2016年,《华为到该炸掉研发金字塔的时候了》
4,2017年,《华为之熵,光明之矢》
昀哥 写作于2021年6月18日
关键词:IT建设,基础设施,长期主义,熵增,熵减,熵死
-全文完,如果觉得有收获,记得点推荐或“收藏”-
为什么有些公司的IT很乱?的更多相关文章
- 多年前写的一个ASP.NET网站管理系统,到现在有些公司在用
多年前写的一个ASP.NET网站管理系统,到现在有些公司在用 今早上接到一个电话,自已多年前写的一个ASP.NET网站管理系统,一个公司在用,出了点问题, 第一点是惊奇,5,6年前的东东,手机号码换了 ...
- 怎么用MathType解决Word公式排版很乱的问题
现在办公室起草文件,期刊论文投稿.学校试着编辑都要先在Word中编辑好后再打印出来.在Word中编辑这些文本内容时,如果遇到公式就要使用专门的MathType公式编辑器.而有很多人在用MathType ...
- Jmeter日记,很乱很随意
这个笔记是写给自己看的,很乱很随意,可能以后自己都看不懂.哈哈 Jmeter两种录制方式: 1使用badboy 2.使用代理 浏览器设置代理 参数化 随机参数化 插件的使用 官网下载和说明https: ...
- 安装storm的一些很乱的笔记
下面是自己安装和测试storm的一些笔记,比较乱,后续有时间在整理一篇. storm jar all-my-code.jar com.storm.MyTopology arg1 arg2这个命令会运行 ...
- angular学习笔记,很乱哈哈。
1.鼠标悬浮出现的信息v-bind:title="message" 2.对该便签进行结果判断显示隐藏v-if=''控制台设置 app3.seen = false(消失).控制台设置 ...
- sqlplus 打印很乱,而且很短就换行
set linesize 可以解决 设置行打印的字符长度,set linesize 400解决
- 手提wifi双卡配置+window7同时多用户远程+有些公司限制网络环境方案
该公司只提供几台机器,同时限制并连接到内部办公网络的机, 我们更多的临时工作人员,项目紧张,而另一种是太麻烦了申请, 当被问及其他网络管理,说没有变通方法. 在我的尝试,最后,找到一个解决方案; 解决 ...
- 移动端目标识别(3)——使用TensorFlow Lite将tensorflow模型部署到移动端(ssd)之Running on mobile with TensorFlow Lite (写的很乱,回头更新一个简洁的版本)
承接移动端目标识别(2) 使用TensorFlow Lite在移动设备上运行 在本节中,我们将向您展示如何使用TensorFlow Lite获得更小的模型,并允许您利用针对移动设备优化 ...
- centos 7.0 lnmp成功安装过程(很乱)
下载nginx [root@localhost src]# wget http://nginx.org/download/nginx-1.7.9.tar.gz --2015-01-24 12:55:2 ...
随机推荐
- Linux(CentOS-8)安装MySQL8.0.11
CentOS安装MySQL8.0.11 总的思路就是:安装MySQL,编写配置文件,配置环境变量,成功开启服务,登陆并修改ROOT密码 开启远程访问的思路就是:授权用户所有IP都可以访问,系统的数据库 ...
- 基于RRCF(robust random cut forest)的时间序列异常检测流程
摘要:RRCF是亚马逊提出的一个流式异常检测算法,是对孤立森林的改进,可对时序或非时序数据进行异常检测.本文是我从事AIOps研发工作时所做的基于RRCF的时序异常检测方案. 1. 数据格式 ...
- .Net Core——用代码写代码?
想要用代码写代码,肯定是绕不开反射的.反射的概念相比都不陌生,只是应用多少就因人而异,今天分享一个代码生成器的思路,仅供参考,不要过分依赖哦. 思路分析 众所周知,利用反射可以在程序运行时获取到任一对 ...
- [bug] SSM项目:Cannot load driver class: com.mysql.jdbc.Driver
检查pom文件,mysql包部分为: <dependency> <groupId>mysql</groupId> <artifactId>mysql-c ...
- [web] 虚拟机网络设置
三种模式 桥接(Bridged):主机网卡--虚拟网桥--虚拟机网卡,把主机虚拟为交换机,虚拟机ip需与主机设置在同一网段,网关与DNS与主机网卡一致 地址转换(NAT):主机网卡--虚拟NAT设备- ...
- 解决 Ubuntu 无法使用 root 用户进行 ssh 远程登陆
解决 Ubuntu 无法使用 root 用户进行 ssh 远程登陆 操作系统 Ubuntu 20.04.2 LTS 一.修改sshd配置文件 //打开 /etc/ssh/sshd_config 配置文 ...
- SUSE 11sp3镜像制作
在安装过程遇到的问题: 起初采用官网推荐的virt-install工具,客户端没有用virt-manager或者virt-view一直无法进行操作系统安装,于是改用,直接启动虚拟机,便ok了. 1.环 ...
- Question&&Answer
1.使用Navicat连接Ubuntu上面的MySql数据库失败 解决办法:Navicat版本的问题,尝试换用更高版本的Navicat解决了问题(当时使用了Navicat Premium_11.2.7 ...
- 『动善时』JMeter基础 — 31、JMeter中BeanShell断言详解
目录 1.BeanShell简介 2.Beanshell的内置变量和方法 3.BeanShell断言界面详解 4.BeanShell断言的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 ...
- ThinkPHP 全局异常处理
wqy的笔记:http://www.upwqy.com/details/273.html 在thinkphp6 和 thinkphp5 全局异常处理 稍有不同 ThinkPHP6 在 tp6 中 框架 ...