把自己作为方法:自研产品如何从“做出来”走到“每天都用”

把自己作为方法:自研产品如何从“做出来”走到“每天都用”

从微信里的 OpenClaw 开始

OpenClaw 我很早就装好了。它一直在那里,能力也没缺过,但我并没有用得特别好,也谈不上顺畅。它更像一个我知道、却没有真正进入生活的工具:需要用的时候我会想起它,可想起之后要专门打开、要切换到一个单独的地方、要重新把自己放进它的语境里,这几步小小的动作累积起来,就足够让我在大多数时候选择算了。

最近几天我把它接入了微信,变化来得很直接:我明显更愿意用它,也觉得体验好了很多。值得停下来想清楚的是,这段时间它的功能几乎没有增加,我能让它做的事情和之前是同一批。真正变化的,是我和它之间那段距离。

我后来把这件事理解为一个关于摩擦的问题。微信是我本来每天都停留的地方,消息在这里,联系人在这里,注意力也默认落在这里。当 OpenClaw 出现在微信里,它就不再要求我先离开现在的地方、再去找它,而是直接出现在我已经在的地方。想到它和用上它之间,原本隔着好几个需要主动跨过的步骤,现在几乎被压平成一个动作。想到、使用、拿到结果,这条链路被显著缩短了。

这些步骤单独看都很小。打开一个应用要几秒,回忆用法要几秒,把当前正想的事重新组织成它能接受的输入又要几秒。任何一步都不足以劝退我,但它们叠加在“我本来只是顺手想处理一件小事”这个念头之前。一个念头越轻,它能承受的前置成本就越低。很多本可以交给工具的小事,就是在这几秒的犹豫里被我重新捡回去手动做掉,或者干脆放弃了。低摩擦入口真正省下的不是那几秒钟,而是让我不必在每次使用前都重做一遍“值不值得为它切换一次”的决定。

我想强调这次变化的性质,因为它很容易被归错类。我没有给 OpenClaw 增加新能力,没有让它更聪明,也没有扩展它的任务边界,改变的只是它出现的位置,以及我够到它的方式。这是一次纯粹的体验变化,而不是功能变化。可正是这次不涉及任何功能的变化,实实在在地改变了它在我生活里被使用的频率。功能清单的长短,和一个东西到底会不会被用起来,是两个不同的坐标轴。

这里容易被简化成一句“体验很重要”,但我想说得更具体。能力决定一个工具在理论上能做什么,摩擦决定它在现实中会被用多少次。一个功能再完整的系统,如果每次调用都要付出额外的心理成本,它的价值就会卡在“可用”而非“在用”。价值不是在功能写完那一刻产生的,而是在每一次真实使用里被一点点兑现的;没有使用,功能只是一种尚未变现的可能性。

我愿意把能力和使用分成两种东西看。能力是存量:它写在代码里,做完就一直在,不会因为没人用而减少。使用是流量:它只在有人真的把工具用起来的那些时刻发生,一旦停止就归零。我们习惯为存量骄傲,因为它看得见、留得住;但一个工具对生活的实际影响,几乎完全由流量决定。过去我把大部分精力投在把存量做大,默认它迟早会转化成流量,而这次微信入口让我看到,这中间的转化根本不是自动的,它取决于我有没有认真对待那段把能力变成使用的距离。

这次经历还悄悄改变了我评价工具的方式。以前我问它能做多少事、功能全不全;现在我更在意它有没有从一件“我需要专门去做的事”,变成一件“我几乎不假思索就会做的事”。真正被用起来的工具,往往是那些消失进习惯、不再需要我为使用它下决心的工具。一个还需要我不断提醒自己去用的东西,无论它多强,都说明它和我的生活之间还隔着没被填平的距离。这一步我先记下,后面会回头追问:我自己觉得顺,能不能直接推断出所有人都会觉得顺。

做完不等于做成

作为一个长期写后端的人,我过去默认的验收标准很清楚:功能实现了,逻辑正确,接口稳定,测试通过,系统不出错。按这套标准,一个东西一旦“做完”,任务就结束了。OpenClaw 这件小事让我意识到,这套标准回答的是“它能不能工作”,而不是“它有没有真的在我的生活里起作用”。

这是两个不同的问题。功能正确是关于系统内部的:给定输入,它是否给出预期输出。产品有效是关于系统之外的:它是否被一个真实的人,在真实的场景里,反复地、自愿地用起来,并因此得到了想要的结果。前者可以在代码里被验证,后者只能在使用行为里被验证。我可以写完所有功能,却完全说不清后一个问题的答案,因为答案根本不在代码里。

对工程师来说,“代码完成”是一条格外有诱惑力的假终点线。它清晰、可判定、有成就感:功能被逐项划掉,测试变绿,提交合并,一切都在说任务结束了。这套反馈即时而确定,而“有没有真的在生活里起作用”的反馈是缓慢、模糊、经常令人不安的。于是我们很自然地停在能被确认的地方,把那条更难回答的线默默当作已经越过。做完之所以常被误当成做成,不是因为我们不知道区别,而是因为做完这一端更容易衡量。

我做过不少给自己用的东西,很多的处境都类似:它们“做完”了,却没有“做成”。它们静静待在那里,功能齐全,却几乎不被打开。只看代码,这些项目都算完成;看它们在我一天里被使用的次数,它们和从没做过区别不大。这中间的落差,就是“做完”和“做成”的落差。

所以我想把自研系统的验收标准往后挪一步:代码完成只是中间态,真正的验收发生在它进入日常并被持续使用之后。这里我要很小心,不去编造任何数字。我不会说使用量涨了多少、留存提高了多少,因为我没有这样的数据,也不需要靠数据来支撑这个判断。我用的证据更朴素,就是使用本身是否真实、持续地发生。一个东西如果我每天都会不自觉地打开,它就通过了验收;如果我要提醒自己、说服自己才会去用,那不管它多完整,都还没有做成。

用使用行为作证据,好处是它很难自欺。我可以说服自己一个项目做得很好、设计得很合理,却没办法长期骗自己每天去用一个其实不想用的东西。自愿的、重复的使用是一种诚实的信号:它不需要我额外的意志力去维持,反而是我在没有监督、没有人要求的情况下自己选择的行为。反过来,如果我必须靠提醒、靠计划、靠“应该用一下”才能让某个自研工具被打开,那这份勉强本身就是最直接的反馈,说明它还没有真正回应我的某个需求。

把验收标准从“是否完成”换成“是否在被使用”,会立刻改变我对一堆项目的判断。很多我以为已经结束的东西,其实一天都还没真正开始。而在这条更严格的标准下,我手里确实有一个通过了考验的例子,它值得被单独拿出来仔细看。

后端工程师补上的另一半视角

说到这里,我要为后端说句公道话,因为很容易把这段经历讲成“后端不懂体验,所以体验更重要”,那不是我想表达的意思。

我确实因为长期做后端,此前不太理解用户体验。对我来说,难点一直在系统内部:数据要准确,服务要稳定,状态要一致,异常要被处理干净。这些能力真实且必要,而且往往是最难、最耗心力的部分。一个系统能不能在各种边界情况下依然给出正确结果,通常比它长什么样要难得多。一个入口再顺滑的系统,如果背后的数据是错的、结果是不可靠的,那顺滑只会让人更快地遇到失望。体验不能凭空成立,它需要有值得被体验的内容。

所以我不认为体验是后端的对立面,更准确的说法是,它们是同一件事情的两半。后端负责让系统真的有能力、有可靠的结果和可以积累的数据;入口和反馈链路负责让这些能力抵达使用它的人。我过去把几乎全部注意力放在前一半,默认只要后一半“存在”就够了,而这一次让我看清:如果能力没有一条低摩擦的通道抵达日常,它就等于没有被交付。

这两半之间还有一个我以前没看清的关系:它们不是先后完成、各自独立的两段工作,而是互相定义的。后端能积累的数据,只有在有人持续使用、持续产生行为时才变得有意义;而入口是否值得优化,又取决于它背后接的系统能不能给出可靠、值得反复获取的结果。只有入口没有内容,顺滑很快变成空洞;只有内容没有入口,能力就长期停留在无人抵达的后台。我过去的失衡,是把两者当成可以分开验收的模块,先把一半做到极致,再假设另一半会自动补上。

换个角度看,这反而是后端的机会。可靠性、数据、系统能力这些别人不容易做扎实的部分,恰恰是我熟悉的。我缺的从来不是能力,而是把能力送到自己面前的那条路。当我开始认真对待入口和反馈,我不是放弃后端视角,而是给它补上了一直缺失的另一半:让扎实的系统,真正被一个人稳定地用起来。这也让接下来的问题变得具体:如果体验决定了能力能否被兑现,那么有没有哪一个我亲手做的东西,已经真的做到了每天都用。

番茄 App 为什么活了下来

那个东西是我做的番茄 App。在我给自己写过的所有工具里,它是唯一一个我每天都会用的。其他的大多停在“做完”那一端,只有它真正进入了我的日常。所以它值得认真拆开来看:不是因为它多复杂,恰恰相反,是因为它简单,而它的简单里藏着几个让它活下来的原因。

第一个原因是它沿用了我早就熟悉的流程。我不是凭空设计一个番茄钟,而是参照我此前用惯的那类番茄 App 重新做了一个。这意味着我第一次打开它,不需要学习任何新东西,它的节奏、它的操作方式都落在我已有的肌肉记忆上。一个要求我重新学习的工具,会在最开始就竖起一道门槛;一个顺着我旧习惯长出来的工具,几乎不需要我适应。熟悉本身就是一种极低的摩擦。

第二个原因是它足够克制。我在重做的时候,只保留了本人真正会用的功能,其他一概砍掉。市面上的番茄类应用往往堆着很多我从不碰的东西:复杂的统计、社交、成就系统、各种可配置项。这些功能对别人也许有用,对我只是噪音,每一个我不用的功能都在悄悄增加我找到自己真正需要那一块的成本。当我把它们全部拿掉,剩下的界面里没有一样多余,我要用的功能永远在最直接的位置。克制之所以难,是因为加一个功能几乎总是比拒绝一个功能更容易被说服:每个想加的功能背后都有一个听起来合理的理由,而“不加”这个决定通常没人替它辩护。但我在番茄 App 上得到的经验恰恰相反:让它一直被用下去的,不是我加进去的那些功能,而是我狠心没有加进去的那些。克制不是把产品做小,而是把注意力还给使用它的人。

第三个原因是它按我自己的习惯优化。因为我既是作者又是唯一要讨好的用户,我可以把每个细节都调到贴合自己的手感,不必为照顾想象中的其他人做任何妥协。别人的产品要在无数种偏好之间取一个折中,我不需要折中,只要对准一个人。这种彻底的个人化,是大多数面向大众的产品在结构上做不到的,而它恰恰是让一个工具用起来毫不别扭的关键。

第四个原因是它有即时的收益。我坐下来,开始一个番茄钟,专注一段时间,这件事当场就给了我回报:一段被保护起来、不被打断的时间,和一个清楚的开始与结束。我不需要等到一周后看统计才觉得它有用,它在我使用它的那一刻就已经兑现了价值。即时回报是让人愿意再打开一次的关键,因为每一次使用都不是在为遥远的好处投资,而是当下就有所得。

第五个原因,也是我一开始没想到的,是它在被使用的过程中自然沉淀下了我需要的数据。我什么时候开始看书,看的是哪些书,这些记录不是我特意去填的,而是我正常使用它时顺带产生的副产品。这一点很关键:如果记录数据需要我额外花力气,它迟早会因为麻烦而被放弃;正因为数据是行为的副产品,而不是一项额外的维护任务,它才能长期、无痛地积累下来。我想特别说明,这种沉淀和常见的“数据统计功能”不是一回事。很多应用会专门做一个庞大的统计模块,要求你先认真记录,再去某个后台页面查看,那本质上仍是又一件要你维护的事。番茄 App 里的数据更像我使用行为投下的影子:我只管照常开始、照常读书,记录就自己长了出来。因为它不向我索取任何额外动作,它也就不会在我忙、我累、我懒的那些时刻第一个被牺牲掉。

把这五点放在一起看,它们不是五个并列的优点,而是互相加强的一个整体。熟悉和克制降低了我开始使用的门槛,个人化让每一次使用都足够舒服,即时收益让我愿意一次次回来,而正是这些一次次的回来,才让数据沉淀成为可能;反过来,积累下来的数据又让这个工具随着时间显得越来越贴合我,越来越难被替代。这里藏着一个我想单独讲清楚的机制:即时回报和长期沉淀,缺一不可。只有即时回报、没有长期沉淀,一个工具会好用但很浅,用完就用完了,我离开它也没有任何代价。只有长期沉淀、没有即时回报,情况更糟:它要求我今天付出、承诺未来某天才有收益,而人几乎不会为一个当下毫无所得的东西持续投入,于是它常常在那个未来到来之前就已被放弃。番茄 App 能活下来,正是因为它同时给了我当下的回报和一条越走越深的积累曲线:前者让我愿意今天打开它,后者让我明天更离不开它。

把自己作为方法

番茄 App 的经历让我慢慢总结出一个做个人项目的方法,我把它叫做“把自己作为方法”:一个给自己做的东西,先不要去想象一个模糊的“别人”,而是先从自己出发,先让自己用得舒服、用得高频,再去考虑要不要开源、要不要做成产品。

这个方法最直接的好处,是它让我不必凭空猜测用户。为一个想象出来的用户做设计很危险,因为我可以把任何我喜欢的功能都合理化成“用户应该会需要”,而这个虚构的用户永远不会站出来反驳我。我过去那些做完却没做成的东西,很多就败在这里:我为一个不存在的人,解决了一个我猜想出来的问题。而当我把自己作为用户,需求就不再是猜的了。我知道我什么时候真的卡住,知道哪一步让我烦躁,知道什么东西我会一次次回来用。这些不是调研得来的假设,而是我每天亲历的事实,它们具体、诚实,随时可以被验证。更重要的是,我作为用户是会持续使用的。一次性的意见谁都能给,但只有长期、自愿的使用才能暴露一个产品真正的问题:哪里做得不好,用不了几天我自己就会因为不舒服而发现;哪里做得好,会体现为我不假思索地一直用下去。我既是出题的人,也是每天来验收的人,这条反馈回路短到几乎没有延迟。

不过,正因为我离自己太近,这个方法也带着它特有的盲区。我最熟悉的痛点,未必是这个领域里最重要的痛点,而只是最先硌到我的那一个。我用得顺的设计,可能只是顺应了我的坏习惯,而不是解决了真正的问题。作为唯一的用户,我既没有人来反驳我的偏见,也没有人提醒我:有些我早已习以为常、甚至绕过去都不曾察觉的障碍,对别人可能是根本迈不过去的坎。所以把自己作为方法,给了我一个真实的起点,却也要求我时刻记得,这个样本虽然诚实,却带着系统性的偏差。我能做的补救很有限,但至少有一条:在把任何东西推给别人之前,先诚实地问自己,我真正依赖的到底是这个问题本身,还是我解决它的那个特定方式。前者更可能是共性,后者更可能是特例。

我必须非常清楚地给这个方法划一条界线,否则它会从一个好起点变成一个陷阱:把自己作为方法,绝不等于把自己当作所有用户。我只是第一个真实的用户,是一个方便、诚实、随时在场的样本,但终究只是一个样本。我用得顺,只能证明这个东西对我这样的人有效,并不能证明它对所有人都有效。

所以我开始强迫自己区分三种不同的东西。第一种是我的高频真实问题:它频繁出现,让我真切地难受,这类问题最值得动手,因为需求的强度是真的。第二种是我的个人特例:我用得顺,可能只是因为它恰好长在我特有的习惯、我特有的工作方式之上,换一个背景不同的人也许根本不需要,甚至会觉得别扭。第三种是可迁移的共性:某个我遇到的问题,剥掉我个人的特殊性之后,在很多人身上以不同形式反复出现。把这三者分开,是这个方法能不能被安全使用的关键。高频真实问题告诉我这个东西值得为我自己存在;但只有当我能从自己的具体经历里辨认出可迁移的共性,并把它和纯粹的个人特例分开时,我才有资格考虑让它离开我、走向更多人。混淆这两者会导致两种相反的错误:要么把只适合我的偏好当成普世真理硬推给别人,要么因为“这只是我个人的需求”而错过一个其实相当普遍的问题。

为自研产品设计最短闭环

有了这个方法之后,接下来的问题就变得很具体:当我要给自己做一个东西,或者要修一个已经做出来却用不起来的东西,我到底该看什么。我给自己整理了一条完整的使用链路,用来定位问题,而不是当作又一份要逐项打勾的功能清单。

这条链路大致是:想得起、进得去、说得明白、办得下去、看得到结果、以后用得上。想得起,是在我需要的那个瞬间,这个工具会不会浮现在我脑子里,而不是被我彻底忘掉。进得去,是我想起它之后,够到它、打开它、开始用它要跨过多少步。说得明白,是我能不能顺畅地把想做的事表达给它,而不必先把念头翻译成它别扭的格式。办得下去,是它接到我的意图之后,能不能可靠地把事情做完,而不是半途卡住或给出我不敢信的结果。看得到结果,是我能不能清楚地知道它到底做了什么、做成了没有。以后用得上,是这一次使用会不会留下点什么,让下一次变得更顺、更值得。

我把它当作诊断工具,而不是建设蓝图。它的用法不是“把这六项全都做到满分”,而是当一个工具我明明做完了却不愿意用,就拿它逐环去问:到底是在哪一环断了。很多时候断点只有一个。微信入口那件事,说到底就是“进得去”这一环出了问题:想得起、说得明白、办得下去、看得到结果都在,唯独进入的成本太高,于是整条链路就卡在了那里。找到那个真正断掉的环,往往比给整个系统再加一堆功能有用得多。

这也纠正了我一个根深蒂固的习惯。作为工程师,我面对一个不够好用的东西,本能反应是问“还能给它加点什么”,因为加功能是我熟悉的、有掌控感的动作。但更多的功能常常让链路更长、摩擦更多,反而把它推离日常。真正该问的问题是反过来的:在这条链路上,是哪一个具体的摩擦,让我在某个真实的时刻选择了不用它。产品优化应该从真实的摩擦出发,而不是从“还能增加什么功能”出发。

我特意强调这个闭环要“最短”,是因为一个给自己做的产品,最大的敌人从来不是功能不够,而是投入和回报之间的距离太长。如果我要一次改很多地方、要等很久才能知道这次改动有没有用,这个循环本身就会因为太重而停摆,我最后又会退回到凭想象做设计的老路上。把每一轮都压到最小,只改一个环、只验证一件事,是为了让反馈快到我愿意一直转下去。于是这形成了一个很小但很扎实的循环:先观察我在什么时候、因为什么真实地放弃了使用它;再定位这个放弃卡在链路的哪一环;然后只针对那一环做最小的修改,不顺手多加别的东西;最后回到我自己的日常里复验,看这一次我是不是真的会不假思索地用它。观察、修改、复验,再回到观察。它的每一步都以我真实的使用行为作为依据,而不是以我坐在那里的想象。值得注意的是,能进入这个循环的前提,正是我先把自己当成了真实用户:如果没有人真的在用,就不会有真实的放弃可供观察,这个循环也就无从转起。日子久了,一个工具就是这样,被一次次真实的不满意,磨成了一个我每天都会用的东西。

从一个人到更多人

把自己作为方法走到最后,一定会撞上一个问题:当一个东西我自己已经用得很顺、每天都离不开,我要不要让它离开我,去到更多人那里。这个问题看起来像是进度问题,好像私用是第一级,开源是第二级,做成产品上架是第三级,一个东西只要够好,就理应沿着这条阶梯一直往上走。我一度也这么默认。但真正想清楚之后,我觉得这个阶梯的比喻本身就是错的。

私用、开源、产品化不是一条必然向上的升级路线,而是三种不同的价值兑现方式。它们各自面向不同的人,承担不同的责任,也向作者要不同的东西。把它们看成阶梯,会让我误以为停在私用是一种未完成;而事实上,很多东西最好的归宿本来就是只服务我一个人,把它硬推上去,反而会毁掉它原本成立的理由。

私用的价值核心,是它彻底贴合一个具体的人。番茄 App 之所以好用,恰恰因为它只对准我一个人,不做任何折中。这种彻底的个人化是它的优点,但同一个优点一旦要面对更多人,会立刻翻转成缺点。因为它的好用,正建立在大量我自己心知肚明、却从没写下来的隐含上下文之上:我的习惯、我的节奏、我默认会怎么操作、我能容忍什么、我不在意什么。这些上下文对我透明,对别人却是缺失的。私用的东西之所以轻,正是因为它可以把这一切留在作者脑子里,不必说明、不必兼容、不必解释。

开源改变的,是这个东西被谁看见、被谁使用。当我把它开源,我其实是在说:这里有一个解决某类问题的思路和实现,如果你的处境和我类似,你可以拿去,自己改、自己适配。开源交付的价值核心,不是一份开箱即用的完整体验,而是一份能被理解、被复用的方案。它默认使用者有能力、也愿意去填补那些我没有替他准备好的上下文。所以开源真正要求我多做的,往往不是把产品打磨得多完善,而是把原本藏在脑子里的隐含假设显影出来:讲清楚它解决什么问题、依赖什么前提、在什么情况下根本不适用。我不必为使用者的最终结果负责,但我必须为把话说清楚负责。开源之所以容易被误解,是因为它看起来像产品化的一个更轻的版本:把代码公开,好像就顺手服务了更多人,又不必承担做产品那么重的责任。但这个中间状态有它自己特有的失败方式。最糟的一种,是把一堆只对作者有意义的代码直接倒出来,既没讲清它解决什么问题、依赖什么前提,又摆出一副“拿去用”的姿态。这样的东西对别人几乎没有价值:想复用的人要先花大力气逆向出我脑子里那些从没写下来的假设,成本高到还不如自己重写。它比诚实的私用更糟,因为私用至少不承诺什么,而这种半吊子的开源承诺了复用,却没有交付复用所需的那份说明。

产品化是这三者里责任最重的一种,重到它几乎是另一件事情。当我把一个东西做成产品、推给那些我不认识、也无法预设其能力和处境的人,我就得替他们把我曾经留在脑子里的每一个上下文都补齐:他们不了解我的习惯,不会去读我的代码,也没有义务来适配我。产品化真正的工作量,常常不在那个核心功能上,而在核心之外那一大圈让陌生人也能顺利用起来、并在出问题时有人负责的东西上。它要求我承担部署和服务的责任:它得一直可用,得处理我从没设想过的用法,得在坏掉的时候有人管。一个东西对我好用,和它能对一群陌生人持续负责,中间隔着的正是这一整圈责任,而这圈责任常常比里面那个核心还要大。

所以我不再用“做到了哪一步”来看这三者,而是用几个维度去判断一个具体的东西该停在哪里。第一个维度是价值核心:它交付的到底是一段贴合个人的顺手体验,还是一份可被他人复用的思路,还是一个陌生人也能依赖的完整服务。第二个维度是隐含上下文:它有多依赖那些只存在于我这里、很难迁移给别人的前提;依赖越重,它离开我之后就越容易失效。第三个维度是部署与服务责任:我是否愿意、并且有能力为它的持续可用和别人的使用结果长期负责。第四个维度,也是最容易被跳过的一个,是它到底值不值得通用化:把我个人的特殊性剥掉之后,里面那个问题是不是真的在很多人身上反复出现。这四个维度合在一起,回答的其实是同一个问题:这个东西的价值,有多少能在离开我之后依然成立。如果它的好几乎全部来自它对我一个人的贴合,那它最诚实的归宿就是私用;如果它内核里那个问题足够普遍,只是被我的个人习惯包裹着,那它值得被开源,让别人拿走内核、自己重配外壳;只有当那个问题既普遍、我又愿意连同它周围那一整圈责任一起扛起来时,产品化才真正成立。

把这几个维度想清楚,主要是为了躲开两种方向相反、却同样常见的错误。第一种是把只适合我的东西错当成适合所有人,急着推出去:它的价值高度依赖那些我从没说清的隐含上下文,一旦离开我,别人拿到的只是一个空壳,功能都在,却处处别扭,而我还要为一个本不该由我负责的使用场景,长期背上部署和维护的包袱,最后往往连自己那份原本纯粹的好用也一并拖垮。第二种错误正相反:一个其实相当普遍的问题,被我用“这只是我个人的怪癖”轻轻放过,于是它永远停在我的机器上,一个本可以帮到很多人的东西被埋没。这两种错误的根子是同一个,就是没有把“我需要”和“别人也需要”分开摆。判断该私用、该开源还是该产品化,与其说是在选一条上升的路,不如说是在为一个东西找到它诚实的位置:既不高估它能走多远,也不低估它本可以抵达的人。

拿这几个维度去看番茄 App,结论反而让我踏实。它每天都被我使用,按“做完还是做成”的标准,它是我做得最成的一个;但按这几个维度,它恰恰是一个该停在私用的东西。它的价值核心几乎全部是对我一个人的贴合,它的好用重度依赖我熟悉的那套流程和我砍功能时的私人取舍,这些隐含上下文很难原样迁移给别人。这不是它的缺陷,而是它成立的方式。它内核里当然有普遍的部分,比如专注、克制、即时回报,但那些普遍的道理早已有无数人做过,我这一个的独特价值就在那层不可迁移的个人化里。看清这一点,我就不会因为它做得成,而错误地觉得下一步理应是把它推给更多人。做成和该外推,本来就是两个独立的问题。

我现在手上正要面对这个判断。我想把从番茄 App 和微信入口里得到的经验,用到我给自己做的个人信息中枢、秘书这类系统上,避免再出现“做出来了、自己却不愿意用”的老问题。这些系统会不会有一天走向更多人,我此刻并不急着回答。我先要做的,是让它们通过和番茄 App 一样的那一关:先成为我自己每天真的会用的东西。顺序不能颠倒:如果一个东西连我自己都留不住,那么讨论它要不要走向更多人,就是在为一个还不存在的价值分配责任。先活下来,再谈去哪里。

回到“每天都用”

绕了一大圈,我想回到最开始那个几乎微不足道的观察:OpenClaw 进了微信,我就用得多了。这件小事之所以值得写这么长,是因为它悄悄改掉了我心里那条验收线。

过去我判断一个自研的东西做完没有,看的是功能列表和测试结果;现在我判断它做成没有,看的是一个朴素得多的问题:我自己是不是真的每天都在用它。这个问题不需要任何数据来回答,我心里非常清楚哪些东西我天天打开,哪些做完之后就再没碰过。这条用与不用的界线,比任何功能清单都更诚实,因为我可以骗自己一个项目做得很好,却没办法长期骗自己去用一个其实不想用的东西。

但我想说的“完成”,比“每天都用”还要再远一步。一个东西被我每天用起来,只是让它有资格接受下一个提问:我依赖的到底是那个问题本身,还是我碰巧喜欢的解决方式;它的好有多少来自它只贴合我一个人,又有多少能在离开我之后依然成立。所以我现在愿意这样重新定义完成:一个产品的完成,不是它在代码里被写完的那一刻,也不只是它长进了某一个人的生活,而是我终于看清了它诚实的归属,知道它该安静地留在我的日常里,还是把内核让给别人去改,或者由我扛起那一整圈责任,让一个陌生人也能每天用上它。在此之前,无论功能多完整,它都还停在半途,因为它的价值还没有被安放到它真正该在的位置上。

从这个角度回头看,我一开始那个问题问错了。我总在问:这个东西还能再做点什么。这个问题的诱惑在于它永远有答案,永远能让我觉得自己在往前走,可它衡量的始终是能力这个存量,而不是使用这个流量。真正该问的是另一个,而且是两层:先问有什么真实的行为,能证明它已经进入了一个人的生活;再问当它真的进入之后,这份价值究竟该停在我这里,还是走向更多人。做出来从来不是终点,被一个人每天用起来才勉强算开始,而想明白它到底属于谁、能陪多少人走多远,才是这件事真正的完成。