导读
如何提高开发者的生产率是高科技行业一直以来关心的问题。DX 的联合创始人 Abi Noda,在《衡量开发人员的待办任务》一文中探讨了如何通过有效衡量开发人员的待办任务,显著提升开发人员的生产率,构建世界一流的工程/研发组织。
在当今快速变化的商业环境中,企业正面临着前所未有的挑战和机遇。全球性的竞争和环境的动态性要求企业采用创新的方法来推动业务发展、人员成长、组织学习和协调。
在最近发表的《衡量开发者目标》一文中(《面向人类的开发人员生产力》系列),Google解释了内部工具团队如何通过关注开发人员想要实现的目标,而不仅仅是衡量他们完成的任务,从而推动生产力的提升。
衡量方法的转变,使得Google的开发者工具团队能够更容易地理解他们可以产生的影响,并规划他们的路线图。
Google 曾通过评估开发工具在支持特定任务(如“调试”或“编写代码”)方面的表现来衡量工具的效果。然而,这种方法往往缺乏对工具团队有用的具体性。例如,“搜索文档”是一个常见的任务,但其背后的原因——是为了“探索技术解决方案”还是为了“理解上下文以完成工作项”——会显著影响开发者的体验以及工具在帮助他们实现目标方面的表现。
为了提供更好的洞察,Google 的研究人员识别出开发者在工作中试图实现的关键目标,并为每个目标制定了衡量标准。在本文中,他们解释了这一过程,并分享了这一新方法如何惠及他们团队的一个示例。
1. 识别开发人员的目标
研究人员的目标是编制一份简明扼要的待办任务(Jobs-To-Be-Done)清单,以便跟踪和衡量。他们确定了每个目标需要满足的几个标准:
- 每个目标需要具有持久性,意味着它在五年后应该和现在一样具有相关性。
- 每个目标需要对开发者有意义。他们知道这些目标将通过调查进行衡量,因此,目标必须是开发者能够理解并视为其工作流程一部分的。
- 每个目标需要与可观察的开发者行为相关联。研究人员还知道,他们将使用基于系统的指标来衡量这些目标,因此,目标需要能够与具体的开发者行为相对应,并且这些行为可以被跟踪。
- 总体而言,目标需要在高度或范围上一致。
- 目标还需要具有全面性。换句话说,它们应该覆盖整个软件开发生命周期。
考虑到这些标准,研究人员随后进行了一个广泛且迭代的过程,以识别开发者的关键目标:
- 他们召集了一小组主题专家,创建了一个涵盖所有软件开发阶段的初步目标清单,确保目标聚焦,并设定了30个目标的目标数量。
- 然后,他们将目标草单与季度工程满意度(EngSat)调查的历史数据进行了映射,确保涵盖所有开发任务。
- 他们进行了跨职能反馈和两轮用户研究。第一次是与六位Google开发人员进行的引导式卡片排序,评估目标的清晰度和组织结构,随后进行了一次更大规模的无引导卡片排序,参与者为40人,以进一步验证。
- 该过程以在EngSat发布期间进行的最终一轮跨职能反馈和认知用户测试为结束。
研究人员识别出了30个既全面又易于公司开发工具团队应用的开发者目标。
图1. 软件开发生命周期的各个阶段以及每个阶段的相关开发者目标
他们随后将每个目标映射到具体的团队,以帮助确保每个团队的工作与开发者的目标保持一致。
图2. 开发人员的上级目标(这里是与SDlC 的开发、测试和提交代码阶段相关的子集)如何与开发工具团队所阐述的低层开发工具目标相对应的示例(lDE:集成开发环境;SDLC:软件开发生命周期)
2.测量
Google 开发了一个衡量系统,通过分析开发者在使用不同工具时采取的行动来追踪他们的工作。这一系统帮助他们理解开发者为实现目标所经历的步骤,如设置服务器或调试代码。这个系统是多年来工作的成果,但仍然值得学习。
一个关键点是,这个系统需要非常精确地识别哪些行动标志着任务的开始、进展和完成。例如,开发者可能有一个目标,如“将服务器部署到生产环境”。最初,这个目标看起来很直接,但拆解后,实际上涉及多个具体步骤,如“确定所需的配置设置”。这个系统有助于明确这些步骤,并准确追踪它们。该系统还具有灵活性。开发者通常以不同的方式实现他们的目标,系统能够追踪这些不同的路径。例如,一些开发者可能遵循标准流程,而其他人则可能不是。系统不仅关注最有效的路径,还捕捉开发者选择其他方法的原因。这种灵活性还使得系统能够追踪开发者为修复失败的测试所做的尝试次数,而不仅仅是衡量第一次失败与最终成功之间的时间。这为开发者面临的挑战提供了更全面的视角。
3.将基于系统的数据与基于调查的数据相结合
为了深入理解,Google 将基于系统的数据与调查数据结合起来,后者捕捉了开发者在实现30个已识别目标中每个目标时感到支持的程度。这种结合填补了空白,并为 Google 提供了更全面的理解,帮助他们明确需要采取哪些行动来提高开发者的生产力。研究人员指出,将行为数据与调查反馈结合的真正价值在于,它提供了对开发者需求的更完整理解。这种方法不仅仅停留在衡量表面层次的指标,而是有助于发现更深层的洞察,进而指导产品开发、提升开发者满意度,并最终推动业务成功。
4.使用基于目标的衡量方法改进代码审查流程
作者分享了一个例子,说明从基于任务的衡量转为基于目标的衡量如何产生了积极影响。
以前,Google 的调查问题是:“您使用的工具在以下任务中对您的支持程度如何?”其中,“代码审查”是70个选项之一。然而,当他们将重点转向开发者目标时,他们将问题改得更具体:“您目前在 Google 使用的开发工具在以下开发活动中的支持程度如何?”选项文本改为之前确定的开发者目标之一。例如,一个选项是“确保他人(例如,团队成员、AI 等)贡献的代码具有高质量”,而不是之前单纯的“代码审查”。
这种措辞的改变让调查内容更聚焦于开发者的目标——确保提交的代码具有高质量,而不仅仅是完成代码审查这一任务。结果,调查得分略微下降,这促进了开发工具团队的思考,即如何确保内部工具能够更好地支持开发者编写和审查高质量代码。
此外,他们将这些调查洞察与从开发者在代码审查过程中使用的工具中提取的数据相结合。通过同时分析调查反馈和工具使用数据,他们发现代码审查频率较高(且完成时间较短)的开发者感觉支持程度低于审查频率较低的开发者。这些数据促使他们对这些感到支持不足的工程师的审查负担和实践进行新一轮研究,旨在提供新功能以更好地支持这些工程师。
图3. 图表显示了完成代码审查的行为测量结果(基于日志),以及对完成该目标所需支持的态度测量结果(基于调查数据)
写在最后
本文指出了与测量有关的一个重要挑战:开发人员体验调查往往会揭示开发人员面临的问题领域,但内部工具团队需要更具体的答案,以了解其工具产生的影响以及哪些方面可以改进。Google通过使调查问题更加具体地解决了这个问题。另一种方法是在定期 DevEx 调查的基础上使用即时调查。
如您需要获取SEEKWAVES的增长解决方案详情,可扫描下方二维码,与我们的增长顾问联系
相关文章