LinkedIn 开源其开发人员工作效率与幸福感衡量框架

本文主要是介绍LinkedIn 开源其开发人员工作效率与幸福感衡量框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

回望2023年,在整个开发生态系统中,推动新工具和新技术发展的主要因素有两个:一个是人工智能,包括使用和构建人工智能,另一个是提高开发人员的工作效率

后者可能是最难量化和描述的。首先,开发人员的生产效率有多种形式,从简化云原生和移动开发的新模式和实践,到汇集多年经验的工具,为不同的工程学科提供协作和交付一致结果的方法。

工作效率之所以备受重视可能与当前经济形势的不确定性有关,在此背景下开发团队更倾向于以更少的投入来获得更丰富的产出。当然还有其他原因,比如一直以来难以解决的“app gap”,即在不同平台或设备上应用开发的投入产出比存在差距,以及对提供跨平台解决方案的需求不断增长。

01 如何衡量工作效率

在衡量工作效率之前,我们需要回答几个关键问题:什么是工作效率?如何衡量?我们都知道,有些公司以代码行数或修复 bug 的数量来衡量开发人员的工作效率,但这些指标无法达到预期效果(或者说工程师们完全可以利用这些指标来达到自己想要的效果)。

首先,开发人员的生产效率包含有形和无形的要素。我们怎么知道一个项目的定义是否合理,或者团队内部是否存在个人冲突?也许更重要的是,这些开发人员是否真的快感到幸福?

这一切都会带来一个大问题:我们如何才能持续了解开发人员的工作效率,又能否在不给开发人员增加更多压力而影响效率的情况下做到这一点?

02 将开发人员的工作效率和幸福感挂钩

LinkedIn 为全球用户提供一个庞大且复杂的在线服务,其应用程序包含诸多功能,如职场社区平台、培训和招聘产品等。

所有这些都很重要,并且都需要不同团队协同工作,以提供用户和客户所期望的服务。因此,这种交付需要开发人员完成大量的工作,从基础设施到无数的服务和微服务,它们共同组成了一个现代的社交网络。

LinkedIn 发展至今离不开开发人员的工作,因此公司需要他们保持高效和快乐。因此,作为一个组织,它需要了解这两个关键要求对它意味着什么。基于自身的经验和包括火狐在内的其他组织的经验,它一直在整理和实践开发人员生产力与幸福感(DPH)框架,为衡量自身的开发流程提供指导

复制链接至浏览器查看DPH框架:https://linkedin.github.io/dph-framework/

实践证明,这些指导原则十分有用,并且最近已将其开源,以便其他企业也能从中吸取经验教训,进而改进自己的开发流程,并充分了解是什么让流程行之有效以及其瓶颈和挑战可能在哪里。

03 改变开发方法需要改变工作方式

LinkedIn DPH 框架的其中一个重要部分是理解软件开发演进的方式。我们通常认为,任何工作效率指标都需要考虑构建时间,但从瀑布式向敏捷式、CI/CD的转变改变了这一点。现在,每一次代码推送都会导致一次构建,自动测试也是这一过程的一部分。我们还需要考虑代码审查、测试所花费的时间以及在接受变更之前处理拉取请求所花费的时间。

LinkedIn 使用的许多指标都来自于工具本身,无论是开发人员的本地工具链性能还是云上的CI/CD平台的性能。这样做的目的是找到阻碍代码交付的障碍点,以确保用户获得最佳体验。

这种新模式的确需要新的工作方式。开发人员不能再交付大量代码块,因为他们需要等待审核完成。而代码审查员不能让工作积压。使用 DPH 指标,我们可以找出让双方工作更易完成的方法。这可能会导致提交更频繁,但为了更快获得批准,提交的内容更少、更易于理解和测试,从而使代码更容易维护和理解。

最终的好处是显而易见的:无论是初级还是高级开发人员,都能专注于自己的代码,避免分心

04 从纸面数据到实际行动

可以用框架来定义所使用的指标进而衡量开发人员的工作效率,这固然很好,但我们如何才能将这些数据转化为行动呢?其中一个关键因素就是要有某种形式的 dashboard 或门户网站来显示数据并发挥其统计意义。LinkedIn 围绕 DPH 建立了“开发人员洞察中心(Developer Insights Hub)”,可以轻松查看关键数据,如完成构建所需的等待时间的中位数,以及其他异常值等。

有了这些信息则可以推动开发流程的优化。如果构建时间的中位数过高,内部开发工具团队能够改进编译器或连接器(linker)的性能?如果批准拉取请求时间过长,开发人员是否可以改变他们构建和提交的方式?这其中有很多值得分析之处,通过收集数据不仅可以了解现在发生了什么,还可以与过去的情况进行对比。

这可以让我们了解到几乎相同的复杂程度的项目是如何运行的,从而为我们提供更多信息,并将其反哺到开发生命周期的其他环节。掌握了开发人员的工作效率趋势,团队负责人、项目经理和相关规划人员就能围绕资源配置和项目时间表做出更准确的决策。有了合理的项目规划,开发人员就能更有效地平衡工作和生活,在交付高质量代码的同时,提高他们的幸福感和工作效率

05 未来展望:向其他组织拓展

开源这一框架是重要的一步。它允许企业/组织确定哪些信号和指标对其有效,并与更广泛的社区分享见解和经验。如果说LinkedIn 的开源发布中缺少了什么,那就是正式的 DPH 社区。

拥有一个致力于 DPH 指标的跨行业社区非常重要。它可以让企业制定基准指标,并提供一个开放的论坛来讨论开发人员的生产力和幸福感之间的关系。没有两个组织是相同的,衡量的方式和内容也各不相同。不过,它们可以使用类似的 dashboard,并对其指标的统计意义达成共识。

这篇关于LinkedIn 开源其开发人员工作效率与幸福感衡量框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/569492

相关文章

探索Elastic Search:强大的开源搜索引擎,详解及使用

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选,相信大家多多少少的都听说过它。它可以快速地储存、搜索和分析海量数据。就连维基百科、Stack Overflow、

[分布式网络通讯框架]----Zookeeper客户端基本操作----ls、get、create、set、delete

Zookeeper数据结构 zk客户端常用命令 进入客户端 在bin目录下输入./zkCli.sh 查看根目录下数据ls / 注意:要查看哪一个节点,必须把路径写全 查看节点数据信息 get /第一行代码数据,没有的话表示没有数据 创建节点create /sl 20 /sl为节点的路径,20为节点的数据 注意,不能跨越创建,也就是说,创建sl2的时候,必须确保sl

【服务器08】之【游戏框架】之【加载主角】

首先简单了解一下帧率 FixedUpdate( )   >   Update( )   >   LateUpdate( ) 首先FixedUpdate的设置值 默认一秒运行50次 虽然默认是0.02秒,但FiexedUpdate并不是真的0.02秒调用一次,因为在脚本的生命周期内,FixedUpdate有一个小循环,这个循环也是通过物理时间累计看是不是大于0.02了,然后调用一次。有

Java中的集合框架使用技巧

Java中的集合框架使用技巧 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Java中集合框架的使用技巧,这些技巧能够帮助我们更高效地处理数据和优化程序性能。 Java集合框架概述 Java集合框架提供了一组实现了各种集合接口的类和接口,用于存储和操作数据。它包括列表、集合、队列和映射等数据结构,能够满足不

[分布式网络通讯框架]----ZooKeeper下载以及Linux环境下安装与单机模式部署(附带每一步截图)

首先进入apache官网 点击中间的see all Projects->Project List菜单项进入页面 找到zookeeper,进入 在Zookeeper主页的顶部点击菜单Project->Releases,进入Zookeeper发布版本信息页面,如下图: 找到需要下载的版本 进行下载既可,这里我已经下载过3.4.10,所以以下使用3.4.10进行演示其他的步骤。

C# 日志框架Serilog使用

1、框架和说明        C#日志框架Serilog支持多种场景输出,简单验证了一下,比较方便        包的安装,推荐直接使用“推荐NuGet包管理器”安装Serilog.AspNetCore,常见的组件都已经集成在一个包中,使用比较方便 2、配置文件        Serilog可以由配置文件来定义行为,而且配置文件的修改即时生效。参考配置文件如下: {"Serilog":

示例:推荐一个基于第三方开源控件库DataGridFilter封装的FilterColumnDataGrid,可以像Excel拥有列头筛选器

一、目的:基于第三方开源控件库DataGridFilter封装的FilterColumnDataGrid,可以像Excel拥有列头筛选器,感兴趣的可以去下方链接地址查看开源控件库地址。本控件封装的目的在于将第三方库的皮肤和样式封装到皮肤库中可统一设置样式,同时生成nuget方便调用 二、效果如下 三、环境 VS2022 Net7 四、使用方式 1、安装nuget包:H.Con

Pytest和Unitest框架对比

在学到自动化的时候,很多同学都遇到了Pytest和Unitest框架,有的人是两个都学,但是学的不精只是知道分别怎么用.不了解两个区别是什么.有的是犹豫到底要学习那个框架.其实要做好自动化测试,是有必要了解不同框架之间的差异化的. Pytest 特点: Pytest采用了更简洁、更灵活的语法风格,使用“assert”语句来进行断言,Pytest可以自动发现并执行以“test_”开头的函数

mysql-mmm框架2

简介 MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程

MySQL-MMM框架

一、环境简述 1、工作逻辑图 2、MySQL-MMM优缺点 优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性。 缺点:Monitor节点是单点,可以结合Keepalived实现高可用。 3、MySQL-MMM工作原理 MMM(Master-Master replication managerfor Mys