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,并对其指标的统计意义达成共识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/595850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏录屏软件哪个好用免费?我来告诉你!

在游戏玩家的世界里,录制并分享游戏精彩瞬间是一种常见的需求。选择一款好用且免费的游戏录屏软件对于实现这一目标至关重要。可是游戏录屏软件哪个好用免费呢?本文将介绍两款备受好评的免费游戏录屏软件。通过详细的步骤介绍,帮助你轻松记录…

深信服技术认证“SCCA-C”划重点:云计算关键技术

为帮助大家更加系统化地学习云计算知识,高效通过云计算工程师认证,深信服特推出“SCCA-C认证备考秘笈”,共十期内容。“考试重点”内容框架,帮助大家快速get重点知识。 划重点来啦 *点击图片放大展示 深信服云计算认证&#xff08…

springboot使用@ConfigurationProperties自动绑定配置参数属性

ConfigurationProperties使用 ConfigurationProperties是 springboot提供用于将配置文件中的属性值映射到 Java bean对象上。通过使用该注解,我们可以方便地将属性文件中的值绑定到一个实例化的类对象上,从而方便地在应用程序中使用这些属性。 Configu…

无缝衔接,完美对接:探索系统对接的最佳实践

目录 1、前言 2、系统对接概述 2.1 什么是系统对接 2.2 系统对接的重要性 3、系统对接注意事项 4、系统对接的最佳实践 5、系统对接的风险和解决方案 5.1 数据安全风险 5.2 兼容性风险 5.3 故障和错误处理 6、结语 1、前言 随着科技的不断进步和应用场景的不断拓展…

Python 自学(四) 之元组字典与集合

目录 1. 列表,元组,字典与集合的区别 2. 元组的创建和删除 tuple() del P101 3. 单个元素的元组 P102 4. 元组元素的修改 P106 5. 元组的使用场景 6. 字典的创建和删除 dict() zip() : del clear() P1…

使用setcap修改Linux程序CAP能力值

Linux是一种安全操作系统,它给普通用户尽可能低的权限,而把全部的系统权限赋予一个单一的帐户--root。root帐户用来管理系统、安装软件、管理帐户、运行某些服务、安装/卸载文件系统、管理用户、安装软件等。另外,普通用户的很多操作也需要ro…

Transformer 架构解释

一、说明 变形金刚是机器学习的一个新发展,最近引起了很大的轰动。他们非常善于跟踪上下文,这就是为什么他们写的文本有意义。在本章中,我们将介绍它们的体系结构以及它们的工作原理。 amanatulla1606 Transformer 模型是机器学习中最令人兴奋…

点击出现视频弹框

<VideoPlayer ref"video":size"{ width: 88%, height: 100% }" :videoSrc"currentVideo.url"></VideoPlayer>import VideoPlayer from /components/video-player.vue

Cad怎么绘制齿轮模型?

CAD怎么绘制齿轮模型&#xff1f;cad中想要绘制一个锯齿形状&#xff0c;该怎么绘制呢&#xff1f;学会cad怎么画齿轮是必不可少的&#xff0c;下面我们就来看看使用cad齿轮的画法。 1、cad齿轮画法很简单&#xff0c;首先打开cad正交模式&#xff0c;并打开cad的圆心捕捉、最…

java String输出GB2312编码格式到文件

import java.io.*;public class GB2312Output {public static void main(String[] args) {try {// 创建文件输出流FileOutputStream fos new FileOutputStream("output.txt");// 创建GB2312编码的输出流写入器OutputStreamWriter osw new OutputStreamWriter(fos, …

护眼台灯值得买吗?如何选购护眼台灯?2024年护眼台灯排行榜

作为在护眼行业摸爬滚打几年的好老司机&#xff0c;我对护眼台灯产品自然不陌生&#xff0c;护眼台灯也是很早之前就在使用&#xff0c;对于它的技术参数、原理、功能等可以说是非常熟悉。 现在护眼台灯普遍出现在孩子们的书桌上&#xff0c;在孩子深夜学习时&#xff0c;挑起…

打地鼠python程序设计说明,打地鼠游戏界面设计

这篇文章主要介绍了打地鼠python程序设计说明&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 Pygame库是专门为了帮助做出的游戏和其他多媒体应用Python编程语言的一个开放源代…

ORACLE Primavera Unifier v23.12 最新虚拟机(VM)分享下载

引言 根据上周的计划&#xff0c;我近日简单制作了一个基于ORACLE Primavera Unifier 最新版23.12的虚拟机演示环境&#xff0c;里面包括了unifier的全套系统服务 此虚拟系统环境仅用于演示、培训和测试目的。如要在生产环境中使用此虚拟机&#xff0c;请您与Oracle 销售代表联…

灵芝,到2025年有望达到9.2亿美元

灵芝是一种传统的药食两用菌&#xff0c;其具有丰富的营养成分和医疗价值&#xff0c;因此备受关注。全球市场分析 从全球市场来看&#xff0c;近年来灵芝的市场需求持续增长。据估计&#xff0c;2019年全球灵芝市场规模为4.1亿美元&#xff0c;到2025年有望达到9.2亿美元。市场…

Django定制模型管理器

objects是检索数据库中所有对象的每个模型的默认管理器。然而&#xff0c;也可以为我们的模型定义自定义管理器。 比如创建一个自定义管理器来检索具有发布状态的所有帖子。关于blog的模型&#xff0c;可以参考 Django数据模型代码片段-CSDN博客 &#x1f4cc;使用Post.publi…

Python中Selenium模块的使用详解

Selenium的介绍、配置和调用 Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持的浏览器包括IE&#xff08;7, 8, 9, 10, 11&#xff09;&#xff0c;Firefox&#xff0c;Safari&a…

【C语言】字符串 和 ctype.h 中的函数 练习

前面总结了有关字符串和ctype.h的文章&#xff0c;接下来就以几个例子来练习一下&#xff0c;以巩固之前的基础概念。注意&#xff1a;以下示例都有更简单更高效的解决方法&#xff0c;但本次仅以巩固基础为目的&#xff0c;所以方法可能稍作繁琐 Leetcode 344.反转字符串 编…

【第5期】前端Vue使用Proxy+Vuex(store、mutations、actions)跨域调通本地后端接口

本期简介 本期要点 本地开发前后端如何跨域调用全局请求、响应处理拦截器处理封装HTTP请求模块编写API请求映射到后端API数据的状态管理 一、 本地开发前后端如何跨域调用 众所周知&#xff0c;只要前端和后端的域名或端口不一样&#xff0c;就存在跨域访问&#xff0c;例如&…

数模学习day07-基于熵权法对Topsis模型的修正

初步理解 这里看看就好 熵权法是一种常用的多指标综合评价方法&#xff0c;通过计算指标的熵值来确定各指标的权重。而Topsis模型则是一种常用的多指标决策模型&#xff0c;用于评估不同方案的优劣。 在基于熵权法的Topsis模型中&#xff0c;可以对熵权法进行一些修正来提高模型…

在word文档中自制代码段样式

附&#xff1a; 在word中插入高亮代码的网站 HighlightCode&#xff1a;https://highlightcode.com/ CodeInWord&#xff1a;http://codeinword.com/ 一、新建代码段样式 点击下拉按钮&#xff0c;选择创建样式&#xff0c;命名为代码段&#xff0c;然后点击修改 点击格式&a…