出色的开发人员体验与出色的成果相关。
传统上,改善开发人员体验(也称为 DevEx 或 DX)一直是一个增量项目,需要时间和创新。
好消息?人工智能预示着一些更快、更有影响力的方式来有意义地改进 DevEx。
在这篇文章中,我将讨论软件工程师生活中的四个部分,在 AI 的帮助下,这些部分已经成熟,可以重新焕发活力。我将介绍如何为软件开发人员使用 AI 改进 DX,以及这对像您这样的团队来说可能会如何。
1.代码交付
大多数软件公司的软件工程师每天都在编写代码。但是许多工程师经常不得不完成相对琐碎的任务,这使他们远离更有趣的问题。这通常不受欢迎——谁每天醒来都在编写测试套件?好吧——有些人喜欢它——但你明白我的意思了!
因此,这似乎是开始改善开发人员体验的合乎逻辑的地方。
幸运的是,我认为这也是 AI 创新者最关注的领域,其工具可用于从 VS Code 到 Jetbrains 的一系列代码编辑器,以及几乎所有编程语言,包括 JavaScript、Java、Python、C#、Golang, SQL 和许多其他的。
自动完成
让我们从已经成为软件工程主流的东西开始。
自动完成会按照锡罐上的说明进行操作。它的工作方式与在手机上的工作方式相同,但用于代码。工程师的自动完成通常是代码库感知的,因此它了解您当前的上下文和编码模式。
它通过使代码更容易和更快地编写来改进 DevEx。
工具:GitHub Copilot是一个成熟的工具,具有自动完成功能。如果您对更多尖端工具持开放态度,请继续阅读。
我的观点: 这可能是人工智能在代码交付方面最不具革命性的实现,但它存在时间最长,被更好地理解,风险也更小。非常适合规避风险的组织。
了解您的代码库
因此,您继承了一个像毛线团一样纠结的遗留代码库。
理解和修改代码是一项艰巨的任务。但是 AI 驱动的 LLM 可以拯救你。这些模型可以分析代码,回答您有关其功能的问题,并提出改进建议。
例如,你可能会问法学硕士,“这个功能是做什么的?” 它可以提供简明的摘要或直观地表示代码的逻辑。
工具: Adrenaline AI擅长理解您的代码库,并允许您提出任何问题来帮助您理解它。
我的观点: 做得好的工具是绿色的,但会不断改进。试试Adrenaline,免费了解这个概念,无需任何设置。
编写测试
无论您正在编写什么测试,无论您是在进行 TDD 还是 BDD,AI 都能够将您的输出提高 10 倍。
面对现实吧。大多数工程师对编写测试套件的前景并不感到兴奋。AI 可以在几秒钟内编写出一套非平凡的(和平凡的)测试套件。不去爱的种种?
工具: Codium专门从事测试写作
我的观点: 专业工具在测试生成方面似乎比简单地询问 ChatGPT 做得更好,因为这是他们接受培训的目的。投资合适的工具。您的开发人员会感谢您。
智能代码辅助
这是“下一个级别”。智能代码辅助系统旨在全面理解您的代码库和上下文,并可以编写、重构或测试代码。
实际上,这意味着 AI 可以建议大量代码片段、检测和修复错误、根据项目的特定上下文推荐最佳实践等等。相当强大。
根据您的工具,您可以通过自然语言处理 (NLP) 提出问题或与代码库交互,就像您与 ChatGPT 交谈一样。
对于希望拥有良好开发人员体验的团队来说,这是一个本垒打——一种非常好的工具,以至于回到旧的方式不再是一种选择。这篇文章是关于 DevEx 的,但很简单,这些线索应该会全面带来更好的结果。
工具:
- **Tabnine**是成熟的 AI 代码助手。它受益于法律上的稳健性和合规性友好,但在撰写本文时运行在现已过时的 GPT-3 上。
- **GitHub Copilot X**尚未发布,但它将能够做很多事情,包括解释代码、修复错误、测试、编写拉取请求模板等等。
- ****如果您等不及 Copilot X, Sourcegraph Cody目前处于 Beta 阶段。他们可以查看您的代码图和公司文档以及您的代码库,以获得更丰富的上下文。
- **Mutable AI**是一个更精简的版本,具有自动完成、重构和提示驱动开发等功能,安全地脱离了 Beta 版。
我的观点: GitHub Copilot X 是这一类别中最受炒作的工具,它甚至还没有问世。对风险有更大偏好的组织可能能够使用“更环保”的人工智能并显着加快开发速度并获得持久的竞争优势。自 2018 年以来,Tabnine 受到许多组织的喜爱,我猜他们正在努力在 GPT-4 上推出。关注此空间。
2. 撰写文档和评论
文档是任何软件项目的命脉,为开发人员、技术经理和产品经理等提供必要的指导和信息。
然而,创建和维护准确、最新且易于理解的文档可能是一项艰巨的任务。
您讨厌糟糕的文档,您的工程师也是如此。
坦率地说,他们中的大多数人也不喜欢写它。
人工智能驱动的文档和评论生成已经准备就绪,您再也不会有不完整、过时或令人困惑的文档。
通过利用 AI 的力量,我们可以自动化生成全面的上下文感知文档的过程。
工具:
- **Mintlify**分析代码结构,提取相关信息,并以用户友好的格式呈现。
- **Readable AI**自动化编写代码注释的过程。
我的观点: 如果它留给人类(无论多么善意),文档永远不会成为优先事项。将工作交给一个可以在几秒钟内始终如一地完成的工具,并且不会讨厌编写它们。
3.协作工具
您和您的工程师可能每天都花几个小时跟上项目的发展。
让我们想想一些耗费时间的地方的例子:
- 了解 Slack 和 Teams
- 搜索某人分享您所需链接的位置
- 找人审查你的拉取请求
- 检查新提交
- 尝试通过检查 Jira 来确定您是否已解锁
如果每个人每天花 2 小时做这件事,而你的团队有 10 个人,那就是每周 100 小时。
随着项目规模和复杂性的增加,赶上进度和找到所需内容所需的时间越来越多,导致沟通不畅、重复工作、延误等。
这是工程师在一天结束时向他们的朋友和家人抱怨的那种挫败感,是一种会降低公司忠诚度的烦恼。这不是大多数团队能负担得起的。
人工智能协作工具可以帮助团队克服这些挑战并简化他们的工作流程。
协作助理
许多组织都在争先恐后地将人工智能添加到他们自己的平台中。
这个想法是这样的:AI 不会在消息和线程中搜索要点,而是会为您挑选出来。
我的观点: 在没有 AI 的情况下这样做会浪费大量时间。虽然有协作机器人(其中许多专门用于一个平台,如 Slack),但还没有一个专门用于软件工程。我的具体意思是,它们没有与 GitHub 和 Jira 之类的工具集成,也无法让工程师关心的事情浮出水面,比如 pull requests。
4.代码审查
通过分析提交的代码并提供智能建议,AI 可以帮助开发人员识别潜在问题、遵守编码标准并理解复杂的代码片段。
这减少了花在代码审查上的时间,并将人为错误的风险降到最低。
对于高级技术经理来说,这意味着更高效、更准确的审查流程,从而带来更好的代码质量和可维护性。
工具:
- Codeball AI评估拉取请求,突出风险并可以自动批准低风险拉取请求。
- Planar做了类似的事情
- 什么 Diff可以创建拉取请求摘要并管理即时代码重构,以避免来回。
我的观点: 事实是,代码审查可能是缓慢、艰巨的,并且是阻碍进步的可靠障碍。一些代码审查工具声称能够将您的代码审查过程提高 10 倍。即使他们只能达到 2 倍,但通常仅 DX 一项就值得投资。
总结
AI 可以通过简化代码交付、增强文档、优化协作工具等方式来改变开发人员的体验。
通过利用 AI 下的底层神经网络、深度学习和机器学习算法的力量,您的团队可以享受更高效、更吸引人、更愉快的工作环境,从而全面取得更好的成果。
如果做得好,您将充分发挥优秀开发人员的作用,拥有更快乐的员工、更高的开发人员生产力和更好的开发流程。
您的开发人员、技术经理和产品经理将感谢您让他们的工作生活更加令人满意和富有成效。