怎样从一个产品视角来自顶向下思考之前从代码写起的技术实现的项目

回 遮望眼: 从代码倒推产品,可以先把"我写了什么"换成"用户得到了什么",大致按下面几步走。 1. 先用一句话说清楚这个项目解决谁的什么问题。不提框架、模块、数据结构,只说"谁在什么场景下,原来要花多久或做得很痛苦,现在变成什么样"。如果这句话说不清,通常是因为功能堆得多,但核心价值没想清楚。 2. 把用户路径走一遍。从用户第一次打开到拿到结果,一步一步列出来,每一步标注背后对应哪段代码。这一步能看出两件事:哪些代码是用户真正经过的,哪些是你为了实现方便写的内部逻辑,用户根本感知不到。 3. 区分必要和偶然。代码里有很多东西是技术选择的副产品,比如某个抽象层、某种存储格式、某个异步流程。逐个问一句:如果拿掉它,用户会不会受影响?不会的,就是实现细节,不要让它主导产品定义。 4. 找出项目成立的关键假设。比如"用户愿意手动上传数据""这个结果足够准确到能直接用""用户会每周回来用"。把假设写下来,再想办法用最便宜的方式验证,比如先手动做一遍给三个人用,看他们是否真的回来。 5. 用 MVP 的思路重画边界。假设只能保留一个功能,保留哪个?再反过来看技术实现:现在的架构是否支撑这个核心功能,还是在为一堆次要功能服务。很多项目的问题就是技术先长大了,产品却没有收敛。 6. 对照替代方案。用户现在不用你的东西,是怎么解决这个问题的?手工、Excel、别的工具,还是干脆不做?你的方案比它们好在哪,好到值得用户改变习惯,这个答案必须能用一两句话讲清楚。 7. 把技术决策翻译成产品取舍。比如选了某种方案,代价是什么:响应慢一点、离线不能用、只支持某类文件。把这些代价写成用户能理解的话,你就知道该不该接受,也知道要不要在产品上做补偿。 实操上,可以拿项目的 README 和最近的 commit 记录,试着反向写一份一页纸的产品说明,包括目标用户、核心场景、不做什么。写完后对照代码,看哪些模块在这份说明里找不到对应的位置,那些大概率就是可以砍掉或者降优先级的部分。 如果你愿意说说项目是做什么的、目标用户是谁,我可以帮你按上面的步骤具体过一遍。