文章讨论了AI在敏捷开发中的应用,强调AI可以提高速度、简化流程,但也需注意其局限性。关键在于卸载开发人员的重复性任务,并关注AI的安全问题。同时,AI可辅助文档生成、状态更新,促进技术决策与业务语言的转化,从而提升敏捷实践的效果。
译自:AI Combined With Agile Lets Developers Focus on Craft
作者:Loraine Lawson
速度并不是敏捷编程的最终目标,但它肯定没有坏处。项目管理解决方案提供商Tempo Software的首席战略官Shannon Mason表示,AI可以成为提高速度的资源,同时还可以简化敏捷开发的某些方面。
她说:“现在我们有能力在AI的帮助下构建几乎完整的概念化,这太棒了。” “我们的工作是看看它[敏捷]如何改进。而且我认为这实际上是AI开始发挥积极作用的地方。它使我们能够更快地完成许多敏捷流程的核心和基础工作。”
Tempo Software正在创建一个系统,以支持消除其流程中的浪费。这需要复杂的数学计算,他们希望在花费过多的时间、精力和能量来构建技术系统之前对其进行测试。
Mason说:“在过去,我们会坐下来,将其计划到迭代中。” “可能需要两个以上的迭代才能达到我们实际拥有一个令人满意的原型,即演示软件的阶段,这比做一个非常快速的创新迭代,比如一个为期一周的快速迭代,目标是获得可演示的软件更为广泛。”
她说,借助AI,他们能够更快地完成工作。 它可以整合并帮助解释一些内部和外部可能不透明的事情。
支持AI和敏捷
毫无疑问,AI是房间里最聪明的孩子……但它仍然是个孩子,需要适度和明智地采用,Mason说。 她警告说,敏捷实践者必须意识到AI的局限性。
“它没有构建的是可扩展、经过深思熟虑且安全的软件,”Mason补充说。 “就像一个小孩子——你必须开始将它塑造成你希望它成长的样子。”
我与Mason分享了一个资深开发人员的故事,“AI反面派”,他不断从初级开发人员那里获得糟糕的AI生成的代码。 他感到沮丧,因为当他发回建议和更改时,初级开发人员将其变成了另一个AI提示,从而导致他必须审查更多糟糕的代码。
她说:“我确实担心新进入市场的工程师,因为如果你产生垃圾代码,最终必须由你的高级工程师进行优化,这也能够真正定义和划分AI将在哪里发挥作用,那么你就会成为系统的负担。” “这与敏捷性背道而驰。”
她会询问该组织是否有一个内部流程来帮助人们了解如何将AI工具用作工程师。
她说:“作为敏捷实践的原则,学习和持续学习应该成为其中的一部分。”
对于刚开始的开发人员来说,真正自学这些东西的工作原理并学习语言也很重要,这样他们就不会产生垃圾代码。 开发人员还应该了解AI创建的安全问题,例如注入攻击,她补充道。
她说:“我需要了解注入是如何工作的,这样我就不会实际部署人们可以恶意使用机器人或代理来进入并访问他们绝对不应该访问的东西。” “这些都是现在正在记录的事情,因为这种使用变得越来越普遍。”
在敏捷中使用AI
Mason说,在敏捷中使用AI获得成功的关键是专注于卸载那些让开发人员远离其技能的任务。
她说:“敏捷和AI真的可以很好地合作。” “我认为大多数组织应该首先关注的是如何消除你一天中的乏味。”
她补充说,开发人员可以使用AI来自动化诸如生成文档或撰写内部博客文章之类的任务,这些任务会将开发人员从编码流程状态中拉出来。
“敏捷和AI真的可以很好地合作。”
——Tempo Software首席战略官Shannon Mason
她说:“文档很好……但与此同时,我们是否可以使用任何现有的大型语言模型和AI来实际完成或卸载这项工作,或者至少给我们一个开始,这样就不会花费我们整整一天的时间。”
她补充说,它还可以通过充当系统(如Jira或Slack)中的智能代理来提供状态更新,以跟踪进度并提供有关团队进度的实时、客观的数据。 它可以查看前一天的拉取请求和可交付成果。 如果开发人员不习惯使用AI来处理该任务,那么AI至少可以提供一个起点。
Mason说:“你可以添加专业知识、细微差别或它可能遗漏的东西。”
她补充说,它还可以帮助开发人员将技术决策转换为用户和领导者的业务词汇。
“我没有MBA学位。 那不是我的领域,我不是来自那个世界的,”她说。 但这是一个许多业务用户和领导者都来自并理解的世界,Mason必须以他们理解的方式与他们互动。 “我使用AI来民主化我与他们的经验,因为我想说类似的语言,或者我想让他们进入我的技术语言,”她继续说道。
Mason认为,AI还有助于发现代码中的问题。 一家公司有一个复杂的前端,开发人员必须在本地拉入才能工作——而且它非常庞大,她说。 使用AI来缩小开发人员需要关注的范围节省了大量时间。
最后,AI可以通过提供有关该过程的事实和数据,消除问题中的个人痛苦,从而确保敏捷不会变成一种注重改进的性能仪式,而是一种过程。
她说:“我们实际上开发了一个用于Jira的代理,它会讨论迭代的进展情况,并以非常客观的方式提供该信息。” “然后我们可以使用这些数据来做出更好的决策。”