双周报vol.11 | GitHub 发布 2021 年度报告,软件开发实践带来了哪些影响?

思码逸研发效能 思码逸研发效能 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

https://octoverse.github.com/

GitHub 近日发表 Octoverse 2021 年度报告。除了开发语言排行、开发者数量趋势等常规数据外,今年的报告还包括对三项软件开发实践的深入调研,并基于调查输出了研发实践的影响模型,以及相关建议。

本文仅摘录企业场景下的模型,开源社区场景下的模型可能有所不同。

快速编写/交付代码

  • 自动化工具

根据统计,使用了自动 CI/CD 工具 GitHub Actions 的项目,每日合并 PR 数平均提高 36%,合并用时缩短 33%;对于协作复杂度更高,开发者大于 1000 人的大型项目,提效则更加明显,PR 数平均提高 61%,合并用时缩短 31%。这也解释了大型项目采用自动化工具比例显著高于中小型项目的原因。

  • 无障碍的代码复用

根据统计,工作和开源场景下,外部代码复用都带来近一倍的效率提升。但漫长且复杂的授权、糟糕的依赖管理常常成为开发者复用外部代码的阻碍。研发团队可以通过梳理制度与流程,排除代码复用中的摩擦点,在保障安全与可维护的前提下,方便开发者基于已有的轮子快速创造。

  • 在分工与协调中寻找平衡

参与PR合并审核的团队成员数量增加,效率会提高吗?答案是不确定的。更多成员意味着更多人手分担工作、更好的质量保障,但可能也意味着更高的拉齐信息、达成一致意见的成本——根据统计,每新增一位代码评审这,PR一天内合并的概率降低17%。

随着团队规模增长,研发团队需要思考团队成员分配评审任务的模式、新成员的快速上手路径,避免效率与团队文化受到冲击。

  • 容易检索的信息

一致的代码规范/命名规范、恰当的索引设计与交叉引用——这些基本实践规范的提效作用常被低估。当信息容易被检索时,开发者认为自己能够胜任工作的概率提升 60%;除了主观上提振信心,规范的实践也确实提高了 11% 开发者生产力。

  • 适配新办公模式的协作工具

疫情显著影响了研发团队的办公模式——调查显示,疫情前全员面对面办公的比例为 41%,但计划回归办公室的只有 11%。在新常态下,企业研发团队可以借鉴开源社区的协作模式,保持研发工作的高效。

知识分享/文档维护

文档包括但不限于快速入门、技术教程、贡献指引、治理模式、项目架构与依赖、行为准则、代码规范等。在企业与开源社区场景下,及时更新、细节充分、可靠、形式丰富(文章、视频、论坛问答)的文档不仅使开发者体验更佳,还带来50%+生产力提升。

  • 贡献指引

企业场景下的开源项目包含贡献指引的比例达24.24%,是其他开源项目和企业闭源项目的4.3倍。贡献指引能够帮助用户快速理解如何参与开发陌生项目,减少试错成本,带来17%生产力提升。

  • 及时更新Readme

在Readme的有效性方面,开源走在了企业前面——不论是企业或个人项目,开源项目的Readme比例都在85%以上,而企业闭源项目的Readme比例低于16%。

尽管这一差异部分源于企业研发团队使用其他内部文档、聊天工具或论坛等信息载体,或采用结对编程等方式交换知识。但需要注意的是,即使是闭源项目,信息与代码之间距离过远也会导致新成员难以上手,或使企业内部开源难以推行。

社区氛围建设

  • 导师制度

明确的导师制度、对新成员的及时友好响应,给企业带来16%生产力提升和近两倍的团队文化健康度提升(包括开发者归属感与认同感);在开源社区中,这两个数字分别是46%和近三倍。

  • 团队信任

研发团队成员之间的充分信任会带来更健康的协作模式——在企业和开源社区中都是如此。高度信任且注重信息交流的组织文化(例如Westrum组织文化),能够发挥与导师制度类似的作用。

  • 安全感

在开源社区,行为准则、参与贡献指引、Good First Issues等实践能使开发者感到安全。这不仅吸引更多开发者加入、还能促使开发者取得更好进展、留存更长时间。企业中的实践未必与开源社区完全一致,但研发团队同样需要思考如何展现出开放欢迎的姿态。

拓展阅读:Westrum 组织文化

https://cloud.google.com/architecture/devops/devops-culture-westrum-organizational-culture

Westrum 组织文化是推动实现更出色的软件交付表现和组织效能的能力之一。社会学家 Ron Westrum 博士在 2004 年的研究《组织类型学模型》中指出,组织文化会影响信息在组织内部的传播方式,并与优秀的产出结果相关联。他将好的信息传播定义为:

  • 能够回答收到信息的人需要回答的问题

  • 很及时

  • 以收到信息的人能有效使用的方式展示

而相对应的生机型组织文化的行为包括:

  • 高度合作

  • 训练信使
  • 共担责任
  • 鼓励交流
  • 失败时追根溯源
  • 接纳新想法
...全文

相关推荐

高校技术转移办公室如何实现科技成果的动态管理与多维分析?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

自动化生产线控制与维护(基于数字孪生)课件+联调总图+MCD和程序

自动化生产线控制与维护(基于数字孪生)课件+联调总图+MCD和程序

Bryan Ding

SiLan-EAP-AOI-Test-Case.xlsx222

SiLan-EAP-AOI-Test-Case.xlsx222

2601_97229213

电子线路设计与PCB制作 教学课件+教学设计+课后习题

电子线路设计与PCB制作 教学课件+教学设计+课后习题

Bryan Ding

JavaSwing学生成绩管理系统源码

这是一份基于 Java Swing + JDBC + MySQL 的学生成绩管理系统课程设计完整资料,包含实验报告(Markdown、HTML、PDF 三种格式)、全部 Java 源码、4 张运行截图、答辩 PPT,以及建库脚本 schema.sql 和 MySQL JDBC 驱动 jar。源码按界面层、业务层、数据访问层三层划分,SQL 集中在一个类里,不依赖 Maven 或 Tomcat,IDEA 或命令行即可编译运行。 程序登录后进入主窗口,分管理员和教师两种角色,主要功能包括:学生信息增删改查(支持按学号或姓名模糊搜索,输一个"张"字就能筛出全部姓张的学生)、成绩录入与修改(同一学生同一门课重复录自动覆盖旧分)、按班级统计平均分与及格率、按课程统计平均分/最高最低分/及格率、按三门课总分排名、一键导出 Excel 可直接打开的 CSV。 几个值得参考的实现点:所有 SQL 集中在 ScoreService 一个类里,以后换数据库只改数据访问层,界面代码一行不动;连不上 MySQL 时弹中文提示让用户先启动服务,而不是甩一堆英文异常栈;分数限制在 0 到 100、空输入、字母输入都弹窗拦下;删学生时级联删成绩,不留孤儿数据;CSV 导出带 BOM,Excel 直接打开不乱码。 适合正在做 Java 程序设计、数据库原理课程设计的学生,以及想学习"Swing + JDBC + MySQL"桌面小项目完整分层写法的自学者。拿到手后先执行 schema.sql 建库并塞入测试数据,再改 config.properties 里的数据库账号密码,把 lib 下的驱动 jar Add as Library,运行 com.score.Main 即可。

小鹿( ﹡ˆoˆ﹡ )
评论 1
收藏 已收藏
分享
返回顶部