2023年的一项调研显示,独立SaaS项目从启动到获得第一个付费用户的平均周期是14个月。但Pamilerin Idowu——一位连续创业者、Surface-First Engineering(表面优先工程)概念的提出者——在2026年4月的Medium文章中抛出了一个更扎心的数据:超过80%的Solo Founder(独立创始人)项目从未活到用户可见的那一天。死因不是技术选型错误,不是资金断裂,而是一种近乎本能的开发顺序:先建数据库,再写界面。
Idowu把这叫做"inside-out default(由内而外的默认模式)"。工程师打开IDE的第一件事是建模数据表、设计迁移脚本、配置CI/CD流水线、争论文件夹结构。三个月后,系统架构无可挑剔,测试覆盖率漂亮,但没有一个真实人类见过这个产品的样子。
数据库是舒适区,界面是暴露区
Idowu的观察很毒:工程师逃避界面不是懒惰,是心理防御。数据层是可控的——字段类型不会抱怨,索引优化没有情绪,重构十次也没人知道。但界面不一样。用户三秒就会形成判断,按钮点下去没反应,人家直接关闭标签页,永不再来。
他在文中用了个精准的类比:界面是脆弱性的聚集地。这种脆弱让工程师无意识地把"打地基"无限前置,用"等技术债还清"无限推迟那个必须面对用户的时刻。
结果是一种诡异的自我欺骗循环。开发者告诉自己"等ORM选好再写前端",然后花两周比较Prisma和Drizzle;告诉自己"等权限系统完善再设计仪表盘",然后陷入RBAC(基于角色的访问控制)和ABAC(基于属性的访问控制)的学术辩论。六个月过去,GitHub提交历史绿得像草原,产品却像薛定谔的猫——理论上存在,观测时坍缩为无。
Surface-First:把用户可见的东西放到第一天
Idowu提出的替代方案叫Surface-First Engineering。核心规则简单粗暴:用户第一天能看到什么,你就第一天写什么。不是原型,不是线框图,是能点击、能反馈、能传递价值的最小表面。
他举了个具体案例。假设要做一款给自由职业者用的发票工具,传统路径是先设计Invoice表、Client表、Payment表的关系,再写REST API,最后才考虑"新建发票"按钮长什么样。Surface-First路径是:Day 1就做一个单HTML文件,里面只有一个表单——客户邮箱、金额、描述——提交后把数据存进Google Sheets,同时触发一封手动写的邮件。
这个"表面"丑陋、脆弱、无法扩展,但它完成了价值闭环:用户输入信息,系统产生结果。Idowu强调,这个闭环的存在本身比闭环的技术实现重要100倍。因为只有在闭环里,你才能观察到用户是在哪一步犹豫、哪一步困惑、哪一步直接放弃。
数据层的优化可以等。索引慢?用户不到100人时感觉不到。权限复杂?先用硬编码的邮箱白名单。Idowu的原话是:「你的数据库设计能优雅地处理100万并发,但你的界面设计连1个用户都留不住,这就是归零风险。」
从"能运行"到"有人用"的死亡鸿沟
Medium文章里有个细节特别狠。Idowu问读者:你GitHub上的私有仓库数量,除以实际获得付费用户的项目数量,商是多少?他自曝的数字是7:1。七个"架构完美"的项目,一个有人付钱的东西。
这7:1的背后是一个被忽视的真相:SaaS产品的死亡 rarely 发生在技术层面,几乎总是发生在认知层面。开发者把"我能建"等同于"有人要",把"系统能跑"等同于"产品成立"。数据库优先的开发模式,本质上是在用技术确定性替代市场不确定性——既然我不知道用户要什么,至少我能确定第三范式有没有遵守。
Idowu提到一个反直觉的现象。那些最终跑出来的Solo Founder,早期代码往往"很脏"——硬编码、没测试、技术债堆成山。但他们的共同点是:第一周就有用户看到了界面,第一个月就有真实反馈进来。脏代码+真实用户,干净架构+零用户,市场选择了前者。
他引用了一位匿名创始人的话:「我花了三个月把数据库从PostgreSQL迁到CockroachDB,因为'未来可能需要全球分布式'。三个月后我有了零用户和一份完美的分片策略文档。我的竞争对手用Airtable当后端,已经有了200个付费客户。」
Surface-First的操作手册
Idowu在文章后半部分给出了可执行的检查清单,针对Solo和小团队场景:
第一,定义"表面单元"。不是MVP(最小可行产品),而是MVS(Minimum Viable Surface,最小可行表面)——用户完成一次价值交换所需的最少界面元素。通常是一个表单+一个结果页,或一个仪表盘+一个操作按钮。
第二,禁止"基础设施周"。第一周不准碰数据库选型、不准搭CI/CD、不准比较云服务。工具限制为:前端用你最熟的框架,后端用Serverless或现成的BaaS(Backend-as-a-Service,后端即服务),数据库用SQLite或Airtable。目标不是"能扩展",是"明天能给用户演示"。
第三,建立"表面-反馈"循环。每48小时必须有一个真实用户(哪怕是朋友)操作你的界面,观察哪里停顿、哪里皱眉、哪里说"等等,这是什么意思"。Idowu强调:用户不会读你的代码,他们只读界面。界面上的困惑就是产品的死刑判决。
第四,延迟优化。性能问题?等真有100个并发再说。安全合规?等真有企业客户提出SOC 2要求再说。Idowu的原话很直接:「 premature optimization(过早优化)是万恶之源,但 premature infrastructure(过早基础设施)是独立开发者的头号杀手。」
他特别警告了一种伪装成勤奋的拖延:研究。读遍所有React状态管理方案的对比文章,比较完Supabase和Firebase的定价模型,画出完美的ER图——这些活动消耗的认知资源和写代码一样多,但产出是零风险的幻觉。Idowu的建议是:用Google Sheets当数据库的决定,应该在做完第一个界面后的10分钟内做出。
当表面倒逼内部
文章最有争议的部分是Idowu对"技术债务"的重新定义。他认为,Solo Founder的债务分两种:用户看不见的债务(数据库Schema混乱)和用户看得见的债务(界面流程断裂)。前者可以欠,后者不能。
他的逻辑是:Schema混乱最多让你未来重构痛苦,但界面断裂让你没有未来。一个极端例子是,他建议早期用localStorage存用户数据,直到有人真的抱怨"我换电脑了数据没了"——这时候你才证明了两件事:一,有人在乎你的数据;二,有人用了足够久到换电脑。这是幸福的烦恼。
Idowu描述了一种"表面倒逼架构"的动态。当你被迫先写界面,你会很快发现哪些数据真的需要持久化、哪些只是临时状态、哪些关系是核心约束。一个给200人用的发票工具,和给2万人用的,Schema完全不同——但你在有200人之前,不可能知道"不同"在哪里。
他引用了一位Y Combinator校友的反馈:「我们Batch里活下来的公司,第一周都在用假数据演示。不是因为他们懒,是因为他们懂:在知道用户要什么之前,任何'真实'的数据库设计都是过度设计。」
文章结尾,Idowu回到那个7:1的比例。他说这个数字正在改善——不是因为技术变简单了,是因为越来越多Solo Founder开始接受一种不舒服的工作方式:在准备好之前暴露,在完善之前发布,在自信之前验证。
他最后一句话是:「你的数据库不会因为你晚两周设计而背叛你。但你的潜在用户会因为你晚两个月见面而永远消失。」
所以问题变成:你现在的项目,用户最早能在哪一天看到它的样子?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.