为什么有些公司的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 ...
随机推荐
- 通过例子分析MVVM
通过一个简单的计数器例子分析MVVM. 代码 demo2.html <!DOCTYPE html> <html lang="en"> <head> ...
- liunx服务器安装jdk
1.官网下载需要版本的jdk,官网地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.h ...
- 从 demo 到生产 - 手把手写出实战需求的 Flink 广播程序
Flink 广播变量在实时处理程序中扮演着很重要的角色,适当的使用广播变量会大大提升程序处理效率. 本文从简单的 demo 场景出发,引入生产中实际的需求并提出思路与部分示例代码,应对一般需求应该没有 ...
- QFNU 10-30 training
7-9 特立独行的幸福 题意:见PTA 思路:其实就是遍历进行查找,利用递归函数,为了解决是特立独行,还要用一个全局数组进行存储所有满足条件的数进行去重标记,最后在输出的时候进行判断是否是只读取过一次 ...
- 浅谈Java的诞生和现状
昨天在旅途中登录一下很久没用的boss直聘,看看行情,一天的时间,已经有20+家公司给我发出了面试邀请,先跟大家谈谈Java的诞生和现状. 传说,在二十世纪90年代,一个叫Sun的公司,成立了一个项目 ...
- Rabbit MQ一些参数解释
//ConnectionFactory(连接工厂): 生产Connection的的工厂 //Connection(连接):是RabbitMQ的socket的长链接,它封装了socket协议相关部分逻辑 ...
- OOP第二章博客
OO第二次博客作业 (1)作业分析 三次作业在处理多线程的协同配合时都是使用将同步放在自己写的"线程安全类"(经测试有些许漏洞_,但是不影响结果就是了): 我个人倾向于把wait( ...
- 驰骋CCFlow开源工作流程引擎如何设置PDF打印
前言 经常有驰骋CCFlow爱好者朋友提问关于打印相关问题.在这篇博文中大家介绍一下工作流引擎CCFlow的HTML打印和PDF打印,针对Java版本和.NET版本有不同的操作步骤,包括开关设置.水印 ...
- [刷题] 349 Intersection of Two Arrays
查找问题 查找有无(只有键) 元素'a'是否存在 set(集合) 查找对应关系(键值对应) 元素'a'出现了几次 map(字典) set和map的底层实现是红黑树 常见操作 insert() find ...
- Python re 截取文本中IP地址及用户名
文本示例: ts=2019-07-10T06:43:06523942Z pid=1875 tid=6320 version=e73c536 proto=http id=5a61a613e395f883 ...