
战斗机飞行员的软件策略指南
人工智能公司正处于可以说是人类历史上竞争最激烈的市场中。惊天动地的风险投资轮次激励和赋能了世界上最聪明的人才,参与到一场赢家通吃(如果不是全部!)的奇点竞赛中。在这个战场上,我的思绪回到了一个鲜为人知的宾夕法尼亚州战斗机飞行员身上,他对战略的贡献可与拿破仑和孙子相媲美。
约翰·博伊德上校。
如果你没听说过他,你并不孤单。然而,今天他的著作在一些顶级的商学院和法学院(更不用说军事院校了)中都有讲授。他的战略框架——最初是为空战设计的——已经被应用于从诉讼到体育运动,再到制造业的一切领域。在当今竞争激烈的软件环境中,这正是我们所需要的。

不要被碾压
在三万英尺高空的混战中,承受着多重重力并做出瞬间决策时,战斗机飞行员没有时间召开委员会会议或寻找完美的解决方案。情况变化太快,也太危险,不容许仔细和深思熟虑的计划。
听起来很熟悉吗?这就是 2025 年创建公司的现实。
但大多数创始人错了一点:赢家不是做出最佳决策的人。而是做出(并执行)最快、非致命、非灾难性决策的人。
这个道理通常用“你只需要构建东西”(you can just build things)这个梗来传达。
这不是靠乱按按钮取胜。而是关于快速执行一系列相对不错的动作,而不会坠毁。让我来解释一下这如何应用于你的代码库和公司。
OODA 循环:你的竞争框架
博伊德最著名的贡献是 OODA 循环——一个由四个元素组成的决策周期
- 观察 (Observe)
- 定向 (Orient)
- 决定 (Decide)
- 行动 (Act)
乍一看,这可能显得微不足道——它基本上代表了我们每天自然而然做的事情。然而,这个框架的力量在于理解谁能比对手更快地完成这个循环,谁就能获得不可逾越的优势。通过优化业务中的每一步,你就为胜利做好了准备。
观察:你是盲目飞行吗?
对于战斗机飞行员来说,观察是通过他们的眼睛、耳朵和仪器进行的。对于你的软件公司来说,这可能包括
- 生产系统的遥测数据
- 用户行为指标
- 客户反馈循环
- 市场情报
现在,我们中的许多人都在盲目飞行。我们有眼睛和耳朵,但我们的平视显示器配置不正确。我们缺少关键数据,或者更糟的是,被太多错误的数据淹没。
超越竞争对手的第一步是建立强大的可观察性。你是否有显示重要信息的仪表板?你能实时看到你的系统表现如何吗?你是否捕获了正确的用户行为?
没有这些,你就像一个仪表失灵的飞行员。
定向:理解混乱
观察只是数据收集。定向是把数据转化为理解的地方。
在软件中,这意味着
- 解释指标仪表板
- 情境化用户反馈
- 理解竞争对手的举动
- 处理市场趋势
这是大多数工程组织失败的地方。他们收集了数TB的日志,但缺乏提取有意义见解的流程。他们有 NPS 分数,但没有系统的方法来理解客户满意或不满意背后的“为什么”。
定向不仅仅是拥有数据——它是关于拥有将数据转化为态势感知的框架。
决定:异议并承诺
在快节奏的环境中做决策不是为了达成共识。它是为了速度。
这是“异议并承诺”(由亚马逊推广)变得至关重要的地方。你不需要每个人都同意——你需要一旦做出决定,每个人都向前推进,并且你需要快速做出决定。
我发现有效的一些原则
- 限定决策时间
- 定义明确的决策所有者
- 创建何时升级与何时本地决策的框架
- 接受某些决策会是错误的,并建立快速检测和纠正它们的流程
记住:现在的一个好决定胜过以后的一个完美决定。
行动:你的工程机动性
这是真正见真章的地方。你的团队能多快地执行决策?
你的行动阶段的速度取决于
- 你的代码库质量
- 你的 CI/CD 流水线
- 部署流程
- 团队沟通模式
- 架构决策
如果你的竞争对手能在两天内发布一个你需要两个月才能完成的功能,你已经死了——只是你还不知道。
能量机动性理论:为什么技术债很重要
在冷战期间,博伊德被证明苏联米格战机性能优于美国喷气式飞机的证据所困扰。他利用热力学在数学上证明了这一点,并提出了能量机动性(EM)理论——这个框架彻底改变了飞机设计,并直接促成了 F-15 和 F-16 战斗机项目。
EM 理论是关于飞机在不同条件下改变能量状态的速度。对于软件来说,它是关于你的代码库适应不断变化的需求的速度。
让我给你一个具体的例子:在互联网早期,YC 创始人 Paul Graham 的公司 Viaweb 主导了在线商店建设市场,最终以 4900 万美元的价格卖给了雅虎。在他的文章《击败平均水平》(Beating the Averages)中,Graham 将他们的成功归因于使用了 Lisp。
他既对又错。
不是 Lisp 本身给了他们优势。相反,是 Lisp 中惯有的高度可组合模式给了他们优势。这种从小的、简单的、高度可组合的片段构建系统并可以递归组合的哲学,源于美国东海岸的软件界,也许以 UNIX 为最佳例证。Graham 的竞争对手不仅受限于他们选择的 Java 语言,还受限于伴随其代码哲学的脆弱、不可机动的代码架构。
正如 Graham 在他的文章《击败平均水平》中所指出的,他们的开发周期“如此之快,以至于我们有时能在竞争对手发布新功能新闻稿后的一两天内复制该功能。”他们的竞争对手一定觉得 Viaweb 有某种秘密武器——他们只是能够比任何人想象的都要快地开发软件。
将其应用于你的代码库
可组合性是机动性的关键。在实践中这意味着什么?
- 模块化架构:可以独立更换、修改或升级的组件
- 清晰的接口:系统之间有明确的边界
- 函数式模式:最小化副作用和状态
- 领域驱动设计:使代码结构与业务现实保持一致
为可组合性而构建需要前期投入更多时间。它需要更多的思考和纪律。但它能让你的代码有更长的生命周期,并允许在需求变化时快速适应。
如何取胜
在实践中,胜利是这样的
- 观察:实施全面的遥测和反馈循环
- 定向:建立从数据中获取可行见解的系统
- 决定:创建轻量级的决策流程,优先考虑速度而不是共识
- 行动:开发高度可组合的代码库,能够快速适应不断变化的需求
循环最快的团队——不是最完美的,而是最快的——将赢得胜利,即使面对拥有 100 倍资源的竞争对手。
记住博伊德上校的智慧:胜利不属于最强大或最强壮的。它属于最具适应性的。
你是在把你的软件公司打造成 F-22 战斗机还是商业客机?前者能以超音速瞬间转向。后者需要 20 分钟才能改变航向。
在今天的市场中,我知道我更愿意驾驶哪一个。
这篇博客由 Cline 工程主管 Andrin Foster 撰写。
关注我们 @cline 以获取更多关于未来发展的见解。


