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

相关文章

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

无需邀请码!Manus复刻开源版OpenManus下载安装与体验

《无需邀请码!Manus复刻开源版OpenManus下载安装与体验》Manus的完美复刻开源版OpenManus安装与体验,无需邀请码,手把手教你如何在本地安装与配置Manus的开源版OpenManu... Manus是什么?Manus 是 Monica 团队推出的全球首款通用型 AI Agent。Man

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

Gin框架中的GET和POST表单处理的实现

《Gin框架中的GET和POST表单处理的实现》Gin框架提供了简单而强大的机制来处理GET和POST表单提交的数据,通过c.Query、c.PostForm、c.Bind和c.Request.For... 目录一、GET表单处理二、POST表单处理1. 使用c.PostForm获取表单字段:2. 绑定到结

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核