AI 辅助编程给软件工程带来的需求开发范式变化

AI智能一体化敏捷管理课8.0 敏捷项目管理暨Certified Scrum Master 中文认证课程实战培训(2天)上海 -2024年11月
2024年12月16日

本文为转载文章,衷心感谢原作者的好文支持。文章公众号来源:赛博禅心,作者:宝玉xp(微博ID)

原文链接:https://baoyu.io/blog/ai-assisted-programming-software-engineering?continueFlag=cd24a451dd7e9a9e9a7e0cedc63bb762

今年 AI 领域最大的突破之一应该是在编程领域,像 Cursor、v0 dev 这样的 AI 编程工具,不仅大幅降低了普通人编程的门槛,也让专业程序员的开发效率大幅提升。

但是我们听到的新闻都是不会编程的高中生、产品经理,借助 AI 编程工具几个小时就做出了火爆的产品,却没有听到有程序员因为编程效率提升而升职加薪的,反倒是有了更多的对于 AI 会替代程序员的担忧。

这是因为 AI 编程虽然增强了开发效率,但稀释了写程序的稀缺性,并开始改变软件开发的范式,让从需求变成产品的单一链条,开始分叉成多个分支,大部分需求在链条前半部分就得以解决,无需传递到后半部分,甚至无需专业程序员参与。

1,直接在需求源头处进行计算完成,而毋需传递到产品设计等工具环节。 2,由用户自主“分解”需求,进而(一定程度的)瓦解了复杂问题为诸个单一诉求,毋需构建软件系统。 3,更高阶的、复杂的企业服务诉求,由擅用Ai系统的人进行“分解”,并构建。 总的来说,从简单、中级、复杂层面都会逐渐“消解”。

1,Ai的自然语言特性,又“润滑”了1、2、3的运作阻碍,使得过程更平滑。 2,Ai的广博特性,又增加了1、2、3的扩展组合可能性。 基本上,只要底层模型能持续进化,所谓应用层都会在1、2、3层里逐渐“消解”,剩下的是一个市场教育度、接受度过程。

——Tales

传统需求开发模式就像一根链条:需求 -> 产品设计 -> 开发 -> 测试 -> 运维。

当用户有一个需求,比如要翻译一篇文章,要处理合并 PDF 文件,这都需要专业软件的支持,这种专业软件的开发,都需要有专业的产品经理将用户的原始需求,设计成可以供用户便于操作的 UI 界面,程序员再基于产品经理的设计,去做系统设计去写代码,最后做出来满足需求的软件。

在这根链条中,产品经理和程序员都是专业度很高的岗位,极难相互替代,即使是非常简单的 App,普通产品经理也无法胜任程序员的角色,但反过来普通程序员也做不了产品设计的工作。当然也存在极少数能兼任的“独立开发者”。

AI 为需求开发的范式带来的变化

简易需求不需要软件开发了

第一个变化是简单的需求不再需要“软件”了,直接通过和 AI “聊天”就解决了。

以前我们翻译需要专业的软件,现在把文字发给 ChatGPT 或者 Claude 这样的 AI 工具,很快就给我们翻译出来了;或者一段报告需要把里面的结构化数据提取出来,以前要写脚本或者用工具,现在也是发给 AI 就好了;这样的例子很多,我们日常中一些常见的小需求,很轻松就可以用 AI 聊天工具满足了。

而且 AI 模型也在升级,以前 ChatGPT、Claude 们 还只能聊天,现在可以上传图片、文档,生成文档,未来还能生成视频,还可以执行代码,虚拟机运行一段 Python 脚本,或者生成一份漂亮的报表,能做的事情越来越多。

普通需求可以不依赖专业程序员启动

第二个变化就是有了产品设计,就算没程序员,也可以启动项目,做出原型。

以前流行的一个梗是:“万事俱备,就差一个程序员”,毕竟光是产品设计还不够,需要程序员把产品设计实现出来,但是现在有了 AI 辅助,即使没有编程基础,也可以做出来简单的应用,或者原型。

很多程序员瞧不上这些 AI 开发出来的产品,觉得不够专业,只是原型类产品,但是它们真的能满足需求,很多时候用户没有那么挑剔,满足需求就好,也许不稳定也许不够好看,但能解决问题。

最近很火的小猫补光灯,重要的不是它是用 AI 做出来的,不是作者职业是产品经理不是专业程序员,而是它能满足用户的需求,用户愿意掏钱。至于用了 AI,本质不过是实现需求和营销的工具罢了。

未来这样的案例会越来越多,甚至会出现小而美应用爆发的情况,因为需求的分解和制作,初期不再需要专业程序员的参与,非专业人士也可以将普通需求转换为原型。一旦被证明需求可行,要么作者可以进一步学习专业编程技术,要么找程序员合作。

为什么现在程序员做独立开发者成功的寥寥?因为程序员们离需求都太远了,离用户太远了,并不知道用户想要什么,也不知道怎么卖给用户!

其实用户有很多需求痛点没有被满足,但以前苦于没有技术能实现,而现在起,很多需求用户可以借助 AI,自己将这些需求变成工具,先满足自己和身边人的需求,其中一部分会火出圈去。

复杂需求还是需要专业程序员去设计,但是开发流程会因 AI 效率大幅提升

第三个变化是 AI 将大幅提升专业程序员的开发效率,进而缩短软件项目开发周期。

第三个变化是 AI 将大幅提升专业程序员的开发效率,进而缩短软件项目开发周期。

img

迄今为止,软件工程经历了几次大的变革:

  • 瀑布模型:真正意义上的标志着软件工程的开始,有了明确的分工,有了软件项目生命周期,让软件开发可衡量
  • 敏捷开发:让软件项目进入小型化,可以快速迭代快速交付,更好的响应需求变更
  • DevOps:持续交付,持续集成,让整个开发、集成和部署实现了自动化,将开发、测试和运维从繁重的手工工作中解放出来,从需求端到最终发布实现了整个流程的自动化,并且通过自动化测试保障了软件的质量

接下来 AI 会引发软件工程的再一次变革,让软件开发变得智能化。这个智能化过程会分成几个阶段。

第一个阶段是我们正在经历的, AI 编程工具正在帮助程序员们大幅提升开发效率。去年 GitHub Copilot 给我的感觉是大约能提升 10%-20% 的开发效率,今年的 Cursor 已经能让我有 30%-50% 的效率提升,当然这取决于项目类型和使用者的熟练程度,但这个趋势很明显。

第二个阶段是不久后会到来的,就是 AI 不仅是在编程领域,在测试和运维等其他领域也会大幅提升效率,很多自动化测试代码将由 AI 生成,Claude 的 computer use 这类技术成熟后,很多以前只能手工测试的工作将可以由 AI 完成,人工只要少量校验即可。以后一些线上运维的日志分析、故障恢复排查,AI 也可以发挥重要作用。

第三个阶段是未来会有针对 AI 技术的全新的软件架构和编程语言,传统的软件架构和编程语言都是针对人来设计的,现在的 AI 是去迁就人类,用人类的方式去编程,这不一定是最适合 AI 的方式。

现在的生成式 AI 只是生成文本、图片和视频,未来的 AI 应该是直接可以动态生成 UI 界面和游戏画面的,这也会让编程进一步自然语言化,通过自然语言可以做出更复杂的软件和游戏。

当然这些只是我的推测,也许实际情况会有所出入。

需求开发范式变化给我们带来的启示

每一次这样的变革,是挑战也是机遇。

对于普通人来说,一些痛点可以借助 AI 去解决,不仅可以借助 AI 聊天工具,还可以借助 AI 编程工具写一些小脚本小工具,直接解决痛点,大幅提升自己的工作效率,甚至可以创造出火爆的产品。

对于产品经理来说,可以不必再止步或者受限于产品设计领域,可以进一步,借助 AI 编程工具,做出可用的原型类产品,快速验证需求。

对于程序员来说,未来掌握 AI 编程工具提升效率是必不可少的,不然有淘汰的风险,实际上用起来比想象的可能要容易,都不需要花钱买课程,只要心理上不抵触多用多体会就可以。

另一方面,程序员如果能去多接触用户,多发现身边的需求,不需要去卷笔记、记账、ToDo三件套这种需求烂大街的产品,借助 AI 能快速去实现去交付,我敢保证你做出来的结果肯定比非专业程序员的好很多。

虽然现在就业形势不好,但是站在全球市场来说,其实游戏、App、网站的需求都很大,善于发现能找到很多机会,先去找到需求,然后用 AI 快速实现上线,快速试错积累经验,一定可以找到属于自己的机会。

无论是什么职业,如果想在变革中抓住机会,最重要还是持续学习和适应,了解最新的 AI 工具和能力边界,掌握与 AI 协作的最佳实践,不必局限于自己所从事的职业,借助 AI 提升自己的跨界能力。

无论未来软件工程的需求开发范式如何变化,价值的本质是没有变的——创造价值的本质依然是帮助用户解决实际问题。AI 工具的出现让我们能够更快地验证想法,更高效地解决问题,但最终的成功仍取决于是否能为用户创造真正的价值。

AI 带来的范式转变不是在淘汰某类角色,而是在重塑整个软件开发生态。未来的成功属于那些能够理解这种转变,并善于利用新工具来创造价值的人。

拨打免费咨询电话 021-63809913