Ethan9527
V2EX  ›  编程

软件工程里,最昂贵的成本到底是什么?

  •  
  •   Ethan9527 · 6h 45m ago · 1782 views

    《软件工程经济学》①

    软件工程里,最昂贵的成本到底是什么?

    过去两年,软件行业几乎形成了一个没有争议的共识:AI 正在让软件开发越来越便宜。

    这句话听起来没有问题,但我越来越怀疑,我们可能把两个不同的概念混在了一起。

    变便宜的,也许只是写代码,而不是软件开发。

    过去很长一段时间,这两个概念几乎可以画上等号。软件工程的大部分投入,都集中在"把系统实现出来"这件事情上。更高级的编程语言、更完善的框架、更成熟的开源生态、更自动化的 CI/CD 、更智能的开发工具,本质上都在解决同一个问题:如何更快、更稳定地完成实现。

    AI Coding 是这条技术路线迄今为止最显著的一次跃迁。如果只讨论"实现"这一环,它带来的效率提升,几乎超过了过去十年的总和。

    但真正让我感兴趣的,并不是代码生成速度。

    而是另一个现象。

    越来越多团队告诉我,他们花在写代码上的时间减少了,却没有觉得开发变得更轻松。

    讨论需求的时间变多了。

    解释业务背景的时间变多了。

    反复补充上下文的时间变多了。

    验证 AI 输出是否符合预期的时间也变多了。

    如果软件开发真的变便宜了,这些时间为什么没有一起消失?

    如果把软件开发抽象来看,它其实始终围绕三个问题展开。

    • 第一,搞清楚要干什么。

    • 第二,把它做出来。

    • 第三,确认做对了。

    过去二十多年,整个行业几乎都在优化第二个问题。

    今天,这个问题正在以前所未有的速度被解决。

    于是,另外两个问题开始变得越来越显眼。

    最近,一位朋友分享了他们团队的经历。

    Agent 很快完成了一次大规模重构:修改了十几个文件,补齐了测试,也顺利通过了构建。

    真正的问题出现在两小时以后。

    团队才发现,它理解错的不是代码,而是一条业务规则。

    整个实现都建立在一个错误的理解之上。

    最终不得不推倒重来。

    类似的事情,我相信很多团队都经历过。

    过去,一个理解不完整的需求,往往只会产生几十行有偏差的代码,很快就能发现问题。

    今天,同样的理解偏差,可能在几分钟内演化成几千行代码、几十个文件、完整的测试,以及一套看起来完全合理的实现。

    返工因此变得更加昂贵。

    这让我越来越觉得:

    AI 没有创造新的问题,它只是第一次让很多旧问题,再也藏不住了。

    AI 把写错代码的成本降到了零,却把理解错问题的成本放大到了前所未有的规模。

    于是,一个以前很少认真讨论的问题重新出现了。

    软件工程里,真正昂贵的成本,到底是什么?

    如果回头看过去四十年的软件工程发展,会发现不同阶段给出的答案并不一样。

    上世纪九十年代,大型企业系统的需求相对稳定,发布周期长,修改代价高。在这样的环境里,尽可能把需求分析清楚,再进入实现阶段,是一种合理的经济选择。RUP 、用例驱动开发等方法论,都诞生于这样的背景。

    后来,互联网改变了另一件事情。

    很多产品的需求,并不是分析出来的,而是上线以后才逐渐发现的。没人能够在项目开始之前,就完整定义一个社交网络应该是什么样子,也没人能够提前设计出今天短视频产品的全部交互。

    于是,快速试错比完整分析更重要。

    敏捷因此成为那个时代更符合成本结构的选择。

    很多人后来总结说:

    RUP 输给了敏捷。

    但我越来越怀疑,这样的总结是不是过于简单。

    敏捷真正证明的,也许并不是 RUP 的方向错了。

    它证明的更可能是,在另一种成本结构下,存在一种更经济的组织方式。

    方法论发生了变化。

    真正变化的,也许不是理念,而是成本。

    RUP 不是输给了敏捷。是'提前分析清楚'这件事,在快速试错的环境里,变得比'快速上线再迭代'更贵了。

    今天,当 AI 大幅降低了实现成本,我们或许又站在了另一个新的起点。

    那些过去因为维护代价太高而被放弃的实践,会不会值得重新评价?

    那些过去隐藏在实现成本之后的问题,会不会重新成为软件工程真正的瓶颈?

    我不知道答案。

    但我越来越觉得,这些问题,比"AI 会不会取代程序员"更值得讨论。

    因为真正改变软件工程的,往往不是一种新的工具。

    而是工具改变了软件开发中,什么事情最昂贵。


    下一篇,我们把时间尺度再拉长一点。

    如果把软件工程四十多年的发展放在一起看,它也许并不像一条不断进步的直线。

    也许,它更像一个不断摆动的钟摆。

    而每一次摆动,都发生在人们重新计算"什么最贵"的时候。


    最后留一个问题。

    过去一年,你所在团队最大的返工成本,来自哪里?

    是代码写错了?

    还是从一开始,就理解错了要解决的问题?

    16 replies    2026-07-08 14:55:33 +08:00
    nicaiwss
        1
    nicaiwss  
       6h 41m ago via iPhone
    花点钱用好点的模型,你提的这些问题已经不存在了
    94
        2
    94  
       5h 40m ago
    业务明确、需求清晰,就算<真·AGI>时代到来了也是没有办法被解决的问题。
    除非能把老板的脑子打开来让执行者能直接读取。
    forbreak
        3
    forbreak  
       5h 8m ago   ❤️ 1
    @94 不太行,老板脑子里面也不知道自己要什么。
    cccssss
        4
    cccssss  
       5h 6m ago
    @forbreak 老板脑子里只有一个想法:赚大钱
    Bunsei
        5
    Bunsei  
       4h 28m ago   ❤️ 1
    沟通。你跟 AI 沟通需要“成本”,老板跟你沟通需要“成本”。
    Bunsei
        6
    Bunsei  
       4h 23m ago
    @Bunsei AI 只是降低了实现成本,而沟通上的成本因为多了 AI 这一个环节反倒有可能增加不少。
    HappyAndSmile
        7
    HappyAndSmile  
       4h 12m ago
    非常之好的文章,这两天刚好在改一个本来很小的需求,却因 AI 理解错误,导致写了很多冗余的代码,花了很多时间重新整理
    HappyAndSmile
        8
    HappyAndSmile  
       4h 10m ago
    AI 把写错代码的成本降到了零,却把理解错问题的成本放大到了前所未有的规模。

    这个深有体会,一旦理解错了,产生了那么多的“错误代码”,不知道应该推倒重来,还是逐步分析去改,反正都很费时间
    zooo
        9
    zooo  
       4h 9m ago   ❤️ 1
    沟通或者说是对齐
    NoDataNoBB
        10
    NoDataNoBB  
       3h 55m ago
    写方案
    hope7777777
        11
    hope7777777  
       2h 48m ago
    沟通成本有了比较实际的成本哈哈哈,写代码变快了,然后一对,这里要改一下,那里要加一下,写代码省的时间占需求开发的时间并不多。然后需求变更的成本就在 token 里体现的淋漓尽致,在公司里面无法避免需求传递中失真。但是个人开发在方案仔细推敲之后,确实有明显的开发上线速度的提升
    froransom
        12
    froransom  
       2h 37m ago
    领导的想法
    foveal
        13
    foveal  
       2h 25m ago
    很好的问题呀

    “第一,搞清楚要干什么。第二,把它做出来。第三,确认做对了。过去二十多年,整个行业几乎都在优化第二个问题。”--非常认同,现在 AI 也在努力优化第一个和第三个问题,但是涉及到真实世界交互进展会慢些,我们还没有给予 AI 充分的权限去给不同的人打电话沟通,把事情前因后果聊天情绪完整的输入。

    “今天,同样的理解偏差,可能在几分钟内演化成几千行代码、几十个文件、完整的测试,以及一套看起来完全合理的实现。返工因此变得更加昂贵。”---这一点不认同,代码量多了不代表 AI 修改起来更困难,2B 的敏捷开发很适合 AI 。
    现在软件开发的最大瓶颈在于人与人之间的沟通效率。极致的小团队和极高的内部沟通效率才能
    jacketma
        14
    jacketma  
       2h 11m ago
    数据持续污染而不自知。这事遇到一次,头痛好多年
    GopFei
        15
    GopFei  
       1h 30m ago
    行业软件,尤其是复杂行业软件。沟通是最大的问题。
    如何引导完全不了解 it 的相关方理解自己的需求,提出需求,转化为 it 行业需求语言,再与开发沟通对接。
    这一个步骤是最困难的。
    在一些复杂行业中,相关方甚至都不了解自己想要什么,返工多次,依旧无法达到相关方需要的效果。这就是成本最大的浪费。
    duanxianze
        16
    duanxianze  
       1h 26m ago
    日常工作,90%的返工是对需求的理解不一致导致的,包括但不限于和 产品 后端 测试 甚至设计,当然,最多的还是和甲方的需求不一致
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5120 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 08:21 · PVG 16:21 · LAX 01:21 · JFK 04:21
    ♥ Do have faith in what you're doing.