DevOps|从特拉斯辞职风波到研发效能中的不靠谱人干的荒唐事
今天发生了一件大事特拉斯辞任英国首相,我想借着这件事情说下我看到的一件研发效能的荒唐事,这其中的关联也许就是「都用了不靠谱的人」。
两件事情
今儿一早就听到,2022年10月20日英国第78任首相伊丽莎白·特拉斯宣布辞职。特拉斯上任后任命她的「密友克沃滕」出任财政部长推出「迷你预算」结果引来英国金融大震荡,英镑对美元汇率跌幅达3%,股市和英国国债均大幅下挫。最后架不住投资者、保守党和民意,辞去英国保守党党首职务,自动卸任英国首相职务,任职45天,也是英国历史上任期最短的首相。
迷你预算这事干的真不靠谱,一发出来股市、汇市、国债齐跌。具体原因大家可以自行搜索,总之这就是不靠谱的人不专业的人才能捅出来的大窟窿,但凡有点花生米也不至于如此。我做研发效能这么多年,也见过一件只有不靠谱的研发效能团队才能干出的事。
这件事就是把全公司「90%」的代码仓库设置成全 internal 。什么意思呢?只要你是 gitlab 的用户并且登录,那么公司除了少部分被设置成 private 的代码仓库,其它 90% 以上的仓库你都可读(可以克隆到本地)。当很多公司都在梳理仓库权限,建议把权限设置成 private 的时候,居然有人推动把公司的绝大部分仓库开放出去。我了解了一下,这样做的目的是项目公司内部开源。当时我内心的想法是「擦....老板又被不靠谱的人给忽悠了」。
内部开源(Inner Source)
我找了一些资料列下来。这也许就是他们忽悠老板的理由吧,可是仔细一看这些都站不住脚啊。
内部开源(Inner Source)简称内源,指把开发开源软件中学到的经验教训应用到公司或组织内部开发软件的实践。公司和组织可以在内部开源的同时开发专有软件。
荒唐做法理由之「开放式协作」
- 在推行内源的公司,所有员工都必须可以访问所有需要的开发制品(例如,代码、文档、问题跟踪等)。基于开放式协作的原则(平等的、精英领导的、自组织的),通常欢迎愿意为内源项目提供帮助的所有贡献者。
- 公开讨论决策时,开放式沟通也实现了精英制度。尽管组织不一定要变成彻底的自组织来适应内源,但是内源允许个人,组织单元和项目团体具有更高程度的自组织。
企业内部代码库全部内部开源,期待有人关心,感兴趣,看了代码后能帮修复个bug添加个功能,和原有负责团队一起讨论、形成方案。真的会出现这种情况么?
企业内部每个工程都是分工明确,职责清晰的团队在维护。内部公开后,真的有其它团队去看、克隆下来学习学习、有空的时候帮修复个bug添加个功能?没事干闲得慌了么?如果真的有这样的情况且这样的情况很多,我觉得我们更应该反思为啥有这样的情况出现。为啥有这么多闲着的人,不忙自己的业务,去跟其它的团队一起讨论功能、修bug、添加功能、保证质量。
荒唐做法理由之「开放式沟通」
- 开放式的沟通可以让内源项目和软件中的所有成员能够公开参与所有的交流互动。开放式沟通是公开的(在公司内部)、书面的、有存档且完整的。目的是允许与内源项目有关或感兴趣的任何个人或团体参与沟通。开放式沟通是会被存档的,软件的详细文档会被收集起来,团队可以回顾当时的讨论和决策。
公司内部的公共组件可以把自己的文档、源码公开这倒是没问题。本来有一些帮助文档也是要公开的,以便大家阅读。其它的真有必要么?比如平台的需求、PRD、设计稿、测试用例、程序代码、编译脚本.....其它团队真的想去插一脚?除非两个团队负责的系统之间有依赖或者协同,否则实际很少出现这种情况。即便系统之间有接口调用,也都是在接口维护平台上查看参数和文档,而不是去扒拉对方的代码。我就用一个接口,你让我了解你的平台,这效率也忒低了。
荒唐做法理由之「通过分离角色保证产品质量」
- 专门的代码审查以及贡献者和提交者(拥有写入权限的集成者、开发者)分离,可以确保开源项目的质量,也可以保证内源项目的质量。
很难想象有人给其它团队PR。不要对团队外的其他人抱有能提升产品质量的想法,他们没义务,也没兴趣。
企业内源不靠谱、不适合国情
我觉得上面的做法非常不适合国情。企业内部开源和社区开源根本就不是一回事。开源社区真是靠兴趣、靠爱在发电,而国内的企业内部根本不存在这样的土壤。
- 国内工作节奏快,每个人都很忙。这种让人每天加班到深夜,还要用爱去给别人发电的做法非常不靠谱。
- 国内一个萝卜一个坑,自己的坑自己填。别人不给你挖坑就很好了,千万不要指望别人给你填坑。
- 另外这种目的不明确边界的介入,很容易让负责的团队认为是「抢活」
可能的「解」
最近我也写过一篇文章《研发效能之技术治理》,我觉得「技术治理架构师」这个岗位可以来承担、完成企业内部开源的工作,「也许是」最可能达到目的的人选。
技术治理的目的:
梳理公司技术现状、制定技术治理方向
协调制定技术选型、研发流程等技术类规范
解决公司业务发展过程中遇到的共性问题和技术挑战
为不同业务场景提供全面的技术解决方案
进行规章制度、规范、平台使用的宣传、培训、布道、配套工具推广等
文章总结
分工明确、职责清晰、各司其职、高效协同是最好的状态。 国内外情况不同,很多做法都需要仔细斟酌。这种不假思考直接生搬硬套的做法非常不合适,也不安全。说不定哪天代码就「意外」跑到 github 上去了,还很难查是哪里泄漏出去的,全公司的人都有权限啊。我觉得哪怕干过一天源码管理的人都整不出这事,各位看官还是招点靠谱的人吧。
另:特拉斯真要是找个靠谱的财政大臣,结局是否会不一样?
延展阅读
DevOps|从特拉斯辞职风波到研发效能中的不靠谱人干的荒唐事的更多相关文章
- Serverless 对研发效能的变革和创新
作者 | 杨皓然(不瞋) 对企业而言,Serverless 架构有着巨大的应用潜力.随着云产品的完善,产品的集成和被集成能力的加强,软件交付流程自动化能力的提高,我们相信在 Serverless 架构 ...
- 互联网公司员工职级、研发效能度量、OKR与绩效考核
今天要写这篇文章,来自最近有两个点触动了我.第一个触动点是奈飞(netflix)做出了一个巨大动作<"不搞职级.人人平等" 25 年后行不通了?Netflix 破天荒引入细分 ...
- 互联网研发效能之去哪儿网(Qunar)核心领域DevOps落地实践
本文从业务目标角度出发,确定了开源+自建模式搭建 Qunar 研发工具链整体生态:通过 APPCODE 打通工具链,流程规范化自动化:多种手段+发布门禁助力质量提升:建立应用画像确定运维最小单元,可发 ...
- 研发效能|Kubernetes核心技术剖析和DevOps落地经验
本文主要介绍Kubernetes 的核心组件.架构.服务编排,以及在集群规模.网络&隔离.SideCar.高可用上的一些使用建议,尤其是在CICD中落地,什么是 GitOps. 通过此文可彻底 ...
- 「产品运营」研发效能之DevOps平台如何运营?
有人常说「酒香不怕巷子深」.不是的,如果这个巷子是酒吧街,那最深的那家酒吧肯定是租金最便宜的.酒吧的地段好坏已经在租金价格上体现出来了.现在已经不是那个工具缺乏.有个工具就拍手称快.欣然去试用的时代了 ...
- DevOps | 如何快速提升团队软件开发成熟度,快速提升研发效能?
今天一个小伙伴问我,如何「快速提升」一个团队的软件开发成熟度?我犯难了.我个人理解一个团队的软件开发成熟度涉及的东西很多,但最简单最直接的方法就是发钱涨工资,可是估计很多公司不愿意,那就只有扣了. 快 ...
- 研发效能|DevOps 已死平台工程永存带来的焦虑
最近某位大神在推特上发了一个帖子,结果引来了国内众多卖课机构.培训机构的狂欢,开始贩卖焦虑,其实「平台工程」也不是什么特别高深莫测的东西.闲得无聊,把这位大神的几个帖子薅了下来,你看过之后就会觉得没啥 ...
- 研发效能生态完整图谱&DevOps工具选型必看
本文主要梳理了研发效能领域完整的方向图谱以及主流工具,其中对少部分工具也做了一些点评.看了之后,大家可以对研发效能这个领域有个整体认识,同时研发效能落地的时候也有对应的工具(黑话叫抓手)可以选择. 我 ...
- 研发效能之技术治理&技术治理架构师
最近很多公司专门设置了一个职位叫「技术治理架构师」,主要负责公司技术治理相关事宜.这是个非常有意思的职位.技术治理的活,之前我们也是做的,只是没有提的这么明确,一般都是研发效能团队.PMO.架构团队. ...
随机推荐
- 定制化JDK升级引发的离奇事件
1.背景 由于Oracle对外宣称Oracle JDK停止免费用于商用.公司法务部门评估之后担心后续会惹上光司,于是就开始了JDK升级-将所有服务Oracle修改为OpenJDK.上周开始微服务JDK ...
- 哔哩哔哩b站提取Cookie方法,bilibili获取Cookie教程
大家可能对Cookie很陌生,甚至不知道是干嘛用,没关系,今天小编详细给大家讲解! Cookie是保存在客户端的纯文本文件,比如txt文件,所谓的客户端就是我们自己的本地电脑,当我们使用自己的电脑通过 ...
- Apple Music 免费试用 2 个月
下载地址:https://redeem.apple.com/am-genshin-impact-2mo-zh-cn?origin=&locale=zh-CN 使用指南 打开链接,点击" ...
- 「学习笔记」斜率优化dp
目录 算法 例题 任务安排 题意 思路 代码 [SDOI2012]任务安排 题意 思路 代码 任务安排 再改 题意 思路 练习题 [HNOI2008]玩具装箱 思路 代码 [APIO2010]特别行动 ...
- Spring 16: SM(Spring + MyBatis) 注解式事务 与 声明式事务
Spring事务处理方式 方式1:注解式事务 使用@Transactional注解完成事务控制,此注解可添加到类上,则对类中所有方法执行事务的设定,注解添加到方法上,则对该方法执行事务处理 @Tran ...
- dotnet 设计规范 · 数组定义
✓ 建议在公开的 API 使用集合而不是数组.集合可以提供更多的信息. X 不建议设置数组类型的字段为只读.虽然用户不能修改字段,但是可以修改字段里面的元素.如果需要一个只读的集合,建议定义为只读集合 ...
- Tomcat入门学习笔记
Tomcat服务器 Tomcat使用 Tomcat下载 官网地址:Apache Tomcat - Apache Tomcat 8 Software Downloads 下载Windows 64位版To ...
- 离线方式安装高可用RKE2 (版本: v1.22.13+rke2r1)记录
说明: 想要了解RKE2可以到官网(https://docs.rke2.io 或 https://docs.rancher.cn/docs/rke2/_index/)看最新资料 用官网给出的离线安装( ...
- C#,使用FindWindow和FindWindowEx查找窗体和控件
函数: // Find Window // 查找窗体 // @para1: 窗体的类名 例如对话框类是"#32770" // @para2: 窗体的标题 例如打开记事本 标题是&q ...
- haodoop数据压缩
压缩概述 压缩技术能够有效减少底层存储系统(HDFS)读写字节数.压缩提高了网络宽带和磁盘空间的效率.在运行MR程序时,I/O操作,网络数据传输,Shuffle和Merge要花大量的时间,尤其是数据规 ...