为什么AI不会夺去软件工程师的工作?

文摘   2024-09-24 08:42   北京  


作者张刚——软件工程博士、资深技术专家。

《软件设计:从专业到卓越》、《大模型辅助软件开发:方法与实战》作者。前阿里巴巴资深技术专家、贝尔实验室杰出工程师。在需求分析、架构设计和实现等领域有近20年的一线实践和深入洞察,目前致力于大模型在软件工程领域的应用研究和实践。


自从AI大模型爆火以来,我每天的工作中,已经有大量的真实代码是通过AI完成的。人工智能辅助下的编程,确实大幅减轻了我的工作负担,大大提高了生产力。

大语言模型是如此成功,以至于无可避免地在开发者社区中引起了各种猜测,其中特别让人关心的莫过于: 

人工智能是否能够彻底改变我们的行业?程序员的工作是否会彻底被人工智能所代替?

我的观点是:

我们的行业将被大模型彻底改变,这毋庸置疑。但是,它只会让真正的软件工程师更加高效,而不是会取代工程师的工作。

这不是盲目自信。这个观点来自于一个更为本质的原则。这就是本文我们想讨论的真正的主题:

软件工程师的工作不是写代码,而是探索与发现。


01 软件工程师的工作不是写代码

很多软件工程师都戏称自己是“码农”, 这不难理解,毕竟代码才是我们真正的工作制品,可以工作的功能通过代码得以表达和体现,脱离了代码,文档等等都并不能真正的表达软件的价值。但是,需要注意的是:软件开发绝不仅仅是编码,编码其实是软件开发中的次要部分。它不过是“开发”活动的最终表达。软件开发的核心,就如同它的名字所表达那样,是“开发”,是从无到有的过程,是持续地探索和发现。

我们的开发工作中,有一半以上的时间,是用来探索我们原本不知道的东西,只有不到一半的时间,是去完成实际的“建造”——无论这个建造指的是文档还是代码。

探索和发现包含哪些事情呢?随便列举一些:

  • 理解真实的业务目标

  • 思考能满足业务目标的产品方案

  • 理解用户需求中模糊的细节

  • 思考架构设计的方案

  • 理解既有代码中已经实现了哪些功能,有哪些可复用的资产,有哪些约束和陷阱

  • 学习不熟悉的技术框架以及它们的特性

  • ......

上面的这些事情, 都是探索起来非常费力,但是一旦弄明白就很容易做的事情。这也很类似于缺陷修复中常见的场景:定位3小时,修复10分钟。

下面的图表达了软件开发中的核心内容:

软件开发有3个核心问题:

  1. 弄清楚解决什么问题

  2. 设计出合理的解决方案

  3. 把它构建出来并交付使用

上图的横轴代表时间,纵轴代表知识,我们在整个的开发过程中,关键问题是知识的增长,也就是“探索和发现”。在上述3点中,前两点都是“探索与发现”,只有第3点,是“建造”。这也是当前的人工智能模型最擅长的地方,也是很可能成为工作主体的地方。前两点,大语言模型能够很有帮助,但是它更多还是辅助角色,成不了主体。


02 最大化探索和发现的效率

大家都在讲研发的提效。真正的提效,不是“建造”的速度有多快,而是在探索与发现上,节省了多少时间。用下图来表示:

上方的曲线和下方的曲线代表来完全不同的两类组织。第一类组织,在项目早期就快速定位了各种问题,从而降低了项目的开发周期,提升了开发质量。第二类组织,往往在项目早期风平浪静,一切看起来都很正常,直到开始进入集成测试甚至是临近上线阶段,问题大量爆发,项目延期,开发团队和客户都叫苦不迭。

我们肯定都希望能形成第一类组织,而不是第二类组织。但是现实的情况恰恰相反,第二类组织仍然是当前的主流。 只要看一下下面的漫画在现实中的普及程度,就知道现状究竟如何了:

最大化探索和发现的效率,是研发效能提升的关键。


03 大模型能帮我们做什么?


我们已经看到了很多通过大模型支持软件编码的工作。这属于软件工程中的“建造”部分。但是,没有好的设计能力,“建造”并不靠谱。

在软件工程的历史上, “设计”和“建造”的关系,我们是走过弯路的。在敏捷运动之前,软件工程专家们根据建筑业中的“设计”和“建造”是分离的,就认为软件中的“设计”和“建造”也是可以分离的。这个认知是完全错误的。

为什么建筑行业更多的时候可以区分“设计”和“建造”,而软件几乎完全不可能? 这里有两个根本原因:

  • 软件的复杂性远远超出一般的人类制品。

  • 软件价值本质上来自创新,而不是生产。

这个话题很宏大,我们不在这里展开,仅仅简单描述。 建筑也很复杂,但是大多数情况下的建筑,都有较为成熟的样本,但是它必须被一次次的生产,才能带来价值。你买了一套房子,所购买的是物质的房子,而不是作为信息的设计师图纸。但是软件不同。软件本身就是信息,本质上软件的生产过程,是信息生产过程。如果收走了“编码”,就好比一个作曲家没有乐器,一个烹饪专家没有烹调过程来检验菜品设计的效果一样——它减缓的是学习过程和迭代速度。

敏捷运动更加强调了代码的价值,这是非常正确的。但是,不可否认,编码还是一个非常琐碎的活动。

编码对于设计师的价值不在于编码活动本身,而是编码带来的学习过程。

那么,究竟有没有办法,在享有编码带来的反馈和学习的同时,可以降低在编码活动上的投入呢? 人工智能辅助编程之前,我认为没有这个可能性,但是,今天, 这件事已经是完全可能的了:
让人工智能完成大多数的编码工作,提升学习和反馈速度,让软件工程师成为真正的软件工程师,而不是软件建造师。

04 让你的能力和大模型相匹配


能把程序员从“编程”的具体活动中解放出来是一件好事情。但是,它也提出了新的要求。过去,如果我们对编程框架、语言都比较熟悉,本身就具备了价值。但是,今天这种价值,是很容易被人工智能取代的。

如何最大化探索和发现的能力? 大模型具备的知识其实比我们每个人能掌握的都多得多,但是,大模型不具备我们要解决的特定问题的上下文,它的能力能发挥多少,取决于使用大模型的那个人的能力。

今天的程序员,应该升级我们的技术栈,这包括了如何高质量的分析需求、如何掌握软件设计的原理,如何更快的理解和学习技术框架等等,同时,也需要理解如何更好的和大模型沟通。

所以,真正的软件工程师不会失业,也不会蜕变为“提示工程师”。 它还是它原来的意思,“工程师”——只不过有了大模型的助力,这种探索和发现会更加高效和重要。

05 用一个案例来演示

为了能展示大模型给软件开发带来的潜在提升机会,我去年完成了一个端到端的大模型辅助开发项目:共享出行。它包括了:
  • 前端微信小程序
  • 基于Java的后端核心域开发
  • 基于开源Keycloak及Node.js/Express的后端认证域开发
  • 基于Kubernetes的部署
  • 基于Jenkins的持续集成流水线设计,等等。

这是最终上线的小程序:

06 并不仅仅是提高效率

这个项目的开发过程并不仅仅是更高的效率。它让全栈式开发更简单,减少了沟通协调成本,并且可以形成基于价值的协作。
1. 全栈式开发,越来越简单了
我原本并不熟悉所有的技术栈,特别是完全没有写过微信小程序、没有用过Keycloak,也几乎没写过node.js代码。正是大模型的辅助,让我一个人,就可以完成产品创意-开发-上线的全过程,高效完成项目。
2. 减少了沟通协调成本
基于大模型的辅助开发,让协调沟通成本大幅减少了。比如:
  • 前后端不需要彼此等待,反馈及时。当前端需要后端接口时,就马上去实现后端接口。同样,当后端想看看效果时,马上就可以实现前端UI。而且,在大模型的支持下,真的是“马上”就实现了。
  • 非常容易变更接口。有时候在设计接口时,难免考虑不全。全栈式开发,接口的变更没有任何协调和沟通成本,该改就能改,不需要和其他人商量。
而且,由于前面的原因,还有了一个心理上的收益:
  • 更容易进入心流状态。由于更少等待、更少不必要的协商,精神消耗更小,工作更容易进入心流状态,不累,情绪也更愉悦,更稳定。
3. 直接对价值负责
以前,工作分工常常是按工种来切分的, 这样的结果就是一个人干得好不够,需要大家都干得好,才有好的结果。这个在考评的时候也特别明显。除了团队中彼此熟悉的伙伴,你站在团队外部,很难评价一个人的贡献。超级厉害的人,在团队中的价值不一定能充分得到认可。如果真有那么一两位“南郭先生”,在团队外也不容易看出来,这是因为,在现有的协作模式下,你所做的工作,是不能直接交付价值的,仅仅是庞大的工作中的一小部分。
现在,在大模型时代,工作切分的方式完全可以变得更直接:每个人负责一个完整的功能、完整的业务模块,甚至是完整的业务。这样既减少了不必要的工作耦合,又让价值贡献和价值反馈清晰可见。
11月8-9日,即将于深圳举办的“AI+研发数字峰会(AiDD),特邀本文作者张刚带来主题为《基于演进式设计的LLM辅助开发实战》的大时段工作坊。带领大家深入探讨在当前技术阶段,利用大模型辅助开发的务实方法和关键实践;建立对演进式设计和专业开发能力的系统性认知,以更好地和大模型协同工作。
本届峰会涵盖当下实时热点:AI Agents、大模型对齐与安全、端侧大模型与云端协同、领域大模型SFT与优化、知识增强与数据智能、AI+流程自动化、AI驱动产品及设计创新、LLM驱动编程与单测等精彩内容,聚焦于实践操作与经验共享。现AiDD峰会早鸟票火热报名中,欢迎大家扫码报名,了解更多详情!
如果在您心目中有非常合适的演讲人选,欢迎向组委会推荐(请在邮件中尽可能详述被推荐人的个人信息与可分享的话题信息,发送至assistant@aidd.vip



推荐活动




欢迎大家参与「2024软件研发应用大模型」调查,您的见解将推动行业创新,同时还有机会赢取技术图书奖励。2024年的软件研发应用大模型调查,旨在更深入地理解LLM在软件研发中的新进展、新趋势和新挑战。与2023年的调查相比,今年的调查在内容上进行了优化、丰富和扩展,增加了几项重要的调查项,例如:RAG相关技术、智能体(agents)开发框架、微调技术、业务规划或产品创新、在“软件需求” 哪些方面发挥作用、各个行业 / 领域大模型应用成熟度......。欢迎参与调研,也欢迎一起转发,让更多的企业参与。
《2023软件研发应用大模型现状调研报告》下载渠道:请关注本公众号,输入“AiDD2023调查”即可免费下载。

点这里↓↓↓记得关注标星哦~





中智凯灵
中智凯灵(KeyLink)是国内领先的专业数字人才发展平台,面向科技研发型企业和组织提供数字化人才培养的专属成长地图,数字化转型的方法 + 智库。
 最新文章