为了让开发人员开开心心、多写代码,LinkedIn 开发了一个产品,现在开源了

为了让开发人员开开心心、多写代码,LinkedIn 开发了一个产品,现在开源了
新闻资讯 LinkedIn 开源
2023-12-29 16:00:35  |   作者:开源爱好者  |   来源:

为了让开发人员开开心心、多写代码,LinkedIn 开发了一个产品,现在开源了

为了让开发人员开开心心、多写代码,LinkedIn 开发了一个产品,现在开源了
新闻资讯 LinkedIn 开源
2023-12-29 16:00:35
作者:开源爱好者
来源:

我们如何衡量开发人员的生产力,以及如何利用它来改进产品和工作环境?

图片11.jpg

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

后一个也许是最难量化和描述的。首先,开发人员的生产力有多种形式,从简化云原生和移动端开发的新设计模式和实践,到凝聚多年经验的工具,为不同工程学科提供了协作和交付一致结果的途径。

提高生产力的部分原因可能是经济不景气,促使工程团队追求以更少的投入交付更多的成果。其他原因还包括持续存在的“应用差距”以及对跨平台解决方案日益增长的需求。其结果是工程方法更加成熟,更多地将其视为一门科学,而不是一门艺术。

衡量生产率

关注生产率要求我们回答一些关键问题:什么是生产率?如何衡量?我们都知道一些公司用编写的代码行数或修复的错误数来衡量开发人员的生产率,而这些指标却通常无法达到预期的效果。

首先,开发人员的工作效率包含了有形和无形的条件。我们怎么知道项目的定义是否合理,或者团队内部是否存在个人冲突?也许更重要的是,这些开发人员是否真的在愉快的进行开发工作?

所有这些都是一个大问题。我们如何才能跟踪开发人员的工作效率,又能否在不为开发人员增加更多压力的情况下跟踪其工作效率?

将开发人员的生产力和幸福感联系起来

微软子公司 LinkedIn 一直在思考这些问题。LinkedIn 提供庞大而复杂的在线服务,在其网络应用程序的外表下包含着一大堆功能。这些功能包括为 LinkedIn 带来用户的社区,以及盈利的培训和招聘产品。

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

LinkedIn 是开发人员开发出来的,公司需要让他们保持高效和愉快。因此,它需要了解这两项关键要求对公司的意义。根据自身的经验以及包括 Mozilla 在内的其他组织的经验,LinkedIn 一直在整理并开发出了一个开发人员生产力与幸福感(DPH)框架,该框架为衡量自身的开发流程提供了指导原则。

事实证明,这些指导原则非常有用,而且最近已经开源,这样其他企业也可以从中吸取经验教训,改进自己的开发流程,了解是什么让这些流程行之有效,瓶颈和阻碍可能在哪里。

改变开发方法需要改变管理

LinkedIn DPH 框架的一个重要部分是了解软件开发的演变方式。我们一直都知道,任何生产率指标都需要考虑构建时间,但从瀑布式开发到敏捷开发以及 CI/CD(持续集成和持续交付)的转变已经改变了这一点。现在,每一次代码推送都会导致一次构建,自动测试也是这一过程的一部分。我们还需要考虑代码审查、测试所花费的时间以及在接受变更之前处理拉取请求所花费的时间。

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

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

这样做的好处显而易见:无论是初级开发人员还是高级开发人员,都能专注于自己的代码,避免分心,要知道分心是需要时间来克服的。

从数字到结果

有一个框架来确定开发人员的工作效率并定义所使用的指标,这非常不错,但我们如何才能将这些数据转化为执行力呢?其中一个关键因素就是要有某种形式的仪表盘或门户网站来显示数据并实现统计。LinkedIn 围绕 DPH 建立了所谓的“开发人员洞察中心”(Developer Insights Hub),可以轻松查看关键数据,如完成构建所需的中位等待时间,以及任何异常值。

有了这些信息,就可以鼓励进行更改。如果构建时间的中位数过高,内部开发工具团队能否改进编译器和链接器的性能?如果批准拉取请求的时间过长,开发人员能否改变他们构建和提交方式?这涉及很多可能性,因为通过测量不仅可以了解现在发生了什么,还可以了解与过去相比发生了什么。

这样我们就能了解类似复杂度的项目是如何运行的,从而为开发生命周期的其他部分提供更多信息。掌握了开发人员生产力趋势的知识,开发人员领导、项目经理和项目规划人员就能围绕资源配置和项目时间表做出更准确的决策,确保管理层更了解情况。有了不受制于不必要的雄心勃勃的时间表的项目,开发人员就能更有效地平衡工作和生活,在提供高质量代码的同时,提高他们的幸福感和工作效率。

下一步:向其他组织推广

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

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