AI热点 11小时前 115 浏览次数 0 评论

虚拟座谈:软件工程师与团队领导者如何借助 AI 实现卓越

InfoQ
InfoQ

发布了 275 文章

简介

 

现在,人工智能(AI)的应用已经很普遍,许多软件开发人员都在日常工作中使用了。它不仅会影响个人的工作,还会影响专业人士在团队中开展合作的方式以及软件团队的管理方式。

 

在本次小组讨论中,我们将讨论 AI 正如何重塑软件开发的方式,以及软件开发人员和工程领导者需要什么样的心态和技能,才能在 AI 时代变得更具适应性和韧性。

 

座谈会成员:

 

Courtney Nash:The VOID 互联网事件管理员和研究分析师

Mandy Gu:Wealthsimple 高级软件开发经理

Hien Luu:Zoox 高级工程经理 | 《MLOps with Ray》一书的作者

 

InfoQ:AI 的兴起对软件开发方式产生了什么影响?

 

Courtney Nash:从媒体宣传和产品推介中我们可以看到,AI 似乎使开发变得更快、更有效率(尽管客观地说,这个问题还没有定论),但与此同时,它也增加了不可预见的复杂性,而且后续可能出现意料之外的情况。复杂性增加的一部分原因是,我们无法揭开 AI 这个黑盒的盖子,看看它是怎么做的或者为什么这样做。我们无法检查 AI 如何写出那样的代码或制定出那样的解决方案,AI 工具也无法模拟更广泛的系统复杂性,因为它们可能在没有意识的情况下与之发生了交互。

 

当事情未按预期进行时,这些知识至关重要。当 AI 生成的软件出现故障时,我们怎么知道要检查哪个地方,或者应该做些什么调查,以便防影响继续扩大,让一切恢复正常,并将我们从中了解到的内容反馈给系统?

 

对于软件系统中的 AI 和自动化,我的研究主要聚焦于人们对这些工具的认知模型。这种研究倾向于将 AI 视为替代人类工作的方式,而不是作为一种支持和增强。这些认知模型导致了不切实际的二分法(“机器更适合这些任务/人类更适合那些任务”),对于当今复杂的现代化系统,这并不能反映软件开发的现实。其他领域的研究表明,自动化(现在是 AI)建立在“替代神话”之上,这源于人们认为人和计算机有各自固有的优势和劣势,只需根据各自的优势将任务分配给不同的执行者(计算机/人)即可。

 

只要软件开发和 AI 设计者继续成为替代神话的牺牲品,那么我们开发的系统和工具就不是为了让人类的生活变得更轻松更美好,它们总会在出人意料的地方需要人类具备一些设计系统/工具时没有考虑到的新技能和干预(“错误、强大和沉默:当具有高自主性和高权限的自动化系统失控会发生什么?”,Dekker & Woods,2024)。

 

Mandy Gu:现在,由 AI(或在 AI 辅助下)编写的代码越来越多了。Anthropic 首席执行官预测,在未来六个月内,AI 生成的代码将占到所编写代码的 90%。

 

一方面,这种变化可能大幅提升开发者的生产力,加速软件交付并降低开发成本。省出来的时间,开发者可以专注于高层次的设计、架构,解决更复杂的问题。另一方面,公司和组织需要确保他们有适当的检查和防护措施,以便可以确保代码的质量标准仍然满足要求。要利用这些工具,还需要有更好的文档和更强的上下文意识。

 

Hien Luu:软件开发涵盖很多领域,包括理解需求、架构、设计、编码、编写测试、审查代码、调试、培养新技能、获取新知识等。现在,AI 已经达到了几乎可以自动化或加速流程任意部分的地步。

 

身为构建者,这是一个激动人心的时代。日常工作中有大量例行公事的部分——那些“认知方面的苦差事”——重复性很强,而且坦白说,枯燥乏味,如今,这些都能由 AI 来完成。开发者尤其感激 AI 在生成测试用例、审查代码和编写文档等方面提供的帮助。当这些任务不再需要我们操心时,我们就可以把更多的时间花在真正增加价值的事情上:解决复杂的问题、设计卓越的系统、进行战略性思考以及提升自身技能。

 

AI 编码代理的最新进展已经远远超越了简单的自动完成。像 Cursor、Claude Code 等工具正在成为现代开发工具包的标准组件。不过,开发者仍然需要进行监督,确保生成的代码符合质量标准,没有引入新的 Bug,并且是安全的。仔细审查、扎实测试和良好的测试覆盖率仍然是不可妥协的要求。

 

InfoQ:软件开发人员需要哪些技能来应对 AI 的挑战并利用伴随而来的机会?

 

Courtney Nash:首先,面对那些通常难以直接内省或无法清晰解释工作原理的 AI 工具,要使开发人员保持信心,相信自己通过艰苦努力积累的专业知识和技能。为了应对泛滥的 AI 工具和模型,他们需要掌握领域知识来判断模型是否偏离了预期(或者更糟,产生了幻觉)。特别是他们需要清楚地了解模型的运作方式,以及训练模型时使用的数据。他们需要时间来积累模型经验,以及如何有效地使用它,例如,是逐步引导还是让它一次性响应所有事情。

 

在近期发表的论文“可解释AI的衡量标准:解释的好坏、用户满意度、心理模型、好奇心、信任和人与AI合作表现”中,研究人员 Robert R. Hoffman、Shane T. Mueller、Gary Klein 和 Jordan Litman 提出了一个 AI 信任量表,开发者及其团队成员或许可以借助它来评估自己对特定 AI 工具或模型的信心:

 

· 我对[工具]很有信心。我觉得它效果很好。

· [工具]的输出非常具有可预测性。

· 这个工具非常可靠。我相信它总是正确的。

· 当我依赖[工具]时,我感到安全,我会得到正确的答案。

· [工具]效率很高,因为它非常快。

· 我对[工具]持谨慎态度。

· 与人类新手用户相比,[工具]可以更好地执行任务。

· 我喜欢使用这个系统进行决策。

 

最终,对于开发者来说,一个至关重要且难以被 AI 取代的技能是知道如何检测和识别那些说明系统(或涉及 AI 的团队)运作不佳的微妙信号。例如,你是否一直在使用 LLM/AI 来弥合分歧或工具差异,而没有重新审视并最终忽略了它们,你怎么知道正在发生的事?

 

Mandy Gu:一个普遍存在但大多数人都视而不见的问题是:“AI 是否会有一天取代我的工作?”直到今年,我都一直认为不会,但这个领域最新的技术进步和产品开始改变我的想法。现实是,我们应该为 AI 改变我们所知道的软件开发角色做好准备。

 

为了适应这些变化,软件开发者应该将 AI 作为一种工具来接受。随着 AI 成为一种越来越有效的工具,学习如何使用它是有好处的:

 

· 对提示工程有一个基本的了解,知道该做什么和不该做什么,往往大有裨益。

· 每名软件开发者都至少应该尝试一次 AI 代码助手。

 

然而,我们也应该意识到使用 AI 的陷阱和风险。该如何审查并确保由 AI 编写的代码达到了和人类一样的质量标准?如果 AI 助手要求获取一个秘密以协助调试,我们该怎么办?

 

最后,软件开发者应当充分发挥批判性思维能力这一人类特有的能力。随着 AI 使编程变得更容易上手,开发者的价值将转向架构设计以及将业务问题转化为技术需求,而不再单纯专注于执行层面。

 

Hien Luu:在 AI 时代,软件开发者需要的技能涵盖了三个主要领域:AI 技术技能、系统思维和软技能。为了保持竞争力,开发者应该从“T 型”能力模型,即具有广泛的知识,并在一个领域有深入的专业知识,发展到“π型”能力模型,即深入研究多个领域并有效地将它们联系起来。

 

对 AI/ML 概念的扎实理解,特别是大型语言模型(LLM)是如何训练的、它们的行为方式以及它们的局限性在哪里,正变得越来越重要。了解 LLM 的优势和弱点,例如偏见和幻觉,有助于开发者有效地使用它们,同时防范错误。其中一个特别有价值的技能是提示工程,即清晰、精确地向 AI 系统传达意图的能力。掌握这种沟通方式的开发者将更高效、更出色,更能胜任构建 AI 驱动的应用程序。正如吴恩达在 2025 年 5 月 Interrupt 大会上所言:“精确告知计算机你想要它做什么的能力,将成为开发者的关键技能。”

 

虽然 AI 在重复性的软件开发任务中表现出色,如编码、测试编写和代码审查,但在更高层次的问题上却表现不佳,如系统思维、系统设计、架构决策和解决复杂问题。现在,这些领域比以往任何时候都更有价值,投入时间和精力强化这些技能的开发者将获得更高的职业韧性,并提升自己在 AI 驱动的世界中的价值。

 

软技能,特别是批判性思维和问题分析,也至关重要。开发者具备分解复杂问题、运用逻辑推理和权衡取舍的能力,就能够用具有洞察力的眼光评估 AI 生成的输出。这些软技能是保证质量、防止微妙错误和避免技术债务积累的关键。简而言之,对于过度依赖 AI 所带来的风险,这些技能是一种保障。

 

InfoQ:工程领导者如何引导软件团队在日常工作中运用基于 AI 的技术和工具?

 

Courtney Nash:支持采用 AI 的团队领导者必须承认并投资于员工所拥有的来之不易的人类专业知识。他们不应该将 AI 视为替代人类弱点的工具,而是要构建所谓的联合认知系统(JCS)。这提供了一种新的视角,即计算机和人类不仅可以共存,还可以通过一种新颖、互利的方式相互支持。

 

在 2002 年发表的论文“人与自动化协调的进展”中,Dekker 和 Woods 识别了 JCS 的三个关键方面:

 

相互可预测性

 

在相互高度依赖的活动中,如软件开发和运营,只有在我们能够准确预测其他人(包括自动化/AI)将做什么时,我们才能规划自己的行动(包括协调行动)。经验丰富的团队通过长期协作积累的共享知识与协调机制,逐渐形成了相互可预测的运作模式。那么 AI 将如何融入这些活动?

 

可指导性

 

为了让 AI 成为 JCS 中的优秀团队成员,它也必须是可指导的。可指导性指的是在条件和优先级变化时,主动评估并调整行动的能力。有效的协同工作要求 AI 与人类在任务推进过程中,尤其当意外情况发生时,能够充分响应彼此的影响。

 

共同的基础

 

有效协同需要建立和维护共同的基础,包括参与方共享的相关知识、信仰和假设(关于这个话题的更多内容,请参阅我对下一个问题的回答!)。共同的基础使每个人都能理解有助于工作协调的信息和信号。团队成员必须警惕共同的基础可能被侵蚀的迹象,并采取预防行动,防止团队功能出现灾难性的崩溃。

 

领导者将面临真正的挑战,大多数 AI 系统在设计时并没有考虑这些方面,因此他们必须具有创造力和灵活性,为团队提供支持,使他们能够与无法真正进行联合认知工作的 AI 合作。

 

Mandy Gu:工程领导者应该鼓励采用 AI 工具,并使软件开发人员能够轻松试用这些工具。我们不应该等待行业中出现一个胜出的工具,而是应该迅速做出可逆的决策。

 

领导者还应确保默认启用安全模式,从一开始就设置好配置、检查和平衡机制。此外,工程领导者需要投资于教育和培训,帮助团队有效地利用这项新技术。

 

最后,领导者应该继续培养一种编写清晰易懂代码的文化,这对人类和 AI 都大有裨益。

 

Hien Luu:工程领导者需要在指导团队进行 AI 转型中发挥积极作用,从明确沟通期望开始,构建一个强大的 AI 治理框架,并实施全面的度量系统。

 

领导者应该强调,AI 旨在增强而不是取代人类开发者,它带来的生产力提升应该重新投入到更有价值、更有创造性和需要批判性思维的任务中,而不仅仅是用来增加工作量。

 

一个健全的 AI 治理框架对于避免安全和合规陷阱至关重要。它应该为 AI 工具的使用定义清晰的指导方针,概述采用标准,并防止未经审查的工具在组织内部无序传播。

 

度量也要全面。除了传统指标,如利用率、代码接受率和开发人员满意度外,领导者还应该跟踪长期健康指标,如代码质量、测试覆盖率、可维护性和功能交付速度。良好的跟踪可以确保 AI 的采用正在推动可持续的生产力发展,而不是引入隐藏的技术债务。

 

InfoQ:为了培养韧性文化,使软件开发人员能够在混乱和不确定性中蓬勃发展,公司可以做些什么?

 

Courtney Nash:这个问题很难在几段话中说明白,但我会尽我所能,并推荐一些延伸阅读和资源供大家深入探索答案。我将从一些定义开始。

 

韧性是脆弱性的对立面;它是一种在遭遇意外状况、超出已知解决方案时,能够反弹、适应并作出响应而不会崩溃或经历灾难性失败的能力。韧性既不是可靠性——每次都提供相同的结果,也不是冗余——通过备份等方法有效支撑可靠性的手段。

 

正如系统安全和人因工程研究专家 David Woods 博士曾睿智地指出:“韧性是一个动词”。

 

麻省理工学院教授 Edgar Schein 将组织文化定义为“特定群体在应对外部适应与内部整合问题过程中所创造、发现或发展出来的一套基本假设模式。它们因为行之有效而被传授给新成员,作为他们处理相关问题时的认知、思考和感受方式。”(摘自《组织文化与领导力》,Edgar Schein,2010 年。)

 

在此意义上,文化是其成员行为所依据的价值观集合(源于假设与经验)。如同韧性,文化具有动态性。文化的现有成员必须明确、透彻地说明这些价值观及其相关行为是什么,并积极地教授给新成员。文化是有生命力的。它不是一本手册或一次性的入职培训视频。这种透明度是构建包括 AI 在内的可持续发展文化的关键部分:领导者将如何把 AI 融入一种有生命力的、动态变化的文化?

 

将这两种观点结合起来看,培养韧性文化的关键是在专业能力方面进行投资。当领导者信任员工,赋予他们自主权,使他们能够自由展现专业能力并将其传播至整个组织,又无需担心受到指责或报复时,韧性文化便成功建立了。韧性文化崇尚从失败中学习。

 

要进一步探索这个话题,建议阅读以下内容:

 

· “理解人为错误的实用指南”,Sidney Dekker

· “公正文化:安全与责任的平衡之道”,Sidney Dekker

· “韧性,以优雅的可扩展性克服脆弱性”,David Woods

· “人本系统”,Steven Shorrock

 

Mandy Gu:为了应对引入 AI 的不确定性,公司应确保我们能够安全可靠地拥抱这些技术。通过建立完善的制衡机制,使良好的数据安全实践变得简单易行,并利用云服务商提供的生成式 AI 部署方案(例如亚马逊云科技的 Bedrock),确保 AI 集成产生的数据始终保留在企业自己的云租户内。

 

公司还应该公开他们的 AI 战略,消除潜在的焦虑,并为开发人员提供空间和资源,让他们能够在不断变化的技术环境中不断学习和提升技能。

 

Hien Luu:韧性文化始于心理安全和开放沟通,旨在创造一个环境,让开发人员可以分享他们的学习旅程和犯过的错误,表达想法,提出问题,表达关切,而不必担心受到指责或报复。

 

在这里,领导者扮演着关键的角色。当他们坦诚分享自己在 AI 领域的挑战与成长历程时,便向团队传递出这样一个信号:展现脆弱性不仅会被接纳,而且会受重视。黑客马拉松、定期举办的开发者交流会以及其他分享经验教训(包括失败案例)的论坛,能让开发者意识到,他们不是在这个变革的大潮中孤军奋战。这些实践不仅能增强团队凝聚力,提升团队互助精神,还能在这个充满不确定性的时期,为大胆尝试注入了信心。

 

InfoQ:有什么能保持软件开发的可持续性,并确保软件开发人员和团队领导者的心理健康吗?

 

Courtney Nash:对于培养韧性以及支持这项工作开展的文化,系统安全研究员 Sidney Dekker 指出了多个对于组织而言非常关键的方面。这些组织:

 

· 从不将过去的成功视为未来成功的保证。

· 即使一切顺利,也要活跃地讨论风险。

· 持续更新他们对系统运作方式的认知模型。

· 积极考虑不同的输入。他们寻求少数派的观点,并对这些观点所传达的内容持开放态度。

· 单方面允许个人在感觉事情会出错时“停止生产线”,而无需承担后果。

 

当探讨可持续工作、心理健康及职业倦怠的话题时,我总是会提到另一项研究,来自Christine Maslach博士。在多个行业中,她都是职业倦怠领域的顶级专家。在过去十年中,她在许多技术会议上做过演讲。她的研究揭示了领导者为保持工作可持续性应重点投入的关键领域。

 

Maslach 指出,为了保持工作可持续性并避免职业倦怠,领导者需要在六个主要的战略领域进行投入:

 

· 可控的工作量

· 赋予员工对工作的自主权或掌控力

· 确保人们获得与工作相称的回报

· 社区归属感

· 公平的工作环境

· 让人们觉得他们的工作与组织共同的价值观一致

 

任何维度的不匹配都可能导致日后出现职业倦怠。不匹配的维度越多,职业倦怠发生的概率就越高。所有维度都保持了一致,就像“银行里存了钱”——当需要人们加倍努力时,这些储备就能派上用场。将 AI 纳入这一模型是一个全新的领域,但在人们争相提供新产品、新模型和计算能力的热潮中,这一领域却在很大程度上被忽视了。

 

对于领导者及其团队来说,AI 为这六个方面的投资带来了独特的挑战。那些致力于推动 AI 和软件开发者作为“团队成员”共存的领导者,其团队更可能实现可持续的高绩效表现,而那些将 AI 视为人类能力与专业知识替代品的领导者则不然。

 

Mandy Gu:工程领导者需要解决可能存在的任何 AI 焦虑。领导者需要公开 AI 战略及其期望,使公司中的任何人都能轻松分享有关这些战略的反馈。

 

公司还需要为团队提供学习和适应这些新技术的空间,为有效地利用 AI 奠定基础。某些情况下,为了准确反映实际完成的工作量,企业可能需要重新调整生产力指标。虽然人们很容易将代码编写量减少 90%与交付周期缩短 90%混为一谈,但冰山之下远不止代码编写这一层工作。

 

Hien Luu:把 AI 能做什么和不能做什么沟通清楚至关重要。将 AI 定位为增强开发者能力而不是取代他们的强大工具,这有助于减少他们对工作安全的焦虑,并提升接受度和采用率。

 

同样重要的是,根据开发者的繁忙日程持续为他们提供便捷的培训。将培训与定期开展的“办公时间”或开放式问答环节相结合,能营造出安全的学习与故障排除空间。这些措施有助于缓解压力过大的感受,为持续成长提供支持,并在相当长的一段时间内保持软件开发的可持续性。

 

总结

 

使用 AI 可以加速软件开发,提高生产力,因为重复的部分可以由 AI 处理。但 AI 可能会增加不可预见的复杂性,并增加后续出现意外情况的可能。开发者需要进行监督,制定检查和防护措施,确保代码符合质量标准。

 

为了应对 AI 的挑战并把握其机遇,软件开发者需掌握领域知识,从而识别模型运行异常或产生幻觉的情况。要将 AI 作为工具加以运用,开发者必须理解 AI/ML 的核心概念及提示工程技术,同时需警惕 AI 应用中的陷阱与风险。批判性思维与问题分析能力对评估 AI 生成的输出结果至关重要。

 

为充分调动软件团队的潜力,工程领导者可将 AI 与团队视为联合认知系统,让他们以创新且高效的方式支持对方的工作。他们应鼓励采用 AI 工具,为软件开发者提供便捷的工具试用渠道,并持续培育编写简洁易懂代码的文化。领导者可建立 AI 治理框架,实施全面的评估体系以支持 AI 的应用。

 

为了培养韧性文化,公司应该投资于专业能力建设。韧性文化始于心理安全和开放沟通。领导者应该信任他们的员工,并赋予他们自主权,使其能够毫无顾虑地展现专业能力,并在组织内部进行传播,而无需担心受到指责或报复。企业应公开发布其 AI 战略,缓解潜在的焦虑情绪,并为开发人员提供空间和资源,使其能在不断变化的技术环境中持续学习并提升技能。

 

为了确保软件开发者的心理健康,工程领导者需要解决可能存在的任何 AI 焦虑,为团队提供学习和适应新技术的空间。将 AI 定位为增强开发者能力而不是取代他们的强大工具,这有助于减少他们对工作安全的焦虑,并提升接受度和采用率。那些致力于推动 AI 和软件开发者作为“团队成员”共存的领导者,其团队更可能实现可持续的高绩效表现,而那些将 AI 视为人类能力与专业知识替代品的领导者则不然。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:

https://www.infoq.com/articles/software-engineers-excel-AI/

InfoQ

InfoQ

275 文章 39590 浏览次数 0 粉丝

评论 (0)

睡觉动画