天天新动态:Github调研:开发者对生产力、协作和AI编码工具的看法

2023-06-21 13:58:55 来源:程序员客栈

Datawhale干货 

翻译:段秋阳 Datawhale成员


(资料图片)

调研背景

GitHub首席产品官Inbal Shani如是说:

今天的开发人员所做的不仅仅是编写和发布代码,他们还需要熟练应用各种工具、环境和技术,包括生成人工智能编码工具这个新领域。但对开发人员来说最重要的不是故事点或部署速度。这是开发者体验(DevEx),它决定了开发人员如何有效和高产地超越标准、进入心流状态并产生影响。

我不仅是作为GitHub的首席产品官这么说的,还作为一个长期从事开发工作并在整个技术栈的各个部分都有过工作经验的开发人员。几十年前,当我获得机械工程硕士学位时,我成为第一批在实验室里应用人工智能的技术人员之一。那时,我们的模型需要五天时间来处理我们的大型数据集--考虑到今天的人工智能模型的速度,这一点令人震惊。我渴望拥有能提高效率并缩短生产时间的工具。这就是为什么我对开发者体验充满热情,并将其作为GitHub首席产品官的重点。

在生成式人工智能的快速发展中,我们希望从开发人员那里更好地了解新工具和当前的工作流程是如何影响整个开发人员体验的。作为一个起点,我们关注了开发者体验的一些最大的组成部分:开发者的生产力、团队协作、人工智能,以及开发者认为他们如何能够最好地推动企业环境中的影响。

为此,我们与 Wakefield Research 合作,对企业公司的 500 名在美国拥有1,000多名员工的公司的开发人员。

我们将展示组织如何消除障碍,帮助企业工程团队在这个新的软件开发时代推动创新和影响。归根结底,大规模创新的方法是通过提高开发人员的生产力、提高他们的满意度并使他们每天都能做到最好来赋予开发人员权力。毕竟,如果没有有权推动影响的开发人员,就不可能有进步。

调查的主要结论人工智能已经到来,而且正在大规模使用。92%的美国开发者已经在工作中和工作外使用人工智能编码工具。等待构建和测试仍然是一个问题。尽管整个行业都对 DevOps 进行了投资,但开发人员仍然表示,除了编写代码之外,他们在工作中做的最耗时的事情就是等待构建和测试。开发人员希望有更多的合作。企业环境中的开发人员平均与其他21名工程师一起工作,并希望协作成为绩效评估的首要指标。他们认为人工智能会有所帮助。超过五分之四的开发人员预计 AI 编码工具将使他们的团队更具协作性。开发人员还看到了 AI 的巨大好处。70% 的人表示,人工智能编码工具将为他们提供工作优势,并将更好的代码质量、完成时间和解决事件列为一些AI会带来的最重要的好处。

在 GitHub,我们意识到大多数开发人员的日常与“关于‘开发人员想要什么’的对话”之间往往存在巨大差距。

通过这项调查,我们希望更好地了解开发人员的典型体验,并确定公司可以为其开发人员提供支持并取得更大成功的关键方式。

C = 协作,整个开发人员体验的倍增器。

开发者体验(DevEx) 是一个考虑到以下因素的公式:

开发人员在代码上实施改变有多简单和快速--或者说有多高产。从创意到生产再到影响力有多顺畅。工作环境、工作流程和工具如何积极或消极地影响开发人员的满意度。

对于领导者来说,开发者体验就是要创造一个协作环境,让开发者能够在工作中最高产,最有影响力和最满意。对于开发者来说,合作是方程式中最重要的部分之一。

调研具体结果1.当前的考核指标未达到开发人员的预期在许多情况下,开发人员重视并希望做更多的事情,与他们的绩效衡量方式相冲突。学习新技能和设计新问题的解决方案对开发人员的工作日有最积极的影响,但他们的大部分时间是在等待代码审查、构建或测试。开发人员还认为,他们与他人合作的能力和他们的代码质量,而不是他们产出的数量和效率,应该是衡量他们的首要绩效指标。2.开发人员表示考核指标不符合预期

目前对开发者的评估方式与他们认为应该如何衡量他们的表现并不一致。

例如,我们调查的开发者说他们目前是以他们解决的事件的数量来衡量的。但开发人员认为,他们如何处理这些bug和问题是更为重要的绩效表现。这与代码质量高于代码数量的信念是一致的,即代码质量应该仍然是最重要的考核指标。开发人员还认为,在绩效指标方面,协作和沟通应该和代码质量一样重要。他们与他人协作和沟通的能力对他们的工作至关重要,但只有33%的开发者表示他们的公司将其作为绩效指标。

目前用于衡量绩效的指标,与开发者认为应该用于衡量其绩效的指标进行比较。

排名最高的回答,开发者们表示他们的团队在包括写代码和寻找、修复安全漏洞上花费的精力最多。

3.开发人员希望有更多机会提高技能并提高影响力

当开发人员被问及什么对他们的工作日产生积极影响时,呼声最高的是学习新技能 (43%)、从最终用户那里获得反馈 (39%) 和自动化测试 (38%) 以及设计新问题的解决方案 (36 %) 。

开发人员认为的对他们工作影响最大的任务

但开发人员表示,他们大部分时间都花在编写代码和测试上,然后等待代码被审查或构建和测试被执行。

在平常的一天,我们调查的企业开发人员报告说他们的团队忙于各种任务,包括编写代码、修复安全漏洞以及从最终用户那里获得反馈等。开发人员还说,他们在这些任务上花费的时间差不多,这表明他们一整天都很捉襟见肘。

开发人员指出的他们每天花费时间最多的任务

值得注意的是,开发人员表示,他们等待构建和测试的时间与编写新代码所花费的时间相同。

这表明尽管在过去十年中对 DevOps 工具进行了投资,但构建和测试的等待时间仍然是一个长期存在的问题。开发人员还继续面临障碍,如等待代码审查、构建和测试运行,这可能会阻碍他们学习新技能和设计新问题的解决方案的能力,我们的研究表明,这些因素会对他们的整体满意度产生最大影响。4.开发人员希望得到最终用户的反馈,但面临挑战

开发人员说,从终端用户那里获得反馈(39%)是对他们的工作日产生积极影响的第二重要的事情--但对于开发团队来说,直接获得这种反馈往往具有挑战性。

产品经理和营销团队经常充当中间人的角色,使得开发人员很难直接收到终端用户的反馈。理想情况下,开发人员会收到来自自动化和验证测试的反馈以改进他们的工作,但有时这些测试会先发送给其他团队,然后再移交给工程团队。

开发团队的排名最高前两项日常任务包括编写代码 (32%) 和查找并修复安全漏洞 (31%)。

这表明开发人员对安全性的重视程度越来越高,并强调了公司如何将安全性放在首位。这也证明了企业开发团队在满足安全方面的政策和董事会指令方面发挥的关键作用。5.开发人员在协作环境中茁壮成长

在我们对企业工程师的调查中,开发人员说他们在一个典型的项目中平均与其他21名开发人员合作,52%的人报告说每天或每周与其他团队合作。值得注意的是,他们将定期接触列为有效合作的最重要因素。

企业环境中的开发人员通常每天或每周平均与其他21名开发人员一起工作。

但是,开发人员对协作也有一个整体的看法--它不仅被定义为与他人交谈和会面,而且还被定义为不间断的工作时间、进入完全配置的开发人员环境以及正式的导师-学员关系:

没有团队沟通的时候给了开发人员时间和空间来编写代码,并为团队目标而努力。对完全配置的开发者环境的访问促进了整个开发过程的一致性。它还可以帮助开发人员更快地协作,避免听到臭名昭著的一句话:"但它在我的机器上能用"。导师制度可以帮助开发人员提高技能,建立人际关系技能,这在协作的工作环境中是必不可少的。

我们的调查表明,对有效合作最重要的因素是如此关键,以至于当它们没有有效地完成时,它们会对开发者的工作产生明显的负面影响。

开发人员表示最常对他们的工作日体验产生负面影响的任务。

无效的会议可能会分散开发人员的注意力,而不是帮助他们。

6.我们想更多地了解开发人员如何协作

因此,我们从 Twitter 上的关注者那里获得了一些答案。我们询问了开发人员他们有哪些有效协作的技巧。这是一位开发人员不得不说的话:

通过与同伴合作并融合他们的想法来展示协同行为。分享信息和资源以促进团队合作。定期安排会议进行头脑风暴,设定目标,并对角色进行对齐。使用协作聊天工具,如Slack或Teams,以保持开放的沟通。鼓励面对面或视频会议以便更清晰地沟通并避免误解。通过共享文档并实时合作来"并肩作战"。快速且专业地解决冲突以维持健康的团队环境。以身作则,邀请共同创作和开放沟通。鼓励团队成员在需要帮助或支持时寻求帮助。设定清晰,可衡量的目标以跟踪协作进度和改进。

我们还询问了是什么让会议富有成效且有价值:

如果可以异步解决,就不要开会。提前宣布会议议程。设置合理的时间框架。会后明确定义清晰的目标。由冲突驱动(我们在每个人都同意的主题上浪费了太多时间),我们应该专注于没有达成共识的事情。提前发送主题和阅读资料。记录/分享笔记。会议结束后明确的行动和其所有权7.有效协作提高代码质量

随着开发人员体验的不断定义,成功的开发人员协作也将如此。太多的艾特和消息会影响工作流,但仍然需要保持联系。

在我们的调查中,开发人员表示有效的协作可以提高测试覆盖率并更快、更清洁、更安全地编写代码——这对任何开发团队来说都是最佳实践。这表明,当开发人员与他人有效合作时,他们相信他们会构建出更好、更安全的软件。

开发人员普遍认为有效的协作有助于改进他们发布的内容以及发布的频率。

我们调查的开发者认为合作和沟通--连同代码质量应该是评估的首要任务。

从DevOps到敏捷方法论,开发者和更大的商业世界长期以来一直在谈论协作的重要性。但开发人员仍未在这一点上被衡量。

我们请开发人员分享他们对衡量他们的合作情况的想法。以下是一位开发者的看法:公司和工程经理应该鼓励定期的团队沟通,并设定时间来检查--特别是在远程环境中,但要尊重开发人员的工作需要和专注。

开发人员认为,与同事的有效和定期接触对有效的团队合作至关重要。

8.工程经理改善协作的 4 个技巧

在 GitHub,我们的研究人员、开发人员、产品团队和分析师致力于研究和提高开发人员的生产力和满意度。以下是他们给希望改善开发人员之间协作的工程领导者的建议:

在绩效目标中把合作作为一个目标。这就为人们建立了合作的空间和期望。这可以以午餐和学习、联合项目等形式进行。定义和界定您组织中的协作情况。让人们知道他们何时被告知某事与被咨询某事。概述角色和职责的矩阵有助于定义每个人的角色,这也是 GitHub 团队已经实现的。让开发人员有时间交谈并相互了解。特别是,远程或混合组织需要将开发人员的一部分时间和虚拟空间用于建立关系。确定主要和杰出的工程师。学术研究支持变革推动者在组织中的积极影响——以及他们应该如何成为特别擅长协作的人。这是识别您杰出的工程师并将他们提升到可以模拟所需行为的地方的问题。

9.开发人员已经在工作中使用 AI 编码工具

在美国大公司工作的开发人员中,有92%的人表示在工作或私人时间使用人工智能编码工具,70%的人说他们看到了使用这些工具的巨大好处。

人工智能将继续存在——它已经在改变开发人员处理日常工作的方式。这使得企业和工程领导者采用企业级 AI 工具以避免他们的开发人员使用未经批准的应用程序变得至关重要。公司还应该建立使用人工智能工具的治理标准,以确保它们的使用合乎道德和有效。

几乎所有的开发者都已经在工作中和工作之余使用人工智能编码工具。

10.开发人员相信 AI 编码工具将提高他们的表现

由于大多数开发人员都在工作场所尝试使用 AI 工具,我们的调查结果表明,导致开发人员使用 AI 的不仅仅是兴趣。相反,这是对人工智能编码工具将帮助他们达到性能标准的认可。

在我们的调查中,开发人员表示,人工智能编码工具可以帮助他们达到现有的性能标准,提高代码质量,加快输出速度,减少生产级事件。他们还认为,这些指标应该被用来衡量他们在代码数量之外的表现。
大约三分之一的开发人员报告说,他们的经理目前根据他们编写的代码量来评估他们的绩效——同样数量的开发人员预计,当他们开始使用基于 AI 的编码工具时,这种情况将持续存在。
值得注意的是,开发人员产生的代码数量不一定符合其商业价值。保持聪明。随着软件开发中越来越多地使用 AI 工具(这通常会增加代码量),工程领导者需要问,衡量代码量是否仍然是衡量生产力和产出的最佳方式。11.开发人员认为人工智能编码工具将带来更好的团队协作

除了提高个人绩效外,超过五分之四的受访开发人员 (81%) 表示 AI 编码工具将有助于加强其团队和组织内的协作。

事实上,安全审查、计划和结对编程是最重要的合作点,也是开发团队在人工智能编码工具的帮助下应该进行的任务。这也表明,随着开发人员在工作中增加对人工智能编码工具的使用,代码和安全审查仍将十分重要。

开发人员认为,随着他们开始使用人工智能编码工具,他们的团队将需要变得更加协作。

有时,开发人员可以用一行或多行代码来做同样的事情。尽管如此,在我们的调查中,仍有三分之一的开发人员表示,他们的经理根据他们编写的代码量来衡量他们的绩效。

值得注意的是,开发人员认为人工智能编码工具将使他们有更多的时间专注于方案设计。这有直接的组织效益,意味着开发者相信他们会花更多时间用人工智能设计新功能和产品,而不是编写模板代码。

开发人员已经在使用生成式 AI 编码工具来自动化部分工作流程,从而腾出时间用于更多协作项目,例如安全审查、规划和结对编程。12.开发人员认为人工智能可以提高生产力并防止倦怠

开发人员认为,AI编码工具将帮助他们专注于更有价值的问题解决。

根据我们的调查,AI 编码工具不仅可以帮助提高整体生产力,而且还可以提供技能提升机会,帮助打造更智能的员工队伍。

57% 的开发人员认为 AI 编码工具可以帮助他们提高编码语言技能——这是他们看到的最大好处。除了作为提高技能的辅助工具之外,开发人员还表示,AI 编码工具还可以帮助减少认知工作,而且由于心智能力和时间都是有限的资源,41% 的开发人员认为 AI 编码工具可以帮助防止倦怠。在我们之前进行的研究中,87% 的开发人员报告说,AI 编码工具 GitHub Copilot 帮助他们在完成更多重复性任务的同时保持脑力劳动。这表明 AI 编码工具允许开发人员保留认知努力,并专注于软件开发或研发中更具挑战性和创新性的方面。AI 编码工具可帮助开发人员在工作时提高技能。在我们的调查中,开发人员始终将学习新技能列为积极工作日的第一大贡献因素。但 30% 的人还表示,学习和发展会对他们的整体工作日产生负面影响,这表明一些开发人员认为学习和发展会增加他们工作日的工作量。值得注意的是,开发人员表示 AI 编码工具的最大好处是学习新技能——这些工具可以帮助开发人员在工作时学习,而不是让学习和开发成为一项额外的任务。

开发人员已经在使用生成式 AI 编码工具来自动化部分工作流程,从而腾出时间用于更多协作项目,例如安全审查、规划和结对编程。

展望

开发人员满意度、生产力和组织影响力都可以从 AI 编码工具中获得提升——这将对整体开发人员体验产生重大影响。

92% 的开发人员已经表示他们在工作和私人时间使用 AI 编码工具,这清楚地表明 AI 将继续存在。在我们调查的开发人员中,70% 表示他们已经看到使用 AI 编码工具带来的显著好处,在我们调查的开发人员中,81% 期望 AI 编码工具能够让他们的团队更加协作——这对于希望同时提高开发人员效率和开发人员体验的公司来说是一个净收益。

值得注意的是,57% 的开发人员认为 AI 可以帮助他们提高技能,并具有将学习和发展融入日常工作流程的潜力。考虑到所有这些,技术领导者应该开始探索人工智能作为提高满意度、生产力和整体开发人员体验的解决方案。

除了探索 AI 工具外,工程和业务领导者还应考虑以下三个要点,以改善开发人员体验:

使用工具、流程和实践帮助您的开发人员进入心流状态,从而帮助他们提高工作效率、推动影响并开展创造性和有意义的工作。通过打破组织孤岛并为开发人员提供有效沟通的机会来促进协作。通过对 AI 的关键投资为开发人员工作流程中的技能提升腾出空间,以帮助您的组织为未来进行实验和创新。

参考资料:

https://github.blog/2023-06-13-survey-reveals-ais-impact-on-the-developer-experience/

整理不易,点赞三连↓

标签:

最近更新