返回文章列表
CTO | 开发 | 运维 | 安全 | 项目管理 2023-04-17

三大招式,和祖传代码 Say Goodbye!

极狐GitLab
一体化安全 DevOps 平台

近日,GTLC 全球技术领导力峰会全球总站·北京站顺利召开。峰会汇聚 500 余位科技领导者, 16 位来自各领域的前沿观察者和亲历者,结合当前趋势带来精彩分享。

 

极狐(GitLab) 解决方案总监张扬作为主讲嘉宾之一,分享了《远离祖传代码——十数载开源项目经验谈》

 

如何远离?有何经验?

这就展开讲讲,Here we go!

 

 

祖传代码( Legacy Code )即代代相传的代码,在软件功能快速迭代演进的过程中,由于业务功能工期交付紧、缺少有效的技术治理策略、人员素质参差不齐等多重因素下,这些代码变成了逻辑混乱、可读性差、难以维护的“烫手山芋”——跑得动,看不懂,改不得。

 

“你敢改,它就敢挂!”

 

图片来源:动漫《我的邻居全是猫》

 

这样的“烫手山芋”既制约组织发展,又影响员工体验,如何规避它?

 

第一式——通过远程办公广纳人才

 

对于现代化软件的研发,“Shift-Left” 实践相信大家并不陌生,那么 “左移” 的尽头到底在哪里?是开发工程师还是产品经理?我们有时候会开玩笑说——是 HR!

 

人才是软件企业的核心资产,如果能够占领人才的高地,企业的竞争力将更加强劲。对于软件公司而言,优秀的人才造就优秀的产品,进一步透视产品——优秀的人才也将“码”出更高的代码质量。但站在象牙塔顶端的人毕竟是少数,我们该如何吸引这些优秀的人?远程办公可能是解法之一。

 

任何宣言都是一种价值观的主张,远程办公宣言也不例外。极狐(GitLab) 自成立伊始,就采用全员远程办公(All Remote)的模式,如今已有 150 多名员工遍布全国 21 个城市,从公司文化建设,到远程办公的协作流程、实践经验和工具运用等都由全国各地的员工远程协作完成,并总结形成了一套完整的远程办公体系。

 

 

在远程办公的文化和价值主张下,极狐(GitLab) 吸引到了这样一群志同道合的人:他们既是布道师、推动者,也是主事人和超越者。通过这 4 个关键词,我们找到的是一个高度自驱的人。拥有自驱力的人充满自信、有着使命担当和卓越追求,没有什么困难是不能克服的。高度自驱的成员之间的协同和互动构建起企业的生机型文化,促进每个团队和个人充分发挥自主战斗力,从而加快整个组织的响应能力,进而获得市场竞争力。

 

 

第二式——通过开源建立研发模式

 

开源模式和祖传代码有什么关系呢?

 

或者换一个思考方向:为什么在开源世界里,许多历经多年的开源项目,不但没有受到祖传代码的制约,反倒一直保持着强劲的演进能力,最终成就为享誉全球的顶级项目?这里面一定有值得探讨的地方。

 

极狐(GitLab) 对于开源的认知是 “开放”和“贡献”,是接纳、包容和发展,求同存异,互利共赢。因此在整个极狐GitLab 产品的开源模式上,我们选择了开源世界中经典和主流的 “开放核心” 的商业模式 “上游优先” 的跟随策略

 

在开源世界中,开放核心(Open Core)模式是当前成功的商业开源软件公司使用的主要商业模式。这和极狐(GitLab) 所秉承的开源开放、人人贡献理念不谋而合——通过对核心代码的开源,使得每一个企业、团队或个人都参与到开源社区中来,助力高品质开源项目的迭代版本、功能升级和持续演进,同时与开源社区一道成长、发展和壮大。

 

 

不同的开源跟随策略也会带来不同的商业产品演进方式和形态。主流的开源软件跟随策略一般分为两种,一种是 “私有分支” 策略,一种是 “上游优先” 策略(Upstream First)。

 

私有分支策略即在公司内建立基于开源社区某个版本的私有的产品版本分支。它的优势在于完全自定义,可以在开源版本上增加定制功能,相对迅速地响应用户需求;同时作为差异化功能,增强产品竞争力。

 

但当社区更新了功能,私有分支的版本需要与社区版本进行合并时,将会产生巨大的工作量,并且可能出现版本功能不兼容的风险。这也是私有分支跟随策略的劣势。

 

上游优先策略又叫社区先行策略,指商用产品中所需的所有功能均首先在开源社区中进行开发,并贡献到开源项目。商用版本直接继承开源社区版本的功能,并根据产品需要进行模块和功能的裁剪。

 

上游优先有助于增进上下游之间的兼容性,避免版本跟随合并时消耗大量工作量,也保证了企业用户可以使用到更成熟稳定的开源技术产品。

 

劣势是依赖开源社区对相应功能需求的优先级决策和开发,从而导致商用版本在响应用户需求方面有时会滞后。

 

极狐GitLab 的选择是——上游优先。凭借与 GitLab 社区密切合作为基础,加以对开源项目的持续贡献获得的话语权,极狐(GitLab) 的产品和研发团队得以参与到功能优先级的决策和研发,从而规避掉上游优先策略带来的劣势。相当于既拥有了快速响应用户需求的能力,又降低了版本兼容所带来的成本。

 

 

在极狐GitLab 选定的开源模式下,对于每个开发者而言,开源软件带给我们 “被看见的力量”。作为开源的贡献者,参与到开源软件项目中,自己的贡献能够被全世界看到,这是让人振奋的事情。同时,开发者会遵循开源软件开发中持续集成、测试左移、代码评审等工程实践,自发地写出高质量的代码,打造优质的个人品牌和行业影响力。

 

 

极狐(GitLab) 通过践行开源软件研发的最佳工程实践,汇聚一群秉持开放理念的人共同构建开源社区。大家因为分享而相聚,为共同的目标去贡献、共同进步。众多维护者如同工匠一般,专注于精简代码、减少错误或其他维护工作,这些工作有效提升了代码质量。

 

基于对开源的实践,极狐(GitLab) 成立 17 个月以来,收获颇丰:

 

  • 极狐GitLab 已经发行了17个版本;
  • 极狐(GitLab) 也成为了 GitLab 全球排名第二的贡献者;
  • 极狐(GitLab) 工程师入选 GitLab 月度发版 MVP。

 

 

第三式——通过 DogFooding 打磨产品

 

如何避免祖传代码,打磨出高品质的产品?—— 吃自己的狗粮。

 

Eating your own dog food,略称为 DogFooding,这是一句英语俚语,常用于描述公司,尤其是软件公司使用自己生产的产品这一情况。

 

 

在 DogFooding 实践方面,极狐(GitLab) 使用极狐GitLab 研发极狐GitLab。

 

听起来很拗口,换句话说,极狐(GitLab) 作为软件公司,产品给用户使用之前,我们自己要首先使用。极狐团队是极狐GitLab 的第一批用户。

 

极狐GitLab 的产研团队使用极狐GitLab 来管理极狐GitLab 自身的 DevOps 生命周期,活动覆盖极狐GitLab 126 个功能,基本上主要的核心功能都在使用。

 

 

DevOps 体系中有众多优秀的实践,而 Code Review 则是最推荐的实践之一。因为 Code Review 不但是规避祖传代码的最佳方式,也是构建起团队的工程师文化的有效手段。

 

 

在极狐GitLab 开发的过程中,当代码要合并到某一个对象分支时,我们会给予合并请求构建起一个线上的代码评审过程,这样能够非常有效地帮助我们规避一些祖传代码,因为有 “坏味道” 的代码无法合入;通过持续集成等实践,在一定程度上识别出一些软件的缺陷,消除潜在技术债务;最有价值的还是代码评审中的沟通和交流,促使在团队内部对高质量的代码达成一致的认知,通过知识和经验传递,打造一支高水准的研发团队。

 

 

在极狐(GitLab) ,我们不仅仅只在软件研发场景下使用极狐GitLab。在企业智库管理、市场活动计划、人员能力培养、售后技术支持、OKR管理等诸多场景均探索出相匹配的最佳实践。只有在这样的深入使用下,当软件某些功能异常或者需要改进时,我们内部更有可能第一时间注意到,并在影响用户之前就解决它,有助于主动进行产品创新。

 

 

极狐(GitLab) 基于 Handbook(最佳实践指南) 协作,使用了GitLab Issue 和 Repo 管理内容、流程、知识和经验。通过 “但凡有事提 Issue,人人都会 Markdown ”的原则和实践,构建起起企业知识库,将企业发展过程中所有的宝贵经验沉淀下来,构建起全员远程办公的重要基石。

 

“祖传代码” 象征着任何制约组织发展和影响员工体验的复杂事物。人才、模式和实践作为极狐(GitLab) 的三大支柱,使得极狐(GitLab) 打造出极狐GitLab 这一款兼具成熟度和领先性的软件产品,同时成为了一家肩负着开源使命、持续保持着市场竞争力的软件公司。

 

总结而言,远程办公是吸引人才的有效方式,开源是商业软件公司的护城河,DogFooding 是保持产品持续领先的最佳实践。

极狐GitLab 一体化DevOps平台 专为中国用户研发,免费试用60天专业版高级功能

资讯中心为极狐(GitLab) 旗下专业的软件研发技能学习中心,为研发、安全、运维等全软件研发生命周期的从业者提供从内容到实操的专业知识。

极狐GitLab 公众号

Copyright © 2024 极狐信息技术(湖北)有限公司 鄂ICP备2021008419号-1 鄂公网安备42018502006137号
售前咨询
联系电话
在线支持
预约演示