独立开发:不是想清楚了再做,而是边做边确定

Decide while building, not before

一个人用 AI 做产品以后,我最不适应的一件事,是很多东西还没完全想清楚,开发就已经开始了。

以前在团队里,我更习惯需求相对明确、设计完成,再进入开发。现在却经常是先确定一部分,做出来,再根据真实结果补下一层。

一开始我会觉得:这是不是流程不够完整?

做了一段时间后,我反而越来越觉得,独立开发不是先把一切想清楚,而是知道什么必须现在确定,什么可以边做边确定。

1. 有些东西,越早想清楚越好

不是所有事情都适合边做边改。

有些决定一旦错了,后面会牵一大片。

比如:

  • 产品到底给谁用
  • 解决什么核心问题
  • 这一版最重要的使用场景是什么
  • 核心对象和数据之间是什么关系
  • 主流程怎么走
  • 哪些东西明确不做
  • 安全、权限、合规这些不能出错的基础规则

这些地方,我现在反而会比以前更谨慎。

因为如果底层方向错了,AI 写代码再快也只是更快地把错误做大。

2. 有些问题,不做出来其实很难回答

另一类问题就完全不同。

比如:

  • 结果页应该先显示结论还是依据?
  • 一个操作应该用弹窗,还是单独打开一个页面?
  • 哪些内容应该默认展开?
  • 某个功能到底值不值得单独存在?

这些问题可以在文档里讨论很久,但真实页面出现以后,答案可能马上变得很明显。

  • 信息放进去才知道挤不挤。
  • 真的点一遍才知道流程顺不顺。
  • AI 结果跑出来以后,才知道用户到底需要什么解释。

所以这类问题,我现在不会强迫自己在开发前得出一个“最终答案”。

先有一个合理方案,做出来,再判断。

越依赖真实内容和真实使用才能判断的事情,越没必要过早锁死。

3. 先走通一个真实的流程,不要一下铺开整个产品

这个改变对我也挺重要。

以前容易按功能模块推进:

这个页面做完,再做那个页面;列表做完,再做详情;功能一个个往计划里划掉。

现在我更愿意先选一个用户真的会完成的动作,从头走到尾。

比如做任务管理工具,不急着先完成:

筛选、搜索、通知、设置、各种列表。

先把最基本的一条路跑通:

创建任务 → 找到它 → 修改状态 → 保存成功。

因为一条完整路径跑起来以后,会一次暴露很多问题:

  • 需求本身合理吗
  • 数据够不够
  • 步骤顺不顺
  • 页面放入真实内容以后是不是太重
  • 用户完成以后知不知道下一步
  • 技术结构有没有明显问题

有些问题,真的只有产品活起来以后才看得到。

4. 做出来以后,别马上继续加东西

这可能是我现在最需要提醒自己的地方。

AI Coding Agent 特别容易让开发一直往前滚。

一个任务完成,再给下一个。

一个页面做好,再补三个功能。

以前团队里的需求评审、设计评审、技术评审、测试,本来会自然让项目停一下。

一个人做产品以后,这些停顿都消失了。

所以需要自己主动停下来看看。

我现在至少会换几个角度:

产品

这件东西真的值得存在吗?

用户

第一次使用的人知道自己在哪里、下一步做什么吗?

设计

重点清楚吗?几个页面放在一起还像同一个产品吗?

工程

当前实现是在支撑后续,还是已经开始制造麻烦?

如果是 AI 产品,还要再看:

  • 输出真的好吗
  • 错了的时候能不能发现
  • 速度和成本是否合理

过去这些问题会有不同的人来问。

现在得自己记得问。

5. 每做完一轮,把已经想清楚的东西留下来

这一步我以前很容易跳过。

功能跑通了,就觉得可以继续了。

结果做久以后,产品底下会积一层东西:

  • 过期的需求;
  • 临时的数据结构;
  • 已经不用却还存在的组件;
  • 试过后来放弃,但文档里还写着的方案。

所以现在我觉得,一轮真正结束,不只是“代码能跑”。

还要把这一轮已经确认的东西整理一下。

可能只是:

  • 更新几句产品定义
  • 删掉已经失效的需求
  • 改一下数据模型
  • 把重复出现的东西整理成公共组件
  • 删除临时代码
  • 补测试
  • 记下一个重要决定为什么这么做

不一定需要写很多文档。

但下次继续的时候,我和 AI 都不应该重新猜一遍过去发生过什么。

6. 下一步,也不一定是继续加功能

这也是我最近慢慢改变的一个习惯。

很容易把产品进度理解成:

A 做完 → B → C → D。

但真实开发里,下一步最值得做的事情有时是:

  • 删掉一个其实没价值的功能
  • 把主流程缩短
  • 统一已经长得不一样的页面
  • 重新处理一个反复出问题的数据结构
  • 找人真正用一次
  • 降低 AI 成本
  • 补可靠性

所以现在我越来越少用“今天又做了多少功能”判断进展。

我更关心:

这一轮以后,产品有没有比上一轮少一点模糊?

这可能是我从团队开发转到独立开发以后,最大的流程变化之一。

不是以后都不用提前想。

也不是“反正 AI 做得快,先做再说”。

而是把不同问题放到更适合它们被回答的时间:

越难改、越高风险的事情,越早确定。

越需要真实产品才能判断的事情,允许它晚一点成熟。

这样看,“边做边调整”就不一定意味着流程失控。

真正危险的是:什么都没有想清楚,却因为实现太快,一路往前做。

最近我就是在这个过程中又撞上了一个很具体的问题:

功能已经做了很多,产品却非常丑。

我原本以为只是 UI 最后没处理好。

后来发现,很多本来属于设计的问题,其实早就在开发过程中被默默决定了。

下一篇想继续写这个:

一个人用 AI 做产品,设计到底应该什么时候介入?