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.架构团队. ...
随机推荐
- 万答#3,MGR最佳配置参考,PFS里的监测指标要全开吗,mysqld进程占用内存过高怎么排查
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 问题1,有推荐的MGR运行最佳配置参考吗 在「3306π」社区广州站5月22日的分享会上,万里数据库CTO娄帅给出了他建议 ...
- PerfView专题 (第二篇):如何寻找 C# 中的 Heap堆内存泄漏
一:背景 上一篇我们聊到了如何去找 热点函数,这一篇我们来看下当你的程序出现了 非托管内存泄漏 时如何去寻找可疑的代码源头,其实思路很简单,就是在 HeapAlloc 或者 VirtualAlloc ...
- HC32L110 系列 M0 MCU 的介绍和Win10下DAP-Link, ST-Link, J-Link的烧录
HC32L110 系列 Cortex M0 MCU Hackaday 在三月份的时候介绍了一款最小的MCU NEW PART DAY: SMALLEST ARM MCU UPROOTS COMPETI ...
- HTML <option> 标签的属性:selected ; disabled ; label ; value;
HTML <option> 标签的属性:selected ; disabled ; label ; value; 1. selected="selected" sel ...
- 如何在Apple Silicon Mac上主动安装Rosetta2
前提是您的电脑搭载了Apple Silicon处理器 command + space(空格),输入"终端",打开. 输入 : softwareupdate --install-ro ...
- DataGridVIew控件绑定数据之后的,增、插、删操作
最开始没有绑定数据,很快就实现了增.插.删操作,可是绑定数据之后,进行这些操作就会报错. 网上对这方面的资料比较少,自己摸索着找到了解决方法,也就是直接对绑定的数据进行操作,这里以DataTable为 ...
- SETTLE约束算法中的坐标变换问题
技术背景 在之前的两篇文章中,我们分别讲解了SETTLE算法的原理和基本实现和SETTLE约束算法的批量化处理.SETTLE约束算法在水分子体系中经常被用到,该约束算法具有速度快.可并行.精度高的优点 ...
- JavaScript 设计模式及代码实现——代理模式
代理模式 1 定义 为其他对象提供一种代理以控制对这个对象的访问 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 2 应用举例 2.1 缓 ...
- HDFS 伪分布式环境搭建
HDFS 伪分布式环境搭建 作者:Grey 原文地址: 博客园:HDFS 伪分布式环境搭建 CSDN:HDFS 伪分布式环境搭建 相关软件版本 Hadoop 2.6.5 CentOS 7 Oracle ...
- 谣言检测——(GCAN)《GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Media》
论文信息 论文标题:GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Medi ...