今天发生了一件大事特拉斯辞任英国首相,我想借着这件事情说下我看到的一件研发效能的荒唐事,这其中的关联也许就是「都用了不靠谱的人」。

两件事情

今儿一早就听到,2022年10月20日英国第78任首相伊丽莎白·特拉斯宣布辞职。特拉斯上任后任命她的「密友克沃滕」出任财政部长推出「迷你预算」结果引来英国金融大震荡,英镑对美元汇率跌幅达3%,股市和英国国债均大幅下挫。最后架不住投资者、保守党和民意,辞去英国保守党党首职务,自动卸任英国首相职务,任职45天,也是英国历史上任期最短的首相。

迷你预算这事干的真不靠谱,一发出来股市、汇市、国债齐跌。具体原因大家可以自行搜索,总之这就是不靠谱的人不专业的人才能捅出来的大窟窿,但凡有点花生米也不至于如此。我做研发效能这么多年,也见过一件只有不靠谱的研发效能团队才能干出的事。

这件事就是把全公司「90%」的代码仓库设置成全 internal 。什么意思呢?只要你是 gitlab 的用户并且登录,那么公司除了少部分被设置成 private 的代码仓库,其它 90% 以上的仓库你都可读(可以克隆到本地)。当很多公司都在梳理仓库权限,建议把权限设置成 private 的时候,居然有人推动把公司的绝大部分仓库开放出去。我了解了一下,这样做的目的是项目公司内部开源。当时我内心的想法是「擦....老板又被不靠谱的人给忽悠了」。

内部开源(Inner Source)

我找了一些资料列下来。这也许就是他们忽悠老板的理由吧,可是仔细一看这些都站不住脚啊。

内部开源(Inner Source)简称内源,指把开发开源软件中学到的经验教训应用到公司或组织内部开发软件的实践。公司和组织可以在内部开源的同时开发专有软件。

荒唐做法理由之「开放式协作」

  • 在推行内源的公司,所有员工都必须可以访问所有需要的开发制品(例如,代码、文档、问题跟踪等)。基于开放式协作的原则(平等的、精英领导的、自组织的),通常欢迎愿意为内源项目提供帮助的所有贡献者。
  • 公开讨论决策时,开放式沟通也实现了精英制度。尽管组织不一定要变成彻底的自组织来适应内源,但是内源允许个人,组织单元和项目团体具有更高程度的自组织。

企业内部代码库全部内部开源,期待有人关心,感兴趣,看了代码后能帮修复个bug添加个功能,和原有负责团队一起讨论、形成方案。真的会出现这种情况么?

企业内部每个工程都是分工明确,职责清晰的团队在维护。内部公开后,真的有其它团队去看、克隆下来学习学习、有空的时候帮修复个bug添加个功能?没事干闲得慌了么?如果真的有这样的情况且这样的情况很多,我觉得我们更应该反思为啥有这样的情况出现。为啥有这么多闲着的人,不忙自己的业务,去跟其它的团队一起讨论功能、修bug、添加功能、保证质量。

荒唐做法理由之「开放式沟通」

  • 开放式的沟通可以让内源项目和软件中的所有成员能够公开参与所有的交流互动。开放式沟通是公开的(在公司内部)、书面的、有存档且完整的。目的是允许与内源项目有关或感兴趣的任何个人或团体参与沟通。开放式沟通是会被存档的,软件的详细文档会被收集起来,团队可以回顾当时的讨论和决策。

公司内部的公共组件可以把自己的文档、源码公开这倒是没问题。本来有一些帮助文档也是要公开的,以便大家阅读。其它的真有必要么?比如平台的需求、PRD、设计稿、测试用例、程序代码、编译脚本.....其它团队真的想去插一脚?除非两个团队负责的系统之间有依赖或者协同,否则实际很少出现这种情况。即便系统之间有接口调用,也都是在接口维护平台上查看参数和文档,而不是去扒拉对方的代码。我就用一个接口,你让我了解你的平台,这效率也忒低了。

荒唐做法理由之「通过分离角色保证产品质量」

  • 专门的代码审查以及贡献者和提交者(拥有写入权限的集成者、开发者)分离,可以确保开源项目的质量,也可以保证内源项目的质量。

很难想象有人给其它团队PR。不要对团队外的其他人抱有能提升产品质量的想法,他们没义务,也没兴趣。

企业内源不靠谱、不适合国情

我觉得上面的做法非常不适合国情。企业内部开源和社区开源根本就不是一回事。开源社区真是靠兴趣、靠爱在发电,而国内的企业内部根本不存在这样的土壤。

  • 国内工作节奏快,每个人都很忙。这种让人每天加班到深夜,还要用爱去给别人发电的做法非常不靠谱。
  • 国内一个萝卜一个坑,自己的坑自己填。别人不给你挖坑就很好了,千万不要指望别人给你填坑。
  • 另外这种目的不明确边界的介入,很容易让负责的团队认为是「抢活」

可能的「解」

最近我也写过一篇文章《研发效能之技术治理》,我觉得「技术治理架构师」这个岗位可以来承担、完成企业内部开源的工作,「也许是」最可能达到目的的人选。

技术治理的目的:

梳理公司技术现状、制定技术治理方向

协调制定技术选型、研发流程等技术类规范

解决公司业务发展过程中遇到的共性问题和技术挑战

为不同业务场景提供全面的技术解决方案

进行规章制度、规范、平台使用的宣传、培训、布道、配套工具推广等

文章总结

分工明确、职责清晰、各司其职、高效协同是最好的状态。 国内外情况不同,很多做法都需要仔细斟酌。这种不假思考直接生搬硬套的做法非常不合适,也不安全。说不定哪天代码就「意外」跑到 github 上去了,还很难查是哪里泄漏出去的,全公司的人都有权限啊。我觉得哪怕干过一天源码管理的人都整不出这事,各位看官还是招点靠谱的人吧。

另:特拉斯真要是找个靠谱的财政大臣,结局是否会不一样?

延展阅读

研发效能之技术治理

找到能做好研发效能的人

感谢点赞、转载
关注我,了解最新研发效能发展动向
欢迎进入「DevOps研发效能群」一起探讨
 

DevOps|从特拉斯辞职风波到研发效能中的不靠谱人干的荒唐事的更多相关文章

  1. Serverless 对研发效能的变革和创新

    作者 | 杨皓然(不瞋) 对企业而言,Serverless 架构有着巨大的应用潜力.随着云产品的完善,产品的集成和被集成能力的加强,软件交付流程自动化能力的提高,我们相信在 Serverless 架构 ...

  2. 互联网公司员工职级、研发效能度量、OKR与绩效考核

    今天要写这篇文章,来自最近有两个点触动了我.第一个触动点是奈飞(netflix)做出了一个巨大动作<"不搞职级.人人平等" 25 年后行不通了?Netflix 破天荒引入细分 ...

  3. 互联网研发效能之去哪儿网(Qunar)核心领域DevOps落地实践

    本文从业务目标角度出发,确定了开源+自建模式搭建 Qunar 研发工具链整体生态:通过 APPCODE 打通工具链,流程规范化自动化:多种手段+发布门禁助力质量提升:建立应用画像确定运维最小单元,可发 ...

  4. 研发效能|Kubernetes核心技术剖析和DevOps落地经验

    本文主要介绍Kubernetes 的核心组件.架构.服务编排,以及在集群规模.网络&隔离.SideCar.高可用上的一些使用建议,尤其是在CICD中落地,什么是 GitOps. 通过此文可彻底 ...

  5. 「产品运营」研发效能之DevOps平台如何运营?

    有人常说「酒香不怕巷子深」.不是的,如果这个巷子是酒吧街,那最深的那家酒吧肯定是租金最便宜的.酒吧的地段好坏已经在租金价格上体现出来了.现在已经不是那个工具缺乏.有个工具就拍手称快.欣然去试用的时代了 ...

  6. DevOps | 如何快速提升团队软件开发成熟度,快速提升研发效能?

    今天一个小伙伴问我,如何「快速提升」一个团队的软件开发成熟度?我犯难了.我个人理解一个团队的软件开发成熟度涉及的东西很多,但最简单最直接的方法就是发钱涨工资,可是估计很多公司不愿意,那就只有扣了. 快 ...

  7. 研发效能|DevOps 已死平台工程永存带来的焦虑

    最近某位大神在推特上发了一个帖子,结果引来了国内众多卖课机构.培训机构的狂欢,开始贩卖焦虑,其实「平台工程」也不是什么特别高深莫测的东西.闲得无聊,把这位大神的几个帖子薅了下来,你看过之后就会觉得没啥 ...

  8. 研发效能生态完整图谱&DevOps工具选型必看

    本文主要梳理了研发效能领域完整的方向图谱以及主流工具,其中对少部分工具也做了一些点评.看了之后,大家可以对研发效能这个领域有个整体认识,同时研发效能落地的时候也有对应的工具(黑话叫抓手)可以选择. 我 ...

  9. 研发效能之技术治理&技术治理架构师

    最近很多公司专门设置了一个职位叫「技术治理架构师」,主要负责公司技术治理相关事宜.这是个非常有意思的职位.技术治理的活,之前我们也是做的,只是没有提的这么明确,一般都是研发效能团队.PMO.架构团队. ...

随机推荐

  1. 万答#12,MGR整个集群挂掉后,如何才能自动选主,不用手动干预

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 本文转载自微信公众号"老叶茶馆" MGR整个集群挂掉后,如能 ...

  2. 论文解读(soft-mask GNN)《Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks》

    论文信息 论文标题:Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks论文作者:Mingqi Yang, Ya ...

  3. Vue+Koa+MongoDB从零打造一个任务管理系统

    大概是在18年的时候,当时还没有疫情.当时工作中同时负责多个项目,有 PC 端运营管理后台的,有移动端 M 站的,有微信小程序的,每天 git 分支切到头昏眼花,每个需求提测需要发送邮件,而且周五要写 ...

  4. Webstorm设置背景图为Windows桌面背景

    桌面背景图会缓存在这个目录中,文件名不确定在改变桌面背景后会不会变. C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Themes\CachedFiles ...

  5. docker存储管理及实例

    一.Docker存储概念 1.容器本地存储与Docke存储驱动 容器本地存储:每个容器都被自动分配了内部存储,即容器本地存储.采用的是联合文件系统.通过存储驱动进行管理. 存储驱动:控制镜像和容器在 ...

  6. Linux之搭建FTP服务

    引用:FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP是File Transfer Proto ...

  7. KingbaseES批量数据加载的实践技巧

    有时,KingbaseES数据库需要在单个或最少的步骤中导入大量数据,这通常称为批量数据导入.其中数据源通常是一个或多个大文件,这个过程有时可能非常慢. 造成性能不佳的原因有很多:索引.触发器.外键. ...

  8. 安装docker及使用docker安装其他软件(手动挂载数据卷)

    中秋明月,豪门有,贫家也有,极慰人心 Linux安装docker 可以参考官方的安装文档 centos安装docker: https://docs.docker.com/engine/install/ ...

  9. torch.sort 和 torch.argsort

    定义 torch.sort(input,dim,descending) torch.argsort(input,dim,descending) 用法 torch.sort:对输入数据排序,返回两个值, ...

  10. 使用J2EE 登录实例开发

    我们先了解下Servlet的生命周期 Servlet部署在容器里,其生命周期由容器管理. 概括为以下几个阶段: 1)容器加载Servlet类. 当第一次有Web客户请求Servlet服务或当Web服务 ...