FDE 模型是 Foundational(基础)、Developmental(发展)和 Evolutionary(演进)的缩写,是一个用于组织软件产品构建的分阶段框架。它将核心基础设施与功能增长和长期迭代分离开来,帮助团队避免产品开发中最昂贵的错误:过早、过多、且方向错误地进行构建。
大多数软件产品的失败,并不是因为想法不好,而是因为构建方式不当。团队在还没有稳定核心之前就冲刺开发功能。创始人在还没弄清哪些问题真正需要解决之前,就追逐路线图上的项目。代理商交付了一个能运行的产品,却没人能维护或扩展,六个月后只能彻底重写。
说实话?这种模式在 EdTech、FinTech 和 SaaS 领域不断重演。一家种子期公司融资 120 万美元,雇佣一个离岸团队,四个月内上线产品。然后他们获得了最初的 200 个用户,了解到一些关于这些用户实际行为的关键信息,却发现现有架构无法支持所需的变更。接下来的三个月,他们花钱重建已经付过钱的东西。同样的钱,花了两次。
FDE 模型的存在就是为了打断这个循环。它不是灵丹妙药。它需要纪律、诚实的范围界定,以及推迟那些当下看似紧急的功能的意愿。但对于认真应用它的创始人和产品负责人来说,它能产出维护成本更低、更容易迭代、且随着时间推移作为商业资产更具防御性的软件。
那么 FDE 到底代表什么?
FDE 将软件产品构建分为三个不同的阶段,每个阶段都有自己的目标、成功标准和团队姿态。在深入之前,值得先弄清楚每个阶段的真正含义。
F,即基础(Foundational)阶段,核心是正确地构建产品的骨架。这包括身份认证、数据模型、权限架构、API 结构,以及其他一切都将依附其上的核心用户流程。注意,基础阶段并不是精益创业意义上的 MVP。它比那更加审慎。MVP 可以是原型或“绿野仙踪”式的体验,而基础阶段是经过工程化设计的代码,范围严格限定在结构上必需的部分。
判断某项内容是否属于基础阶段的一个好方法是:如果把它移除,产品是否在机械层面无法运行?如果是,它就属于这里;如果不是,它很可能应该放到后面。这个过滤器很简单,但大多数团队仍然忽视它。
D,即发展(Developmental)阶段,是大多数团队以为自己是从这里开始的阶段。这是功能开发、UX 优化、集成工作,以及用户实际交互的产品可见层。FDE 模型的关键区别在于,发展工作是在一个稳定、经过深思熟虑的基础之上进行的。你不是在试图扩展一个原型,而是在一个从一开始就为扩展而设计的东西上进行构建。
这一阶段也是产品开始接触大量真实用户的时期。反馈循环收紧。团队会了解产品需要成为什么样子,而不仅仅是创始人当初想象的样子。这个差距几乎总是比预期的要大。
E,即演进(Evolutionary)阶段,是一场持久战。在这个阶段,产品会变成平台、增加 AI 驱动的功能、扩展集成,或开拓新的细分市场。演进工作要求在基础(Foundational)阶段做出的架构决策足够深思熟虑,因为你此时正在牵动你在最初做出的每一个结构性选择。每一个都是如此。
跳过或仓促完成基础阶段的公司,往往会发现演进工作需要痛苦的重建。而在基础阶段投入得当的公司,则会发现演进功能交付得更快、出问题更少。每当创始人告诉我他们“没有时间”把基础工作做对时,我都会想起这一点。
为什么大多数产品构建忽视了这一结构
快速交付的压力是真实存在的,它推动团队追求看得见的进展。一个登录界面看起来像进展。一个仪表盘看起来像进展。而一个带有清晰权限模型的可用数据库架构,在董事会正要求演示的创始人眼里,什么都不是。
这就造成了一种结构性激励,促使人们跳过或压缩基础阶段。开发者会顺从,因为范围由创始人掌控。结果就是一个产品在某个时刻之前运行得还算不错,一旦出了问题,修复成本将极其巨大。这不是预测。这只是我们一次又一次看到的事实。
还有一个咨询行业的问题值得直接指出来。许多代理机构按里程碑或按功能收费,而不是按成果收费。他们的经济激励是立即开始构建看得见的功能,这与一个要求他们把最初六到八周花在那些在演示中“不上镜”的基础设施上的框架格格不入。了解前沿部署工程师与软件代理机构之间的区别,可以帮助创始人选择那些优先考虑结构性思考而非“速度表演”的合作伙伴。
公平地说,并非所有代理机构都在玩把戏。有些确实是不懂。但激励机制就是如此,而不了解 FDE 的创始人无法让任何人为符合阶段要求的工作负责。他们最终会奖励错误的行为,因为他们不知道正确的行为是什么样子的。
我的建议?在签署任何构建协议之前先学会这些。而不是之后。
FDE 在真实构建中是什么样子
设想一位 FinTech 创始人,正在为小企业主构建一个现金流预测工具。他们手里有一份设计原型、一份已签署的代理机构协议,以及一个 16 周的构建时间表。
如果没有 FDE 视角,团队可能会把第 1 到 4 周花在 UI 上,第 5 到 8 周花在数据接入和银行集成上,第 9 到 16 周花在报表和提醒功能上。产品按时交付。然后创始人发现他们的权限模型无法支持多用户账户,而 60% 的目标客户都需要这一功能。重建需要十周时间,真正的上线因此被推迟。十周。就这么没了。
采用 FDE,结构则完全不同。第 1 到 5 周专注于基础阶段:账户、用户、组织和权限的数据模型;API 架构;为后续扩展而设计的银行集成脚手架;从第一天起就内置角色支持的认证体系。这些内容在演示中都看不到,但正是它们避免了那十周的重构。
第 6 到 13 周是开发阶段的工作:预测引擎、仪表盘 UI、报表和提醒逻辑。团队是在稳定的脚手架之上构建,因此集成点清晰且可预测。
第 14 到 16 周是软性的演进阶段规划:记录扩展点、梳理未来的集成机会、明确当前架构支持什么、以及要支持进一步成长还需要什么。这不是光鲜的工作,却是必不可少的工作。
同样是 16 周,长期结果却截然不同。说实话,这两条路径在长期成本上的差距并非微不足道。它往往决定了一个产品能否存活,还是一个在最糟糕的时机需要彻底重写。
FDE 如何与敏捷及其他框架契合
FDE 并不是敏捷或 Scrum 的替代品。它是位于冲刺方法论之上的一个结构层。你可以在每个阶段内运行两周冲刺,也可以在每个阶段内使用看板。FDE 模型并不规定阶段内部的工作如何开展,只规定阶段之间如何衔接,以及每个阶段负责产出什么。
有些团队把 FDE 和瀑布式开发混为一谈,因为它暗示了顺序性的阶段。这是一种误读。在基础阶段,你可以快速迭代架构决策。开发阶段会主动吸收用户反馈。演进阶段从定义上就是自适应的,会对市场信号做出响应。这种顺序并非僵化的流水线,而是一种尊重结构性决策之间依赖关系的成熟度演进。
更贴切的类比是建筑施工。你要先浇筑地基,再搭建墙体框架,不是因为死板,而是因为墙体依赖于地基的正确性。在搭建框架期间,你仍然可以调整平面布局。结构成型之后,甚至还能改动一些东西。但你不能毫无代价地移动承重墙,而有些后果,避免它比修复它便宜得多。
我认为这个类比对大多数受众——包括技术背景的受众——都相当适用。
你的当前构建缺失基础阶段的信号
如果你已经处于开发中期怎么办?这是个合理的问题。有一些可靠的迹象表明你的产品缺失了恰当的奠基阶段,而其中大多数迹象就摆在明面上。
功能开发不断破坏无关的部分。如果每添加一个新功能,都会在产品中看似完全无关的部分持续引入 bug,那么数据模型或 API 架构很可能设计得不好。你在每个迭代周期都在为架构债务买单。这笔账永远算不平。
你的团队无法快速让新工程师上手。一个结构良好的奠基阶段会产生易于学习的代码。如果每个新开发者都需要三个月才能产出成果,说明系统过于纠缠。就我个人而言,我会把新人的上手周期作为衡量奠基质量的直接指标。
你的路线图事项不断因技术阻碍而被推迟。这是我们最常见到的信号。当未来不断被过去的决策所阻塞时,你正在承受仓促奠基的代价。这种代价会复利累积,不会自行消解。
权限和多租户像是事后才想起来的补丁。这些几乎总是奠基层面的问题。如果在早期没有这样对待它们,事后改造既昂贵又有风险。不是不可能,只是昂贵。
这一切并不意味着你需要推倒重来。它只是意味着,在开发阶段能够高效推进之前,你需要一段有意识的奠基修复期。对于希望从一开始就正确扩展的早期公司,面向初创公司的前沿部署工程提供了一种与 FDE 思维天然契合的模式,专门引入经验丰富的工程领导力,在错误决策的代价变得难以承受之前,把这些结构性决策做对。
把这件事做对的成本论证
项目管理协会(Project Management Institute)和麦肯锡(McKinsey)都做过研究,向数百位高管和项目负责人询问了大规模软件构建的情况。麦肯锡的数据触目惊心:大型软件项目平均超支 45%,交付的价值比预期少 56%。当然,这些数字反映的是企业级项目。但其根本原因适用于任何规模:团队在早期对结构性决策投入不足,然后在整个构建过程中以复利形式为此买单。
对于一位在产品构建上花费 40 万美元的创始人来说,压缩或跳过奠基阶段并不能省钱,只是把成本推迟了。而被推迟的成本往往在最糟糕的时刻到来——融资时、转型时,或第一次认真尝试增长时。你知道那是什么滋味。
我的看法?FDE 模式不是保证。即使你有意投入,架构仍然可能出错。市场会变,需求会变。不是所有问题都能预防。
但以 FDE 纪律构建的产品,修复成本更低、更容易销售,也更有能力在早期增长的种种意外中存活下来。这比快速上线然后指望地基稳固是更好的选择。
而地基通常并不稳固。
常见问题
FDE 模式适合预算有限的早期初创公司吗?
适合,而且可以说对早期团队更为重要,正是因为他们承担不起返工的代价。基础阶段并不需要庞大的团队或漫长的时间线,它需要的是有意识的范围界定,以及在核心稳固之前推迟可见功能的纪律。对于一个聚焦的产品,结构合理的基础阶段在小团队情况下最短只需四到六周。
FDE 模式如何应对构建过程中的需求变更?
FDE 对需求变更的处理方式取决于你所处的阶段。基础阶段的变更在早期是预期之内且成本相对较低的。开发阶段的变更通过冲刺迭代来处理,与标准敏捷实践类似。演进阶段的变更则是产品对市场信号的自然响应。该模式并不假设需求是固定不变的,而是假设结构性决策一旦正确做出,就能降低未来适应变更的成本。
FDE 模式可以应用于已经部分构建完成的产品吗?
可以,而且这是很常见的情况。第一步是进行一次诚实的技术审计,评估当前产品在 FDE 成熟度光谱上所处的位置。如果基础阶段被压缩或跳过,通常需要一段有意识的架构修复期,之后开发工作才能高效推进。这并不等同于完全重写,但确实需要受保护的工程时间,并与利益相关者就可见进展可能暂时放缓的原因进行坦诚沟通。
什么样的团队最适合执行 FDE 结构的构建?
基础阶段最受益于资深工程师的参与,尤其是具有数据模型、API 契约和权限系统设计经验的工程师。开发阶段可以纳入更广泛的团队,包括中级开发者、UX 设计师和 QA。演进阶段通常需要具备敏锐市场直觉的产品负责人,以及深入理解架构的工程师。那些先安排初级开发者、后期才“资深化”的外包机构,往往会产生最糟糕的基础阶段成果。
对于一个典型的 SaaS 产品,FDE 的每个阶段应该持续多长时间?
没有放之四海而皆准的答案,但大致比例适用于大多数构建项目。奠基阶段通常占初始构建时间线的 25% 到 35%。开发阶段占据构建的大部分,通常占时间线的 50% 到 60%。演进工作则是持续进行的,没有固定的终点。对于一个为期 20 周的初始构建,这意味着奠基阶段需要四到七周,开发阶段需要十到十二周,剩余时间用于过渡规划和早期演进工作的范围界定。