第02章 验证优先:在写代码之前先找到付费用户
第02章 验证优先:在写代码之前先找到付费用户
“大多数创业失败不是因为产品做不出来,而是因为做出来了没人要。” —— Y Combinator 格言
工程师最大的创业错误是:先花3个月把产品做出来,然后才去找用户。
正确的顺序是反过来的:先找到愿意付钱的用户,再写代码。
本章教你如何在写一行代码之前,就验证你的产品是否值得构建。
2.1 为什么验证比构建更重要
# 两种路径的对比
PATH_A_WRONG = {
"名称": "先构建后验证(工程师的本能)",
"时间": "3-6个月",
"流程": [
"1. 有了想法(兴奋)",
"2. 开始写代码(舒适区)",
"3. 3个月后上线",
"4. 发现没人用或没人付钱",
"5. 沮丧地转型或放弃",
],
"成功率": "5%",
"代价": "6个月的时间和精力",
}
PATH_B_CORRECT = {
"名称": "先验证后构建(创业者的思维)",
"时间": "2-4周验证",
"流程": [
"1. 有了想法",
"2. 制作Landing Page(1-2天)",
"3. 与20个潜在用户交谈",
"4. 尝试Pre-sell(收取预付款)",
"5. 验证通过 → 开始构建",
"6. 验证失败 → 2周内放弃,换下一个",
],
"成功率": "30%+(验证过的想法)",
"代价": "2-4周时间",
}
# 核心原则:
# 你花在验证上的每1周,可以节省花在错误产品上的1个月
2.2 客户发现:20个访谈
目标:在2周内与20个目标用户交谈,了解他们真正的痛点。
# 客户发现访谈脚本框架
CUSTOMER_DISCOVERY_SCRIPT = """
客户发现访谈脚本(30分钟)
开场(2分钟):
"感谢你的时间。我在研究[行业/职业]的人的工作方式,
想了解你日常工作中遇到的挑战。我不会推销任何产品,
只是想聆听你的经历。"
第一部分:了解背景(5分钟)
1. 你在公司是什么角色?主要职责是什么?
2. 你团队规模多大?使用什么工具?
第二部分:挖掘痛点(15分钟)
3. 你工作中哪件事最让你感到烦躁或浪费时间?
4. 上周你在哪件事上花了比预期更多的时间?
5. 如果有魔法棒,你最想自动化哪项工作?
6. 你现在用什么方法处理[你关注的问题域]?
7. 这种方法最让你不满意的是什么?
关键技巧:
- 追问"为什么",不要停在表面答案
- 不要提你的产品想法(这时候)
- 关注他们做了什么,不是他们说他们会做什么
第三部分:验证(5分钟,只在有具体想法时使用)
8. 我在想做[一句话描述]这样一个工具。
你会用它来做什么?
9. 你现在为类似工具付多少钱?
10. 如果这个工具真的解决了你说的问题,
你愿意为它付多少钱/月?
收尾(3分钟):
"你提到的[X问题]很有意思,还有没有你认识的人也有类似困扰?
我可以请你帮我引荐吗?"
"""
def analyze_interviews(interviews: list[dict]) -> dict:
"""
分析访谈结果,识别共同痛点
"""
pain_frequency = {}
for interview in interviews:
for pain in interview.get("pain_points", []):
pain_frequency[pain] = pain_frequency.get(pain, 0) + 1
# 按频率排序
sorted_pains = sorted(
pain_frequency.items(),
key=lambda x: x[1],
reverse=True
)
# PMF信号判断
top_pain_count = sorted_pains[0][1] if sorted_pains else 0
total_interviews = len(interviews)
signal_strength = top_pain_count / total_interviews
return {
"top_pain_points": sorted_pains[:5],
"signal_strength": f"{signal_strength:.0%}的受访者提到同一痛点",
"recommendation": (
"强信号,值得构建" if signal_strength >= 0.6
else "中等信号,继续访谈" if signal_strength >= 0.4
else "弱信号,重新定向"
),
}
寻找受访者的5个方法:
1. LinkedIn(最高效的B2B渠道)
→ 搜索目标职位,发送个人化消息:
"你好,我在研究[职位]的工作挑战,想请你喝杯咖啡(礼品卡),
聊30分钟。我不会推销任何东西。"
2. Slack/Discord社区
→ 几乎每个行业都有私密Slack群组
→ 在#general频道说:"做用户研究,有没有人愿意聊30分钟?"
3. 你自己的网络
→ 前同事、校友、朋友的朋友
→ "我知道你做XX,我在研究XX领域,能聊聊吗?"
4. Reddit
→ 找到对应行业的subreddit
→ 发帖:"做用户研究,寻找[职业]志愿者"
5. 付费用户研究平台
→ UserInterviews.com: $30-50/人
→ 适合有预算时快速找到精准目标用户
2.3 Landing Page验证
在产品存在之前,先测试用户的反应。
# Landing Page的核心结构
LANDING_PAGE_TEMPLATE = {
"标题(Hero)": {
"目标": "3秒内告诉用户你能帮他们解决什么",
"公式": "[帮助][目标用户][解决][痛点]",
"示例": "帮助律师事务所节省80%的合同审查时间",
},
"副标题": {
"目标": "补充说明你怎么做到的",
"示例": "AI自动检测合同风险条款,生成审查报告,支持中英双语",
},
"CTA(行动号召)": {
"目标": "测试用户付费意愿",
"选项": [
"加入等待列表(测试需求)",
"早鸟优惠预购(测试付费意愿)",
"免费试用14天(测试注册意愿)",
],
"最强测试": "收取预付款(哪怕只是$1)",
},
"社会证明(可以伪造?)": {
"说明": "早期可以用访谈引言代替真实评价",
"示例": "'我每周花8小时审合同,要是有这个工具就好了' —— [职位],[公司类型]",
},
"痛点呼应": {
"目标": "列出用户说过的3个核心痛点",
"格式": "✗ 现状(痛点) → ✓ 用了你的产品之后(收益)",
},
}
# 关键指标:什么算验证通过?
VALIDATION_METRICS = {
"等待列表注册率": "> 10%的访客留邮件 = 强需求信号",
"CTA点击率": "> 5%的访客点击CTA = 有兴趣",
"预购转化率": "> 1%的访客付款 = 非常强的PMF信号",
"访谈愿意度": "> 20%的访客接受访谈邀请 = 有共鸣",
}
快速搭建Landing Page(1天内完成):
# 工具选型
LANDING_PAGE_TOOLS = {
"最快(无代码,1-2小时)": [
"Carrd.co ($19/年)",
"Framer",
"Notion公开页面(免费)",
],
"次快(有代码,半天)": [
"Vercel + Next.js + Tailwind",
"GitHub Pages + 简单HTML",
],
"不推荐(太慢)": [
"WordPress",
"Webflow(学习曲线高)",
],
}
# Landing Page的唯一目标:
# 收集邮件 + 可选地收取预付款
# 不要做完整产品介绍,保持极简
# 流量来源
TRAFFIC_SOURCES = {
"免费快速": [
"发到相关Reddit",
"LinkedIn个人帖子",
"Hacker News: Ask HN(我在做XX,有人感兴趣吗?)",
"相关Discord/Slack",
],
"付费快速": [
"Facebook/Google Ads $50预算测试",
"Twitter/X赞助推文",
],
}
2.4 Pre-sell:最强的验证手段
真正的验证是有人掏出信用卡。
# Pre-sell脚本(适用于访谈结束时)
PRE_SELL_SCRIPT = """
Pre-sell对话脚本
背景:你已经访谈了这个人,他表达了强烈的痛点
步骤1:确认痛点
"你提到[具体痛点]每周浪费你X小时,这对你来说是一个
很大的问题,对吗?"
步骤2:展示解决方案(简洁)
"我正在构建一个工具,能帮你[具体解决方式]。
[如果有演示:展示mockup或流程图]"
步骤3:询问价值感知
"如果这个工具帮你把[痛点]从X小时减少到Y分钟,
对你来说值多少钱?"
(让他先说,不要报价)
步骤4:提出预购
"我还在开发中,预计[X周]后可以给你试用。
如果你现在以创始用户价格$[X]/月预购,
我会确保你在第一批用户中,并提供[6个月锁定价格/直接访问我]。
你愿意今天预购吗?"
成功信号:
✅ 直接说"是,怎么付款"
✅ 问"能看看demo/截图吗"
✅ 问"上线后能通知我吗"
失败信号:
❌ "如果做出来了,我可能会用"(模糊承诺=不会用)
❌ "太贵了" → 追问:"什么价格你会买?"
❌ "我需要和老板商量" → 追问:"有什么顾虑我现在可以帮你解答?"
"""
# Pre-sell工具
PRESELL_TOOLS = {
"收款": "Stripe Payment Links(最快,不需要网站)",
"预购页面": "Gumroad(简单)",
"合约": "简单邮件确认即可,早期不需要正式合同",
}
2.5 PMF信号识别
# Product-Market Fit(产品市场契合度)的早期信号
PMF_SIGNALS = {
"强信号(有任意一个,继续)": [
"有人在没有你主动推销的情况下付了钱",
"用户在使用产品后自发推荐给同事",
"用户在功能不完善时仍坚持使用,甚至帮你写反馈",
"Pre-sell转化率 > 20%(访谈受访者中的比例)",
],
"中等信号(多个存在,谨慎乐观)": [
"等待列表超过100人",
"多个用户主动问'什么时候上线'",
"访谈中 > 60%的人提到相同痛点",
"有用户愿意支付你报价的100%(没讨价还价)",
],
"弱信号(调整方向)": [
"用户说'很有意思'但不愿意留邮件",
"用户说'如果更便宜我可能会用'",
"访谈反馈模糊,痛点不集中",
"自己的朋友和家人说'很好'(可能只是礼貌)",
],
"放弃信号": [
"20个访谈后,没有人愿意预购",
"Landing Page有1000个访客,但0人留邮件",
"你发现竞争对手已经做了完全一样的产品且做得很好",
],
}
def assess_validation_status(metrics: dict) -> str:
"""
基于验证指标判断是否该开始构建
"""
presell_count = metrics.get("presell_count", 0)
waitlist_count = metrics.get("waitlist_count", 0)
interview_count = metrics.get("interview_count", 0)
strong_pain_rate = metrics.get("strong_pain_interview_rate", 0)
if presell_count >= 3:
return "✅ 强信号:开始构建!你有付费意向的客户了"
if presell_count >= 1 and waitlist_count >= 20:
return "✅ 信号足够:开始MVP构建,保持与等待列表用户沟通"
if waitlist_count >= 50 and strong_pain_rate >= 0.6:
return "🟡 中等信号:继续访谈,尝试pre-sell,还不要大规模构建"
if interview_count < 20:
return "⏳ 数据不足:继续访谈,至少需要20个"
return "🔴 信号弱:调整想法或方向,不要开始构建"
本章小结
五个核心认知:
-
验证比构建更重要:工程师的本能是写代码,但创业者的正确顺序是先验证再构建;2周的验证可以节省3个月的错误投入
-
访谈不是为了推销,是为了学习:20个诚实的访谈比1000个用户反馈更有价值;让用户说痛点,不要引导他们说你想听的话
-
Landing Page在1天内可以完成:不需要产品就可以测试需求;等待列表>10%转化率是强信号
-
Pre-sell是最强的验证:钱是信任最强的表达;哪怕只有3个人预购,也比100个"我会用"更有价值
-
PMF信号要主动识别:自发推荐、无条件付款、主动跟进——这些信号出现时全力加速;弱信号时不要硬撑
核心行动:
# 本周行动:
# 1. 在LinkedIn上找10个目标用户,发访谈邀请
# 2. 用Carrd制作一个极简Landing Page(今天)
# 3. 把Landing Page发到2个相关社区
# 4. 目标:本周完成5个访谈,收集50个邮件
本章提示词模板
模板一:生成访谈问题
我正在构建一个[产品描述],目标用户是[具体职位/角色]。
请帮我生成一套客户发现访谈问题(15-20个问题),要求:
1. 前半部分:了解他们的工作流程和当前痛点(不提我的产品)
2. 中间部分:深挖我最关注的问题域([具体问题域])
3. 后半部分:测试对我产品概念的反应(不直接推销)
每个问题请附带:
- 这个问题想获得什么信息
- 如何追问(用于深挖表面答案)
- 警示信号(什么样的回答说明方向错了)
模板二:Landing Page文案生成
请帮我写一个Landing Page的文案,用于验证以下产品:
产品概念:[一句话描述]
目标用户:[具体描述]
核心解决的痛点:[3个具体痛点]
核心价值主张:[用户用了你的产品后能获得什么]
预计定价:[$X/月]
请生成:
1. Hero标题(≤10个字,直击痛点)
2. 副标题(1-2句,说明怎么实现)
3. 3个痛点→收益对比(格式:✗ 现状 → ✓ 有你之后)
4. CTA按钮文案(3个变体)
5. Social proof占位文案(访谈引言风格)
6. FAQ(3个最常见的顾虑,含解答)