惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
腾讯CDC
S
Securelist
Know Your Adversary
Know Your Adversary
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 【当耐特】
V2EX - 技术
V2EX - 技术
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
Cisco Talos Blog
Cisco Talos Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
W
WeLiveSecurity
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
博客园 - Franky
S
Security Affairs
博客园 - 司徒正美
V
V2EX
K
Kaspersky official blog
T
Threatpost
NISL@THU
NISL@THU
博客园 - 叶小钗
Help Net Security
Help Net Security
PCI Perspectives
PCI Perspectives
IT之家
IT之家
小众软件
小众软件
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Last Week in AI
Last Week in AI
Jina AI
Jina AI
爱范儿
爱范儿
罗磊的独立博客
N
News and Events Feed by Topic
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
L
LINUX DO - 热门话题
Google Online Security Blog
Google Online Security Blog
雷峰网
雷峰网
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint

编程

我开始在代码中使用中文变量名了 - V2EX 软件工程里,最昂贵的成本到底是什么? - V2EX [转载]信创全平台 C++17 交叉编译工具链 - V2EX AI 正在淘汰小众编程语言 - V2EX 在 Codex 中可以直接调用 Claude 吗? 氛围编码生成的是代码,工程生成的是系统。氛围编程不是工程,大家怎么看? Tikrok8 新版本更新 被 composer 2.5 震撼了 在 AI 时代,现在的新项目大家怎么开始呢? [纯分享]怎么同时学会多个编程语言 现在 rust 是不是好起来了? - V2EX 用 just 管理终端命令,使“命令即代码” - V2EX Qoder teams 版本设计反人性 - V2EX AI 写代码真香喷;以后只要产品经理就可以了 - V2EX warp 有没有什么代码补全和格式化的方案,想代替 cursor - V2EX 被 KIMI 玩弄的一天 这么 lj 我是没想到的 - V2EX pyruns:把本地 Python 实验和 shell 任务真正整理起来的 Web UI - V2EX AI 写的项目要怎么维护?都是一次性代码吗? - V2EX claude-opus-4-6 大家实际使用感觉怎么样? - V2EX 关于加强学习效率的讨论 - V2EX 想用下智谱的 GLM 和 Minmax 的编程模型,有没有用过的分享下使用效果 - V2EX 设计后台微服务还是 mq - V2EX 请教 Hammerspoon 在获取 WIFI ssid 为 nil 问题 - V2EX 发一个更新版的 rules - V2EX Claude Opus 4.5 发布了,前端工程师的天,塌了又塌(AI 计量单位) - V2EX codex 的一些小感受 - V2EX agent 开发据说很有前途 - V2EX 有人实际遇到(或感知到)过比特翻转或数据静默损坏么? - V2EX 没钱就只能将就着用 Trae 和免费模型吗? - V2EX AI 编码的一个细节 - V2EX 网站 favicon 图标自动获取接口 - V2EX 求问单生产者场景使用消息队列是否过度设计? - V2EX 能替代 cursor autocomplete 的方案有哪些? - V2EX 一个 PHP 的博客程序,让 Claude 用 Go 重构,当前靠谱吗? - V2EX 从零开始的 AI 导航站:现在免费提交,有必要开通支付吗? - V2EX 在命令行使用 claude code /qwen code 和在类 cline 插件中使用有什么区别? - V2EX 新红、矩阵通、新榜这种平台,数据到底是怎么获取到的? - V2EX cursor 自定义 model 报错,真报错还是搞小动作? - V2EX springboot 并发调用存储过程 - V2EX 全开源跨平台桌面 app 开发框架 soui5 成功完成 windows, Linux ,macos 三端适配 - V2EX 求英文编程社区提问新手教程 - V2EX 说真的朋友们,有被感动到 - V2EX 让 Agent 能根据 Prompt 自主选择 MCP tools,实现要怎么处理? - V2EX 求助!使用 AI 生成低代码数据的方案 - V2EX 为什么公有模型和私有模型使用效果很大差异 - V2EX cursor 还能用了吗? - V2EX 从 markdown 编辑器直接复制内容到微信公众号平台保持样式不变,这是怎么做到的? - V2EX AI 写代码比我好,一直不动脑子,不太会写代码了 - V2EX 编程真无聊啊 - V2EX 开源架构推荐 - V2EX Cursor 对比 Windsurf - V2EX Windsurf 代码补全失效 - V2EX 项目快写完才发现白写了 - V2EX 想用 ImGui 做点桌面的小工具练练手,请教一下大家有什么思路? - V2EX 常用大模型编程项目得分排名 04-19 - V2EX 请问, AI 时代,新手入门编程开发,应该选择哪个语言? - V2EX 无需服务器部署官方 qq 机器人 这种后台接口设计是否合理 - V2EX ai 编程怎么选工具 nextjs 能把人逼疯
软件工程真的一直在进步吗? - V2EX
Ethan9527 · 2026-07-10 · via 编程

《软件工程经济学》②

软件工程真的一直在进步吗?

上篇聊了一个观察:AI Coding 让写代码变便宜了,但软件开发并没有因此变轻松。省下来的时间,被重新分配到了需求讨论、上下文补充和结果验证上。

有一个问题随之而来:如果不同成本之间的比例在变,那过去二十年形成的一些行业共识,会不会也需要重新审视?

这篇先把 AI 放一边,聊一件更底层的事。

行业里有一个很流行的叙事。

瀑布 → RUP → 敏捷 → DevOps → AI Coding 。

每一步都像是对前一步的超越。瀑布太重,所以有了敏捷。敏捷不够工程化,所以有了 DevOps 。现在 AI 来了,整个开发方式又要变。

听起来像一条不断向前的直线。

但如果你把时间线拉到四十年,把所有主流方法论放在一起看,会发现一件很难用"直线进步"解释的事。

很多已经退出历史舞台的方法,正在重新进入讨论。

一个具体的例子。

上世纪九十年代,CASE 工具承诺从模型直接生成代码。后来这个方向逐渐沉寂。

今天,Agent 又重新开始回答同一个问题::

机器能不能根据一个足够准确的描述完成软件开发?

用例是另一个例子。

十年前它几乎退出了主流讨论,敏捷用 User Story 取而代之。但这两年,当 Agent 需要独立完成带着分支和例外的复杂任务时,不少团队发现,曾经被抛弃的用例结构,恰好提供了 Agent 执行时最需要的那类信息。

领域模型也是。DDD 的核心思想在敏捷时代被认为太重,但这两年在企业级 AI 项目里重新被大量引用。

如果软件工程真的是一条不断进步的直线,这些"旧方法"的回归很难解释。

一个更好的解释,也许不是直线,而是钟摆。

四十年来的方法论一直在这两极之间来回摆——

一极相信:只要把系统描述得足够精确,实现就不会出问题。

另一极相信:现实变化太快,不如先做出来再调整。

七十年代到九十年代,钟摆在"精确描述"那一侧。结构化分析、面向对象设计、UML 、RUP 、CASE 工具、MDA ,方法不同,底层信念一致:模型清楚,实现可靠。

然后互联网来了。钟摆摆向了"先做出来"那一侧。敏捷、精益创业、DevOps ,方法不同,底层信念也一致:别试图提前描述清楚,快速试错成本更低。

但钟摆不是简单地来回。

每一次摆动,其实都在回答同一个问题:软件开发里,什么东西最贵?

当实现成本极高时,值得在前期多投入来减少后期修改——所以形式化工程占优。

当发布和回滚的成本极低时,前期分析的边际收益下降——所以轻量化工程占优。

方法论本身没有绝对的好坏。

同一种方法,在不同的成本结构下,会有完全不同的经济性。

理解这一点,能帮我们看清楚一些过去被混在一起的事情。

比如 RUP 和敏捷的关系。

行业流行的说法是"敏捷战胜了 RUP"。但仔细看,它们面对的根本不是同一个问题。

RUP 的前提是需求相对稳定,发布周期长,修改代价高。在这种环境下,前期多花时间分析需求,总成本更低。

敏捷面对的现实是需求未知,发布成本低。前期分析的回报太低,不如直接上线去试。

更准确地说,真正的区分不在于"需求变不变"——银行和税务系统的需求也一直在变。

真正的区别,不在于需求会不会变化,而在于需求能不能在开发之前,通过分析不断逼近真实。

社交产品、推荐系统这类产品,很多核心需求只能通过上线、观察和迭代不断发现。

但银行清算规则可以。税务申报逻辑可以。风控审批流程可以。它们很多时候是可以被分析、被建模的。

只是分析和维护这件事本身的成本,一度太高了。

当分析成本高于试错成本,行业自然选择更轻的方法。这不是理念上的胜负,是经济学。

至少从过去几十年的历史来看,一个反复出现的现象是:真正推动方法论变化的,往往不是理念,而是成本。

那么今天呢?

上篇我们观察到,AI Coding 正在快速降低实现成本。那些过去因为"正确但太贵"而被放弃的实践,是否值得重新评价?

那些过去隐藏在实现成本之后的问题,是否正在重新成为真正的瓶颈?

我不确定全部答案。但有一个趋势已经清晰:

如果成本结构的变化让"正确但昂贵"的实践重新变得经济,那么今天重新进入视野的,可能就不只是某一种具体的方法。

如果这种判断成立,那么今天重新进入视野的,也许不是某一种具体的方法,而是整个需求工程。

下一篇,我想从一个几乎被遗忘了二十年的具体工件开始聊起。


最后留一个问题。

你的团队里,有没有哪种做法——曾经被认为"太重了""没必要""过时了",最近又重新开始被提起?