为什么有些公司的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 ...
随机推荐
- json的解析和生成
相比于xml,json的主要特点是数据小,解析速度快,但是描述性差. java中常见的json解析方法有Gson.Jackson.JSON.simple. 从解析速度上来看,Gson适合解析小数据量, ...
- MySQL8.0大表秒加字段,是真的吗?
前言: 很早就听说 MySQL8.0 支持快速加列,可以实现大表秒级加字段.笔者自己本地也有8.0环境,但一直未进行测试.本篇文章我们就一起来看下 MySQL8.0 快速加列到底要如何操作. 1.了解 ...
- Class和ClassLoader的getResource方法对比
最近在看写Spring的源代码,里面有好多地方都用到了Class和ClassLoader类的getResource方法来加载资源文件.之前对这两个类的这个方法一知半解,概念也很模糊,这边做下整理,加深 ...
- leetcode 1081
开始的思路是遍历存储每个字符的所有位置,再进行扫描处理,但是实际操作并没有很熟练,于是在讨论区学习后,有了下面的解法! 首先需要知道不同的字符在字符串中的最后的位置(理论上的最优位置) 然后扫描字符串 ...
- Jenkins 基础篇 - 任务分类
从前面的小节中我们看到在创建 Jenkins 任务的时候有好几种类型,如果你专门安装了 Maven 相关插件,可能还会有一个[构建一个 maven 项目]的任务类型,那这些任务类型究竟有何区别,以及我 ...
- SQL中那么多函数,Java8为什么还要提供重复的Stream方法,多此一举?
有个同学提出一个这样的疑问; 在业务系统中,数据一般都从sql中查询,类似使用where,order by,limit,聚合函数等,为什么还要用java8的Stream方法? 对这个问题,大家有什么见 ...
- 5分钟让你理解K8S必备架构概念,以及网络模型(下)
写在前面 在这用XMind画了一张导图记录Redis的学习笔记和一些面试解析(源文件对部分节点有详细备注和参考资料,欢迎关注我的公众号:阿风的架构笔记 后台发送[导图]拿下载链接, 已经完善更新): ...
- Linux中169.254.0.0/24的路由来自哪里
在Linux中,发现每次系统启动时,都会将(169.254.0.0/16)路由启动并将其添加到路由表中.但是并不知道这条路由具有什么功能和它到底来自于哪里? [root@master01 ~]# ro ...
- 【转载】有图 KVM折腾记..
KVM折腾记...https://lengjibo.github.io/KVM%E6%8A%98%E8%85%BE%E8%AE%B0/ Veröffentlicht am 2018-09-20 | ...
- gitlab同步插件gitlab-mirrors报错<已解决,未找到原因>
今天下午在使用gitlab-mirrors同步插件时,发现一直在报错 # ~/gitlab-mirrors/add_mirror.sh --git --project-name manifests - ...