Do We Grow Software or Do We Design It?
Do We Grow Software or Do We Design It?
- 1作者提出两种 AI 时代软件方法论,vibe-coding 是有机养成,状态机加形式化验证是工程设计
- 2作者称最熟练的 vibe-coder 会并行测试 4-5 个培养皿,挑出演化最优的一个
- 3与 AI 共同设计状态机时可先索要流程图,把每个分支铺进表格,漏洞会立刻显现
- 4文中引用 Boris Cherny 用 Lean 与 TLA+ 形式化验证 Claude Agent SDK,作为设计式路线的例证
AI 编程把软件方法论推向两种并行范式,探索场景适合养成式试错,必须可靠运转的核心系统仍需确定性设计。
- 影响:养成式开发降低了产品探索的试错成本,团队可以更快验证想法;必须可靠的核心系统有了用形式化验证证明按预期运转的路径;团队可能要为两类场景采用不同的质量与流程标准。
- 参考:可考虑先给项目分类,探索类允许多版本并行试错;核心类可先让 AI 输出流程图,把每个分支铺进表格查漏洞,再评估是否引入 Lean、TLA+ 这类形式化验证工具。
- 依据:文中观点来自作者个人分析,并行测 4-5 个版本为作者描述的高阶实践,Lean 与 TLA+ 验证 Claude Agent SDK 一说引自 Boris Cherny。
In short : Explores the contrast between organic 'growing' of software via vibe-coding and deterministic 'designing' via state machines and formal verification.
Do we grow software or do we design it?
Vibe-coding is growing software. Start with the germ of the idea. Iterate on it. Let’s try this. Poke the petri dish with a bit of glucose ; oh, that didn’t work. Maybe some thymol blue to see if the colony is alive? Time to start again.
The most sophisticated vibe-coders test with 4-5 different petri dishes in parallel & pick the one whose bacteria have evolved optimally.
Designed software in the AI era is state machine design : flow charts that work. First, the email comes in. Three options : archive, add to the CRM, or escalate to a person. If adding to the CRM, determine the company’s stage.
When co-designing a state machine with AI, ask for the flowchart. The AI willingly shares schematics. Lay out every fork in a table with the right outcome. The holes jump out immediately. Plus, formal verification proves the software will work as intended.
Boris explains why.1
Growing software is organic. We can just program! State-machines are mechanical, industrial, & rigid : great for core systems that must work.
Software engineering has many philosophies : test-driven development,2 pair programming,3 move fast & break things.4 In this new era, we add two more.
-
Boris Cherny on formally verifying the Claude Agent SDK with Lean & TLA+. ↩︎
-
Test-Driven Development (TDD), popularized by Kent Beck in ‘Test-Driven Development: By Example’ (2002), dictates writing automated test cases before writing the minimal production code necessary to pass them. ↩︎
-
Pair programming, a core practice of Extreme Programming (XP), pairs two developers at one workstation : one ‘driver’ typing code while the other ’navigator’ reviews and plans strategic direction in real time. ↩︎
-
‘Move fast and break things’ was Facebook’s early internal motto, celebrated by Mark Zuckerberg as a mandate to accept collateral bugs as the acceptable cost of developer velocity, later replaced in 2014 by ‘Move fast with stable infra.’ ↩︎
Get the next one in your inbox
The 1-minute read that turns tech data into strategic advantage.
Read by 150k+ founders & operators.
GP at Theory Ventures. Former Google PM. Sharing data-driven insights on AI, web3, & venture capital.
来源:Tomasz Tunguz 博客 · tomtunguz.com