有时候已经很晚了,项目也没有截止日期,甚至根本没人知道它出了问题。

你还是会打开编辑器,把那个并不影响演示的小毛病修掉。可能是一处难看的间距,一条偶尔重复发送的消息,或者一个只有在非常刁钻的输入下才会触发的错误。

没人催你。修完也不会立刻得到掌声。

可你知道它在那里,所以不太愿意就这样关掉电脑。

我一直觉得,这种时刻很能解释一件事:我们做东西,往往没有自己说得那么功利。

一张被工具、零件和测试设备占满的电子工作台

一张真实的工作台通常不整洁。作品也是在试错、返工和一堆临时方案里慢慢长出来的。图片:James Bastow,CC BY-SA 2.0。

世界已经不太缺“更多东西”

软件商店里有数不清的应用,GitHub 上每天都有新仓库,网络上的文章几乎覆盖了所有常见问题。到了今天,一个人还可以让 AI 在几分钟内生成网页、脚本、图标、文案,甚至一套看起来像模像样的产品原型。

从数量上看,世界很难说还缺一个待办软件、一套博客主题,或者又一个聊天机器人。

可人还是会做。

有人用周末写一个只有几十个用户的小工具;有人给已经停产的设备做驱动;有人维护一个赚不到钱的开源库;也有人花一晚上调整自己博客上几乎没人注意的排版。

这些事情从商业效率看,未必划算。放到人的生命里,却常常很重要。

因为“这个东西存在”只是一部分结果。另一部分结果发生在制作者身上。

想法很轻,作品有重量

脑子里的想法通常很漂亮。

它不需要处理数据库迁移,不会遇到浏览器兼容问题,也没有用户在凌晨提交一句“怎么又不能用了”。只要停留在想象里,它永远可以保持完整。

开始动手以后,现实会一点点把幻想里的水分挤出去。

你要决定哪些功能先不做,哪些技术虽然喜欢却不适合当前项目;你会发现自己所谓的“简单需求”,落到权限、异常处理和数据一致性上,可能一点也不简单。页面截图很好看,真正让它长期运行,还要处理日志、备份、升级、证书和安全问题。

这也是做东西最珍贵的地方。它强迫人离开自我感觉良好的区域,去接受现实的回答。

程序能不能跑,用户能不能用,硬件能不能稳定工作,这些问题不会照顾创作者的情绪。现实不关心你投入了多少热情,它只看结果是否真的成立。

这听上去有点残酷,却比空想可靠得多。

完成一件东西,会暴露你真正相信什么

人很容易说自己重视质量、隐私、开放、长期维护。

真正做项目时,这些词才开始收费。

重视质量,意味着在功能已经能演示时继续补测试;重视隐私,意味着少收集一些本来可以拿到的数据;重视开源,意味着有人用不耐烦的语气提问时,你仍愿意把文档补清楚;重视长期维护,意味着新技术再诱人,也要考虑两年后谁来收拾。

作品会留下这些选择。

代码仓库里被拒绝的捷径、发布记录里的回滚、文档里认真写下的限制,都比一句自我介绍更诚实。

我之前写过为什么开源软件在中国越来越难活下去。很多人喜欢开源带来的自由,却低估了自由背后的维护工作。一个项目真正有价值的地方,经常藏在那些没人截图传播的部分:版本兼容、问题回复、测试修复、迁移说明,以及作者几年如一日没有把它扔掉。

做东西会把价值观从口号变成成本。一个人愿意在哪些地方付成本,往往比他说了什么更接近真实的他。

工具越来越强,人的位置没有消失

亲手做,不等于每一行代码都必须自己敲,每张图都要从空白画布开始。

我们本来就在使用别人造好的语言、框架、芯片、操作系统和搜索引擎。AI 只是又多了一层能力很强的工具。拒绝工具并不会让作品自动变得高尚,熟练使用工具也不意味着作品失去了人的部分。

关键在于:谁决定要解决什么问题,谁判断生成的内容能不能用,谁承担上线后的结果。

AI 可以一次给出十套架构,却不知道你所在的学校、公司和团队真正能维护哪一套。它可以快速写出认证代码,也不会在数据泄露后站出来向用户解释。它能帮人越过许多机械劳动,方向、取舍和责任仍然留在人手里。

这也是我在AI时代,我们更应该学会什么里反复想到的问题。答案更容易得到以后,选择答案的人承担了更多工作。

一个作品里真正属于你的部分,未必是代码字符。它可能是需求边界,是删掉的功能,是遇到风险时停下来的决定,也是你愿意对哪些后果负责。

作品也在反过来制作我们

很多人把项目理解为能力的证明:做完它,就多了一项作品、多了一段经历、多了一条可以写进简历的内容。

当然有这些作用。

但做得久了会发现,项目一直在改造制作者。

第一次上线服务的人,会开始理解“能运行”和“能维护”之间的距离;第一次收到陌生用户反馈的人,会知道自己觉得清楚的设计,在别人眼里可能完全看不懂;第一次丢数据、误删配置或发布故障的人,会对备份、审计和权限产生一种从书本里学不到的敬畏。

你原本只是想做一个东西,后来被迫学会估算时间、承认不会、向别人解释、接受返工,也学会在兴奋退去以后继续处理枯燥的问题。

这些变化很难被截图,也没有漂亮的版本号。它们慢慢进入人的习惯,最后影响下一次选择。

用于搭建电子电路原型的面包板

原型通常由一些很普通的部件开始。它不完整,却让想法第一次接受现实检验。图片:Evan-Amos,公共领域。

很多作品不会成功,这不等于白做

这是最难接受的一部分。

你认真做过的项目,可能没有用户;维护很久的仓库,可能只有几个 Star;写了几天的文章,发布后也没多少人看。还有一些东西会因为技术变化、生活变动和能力限制,永远停在半成品状态。

把所有价值都押在外部结果上,做东西会变成一件很危险的事。因为市场、流量和机会里有太多个人控制不了的因素。

失败当然需要复盘。有些项目确实选错了需求,有些执行得很差,有些只是自我感动。不能因为投入了时间,就拒绝承认这些问题。

不过,一个没有成功的作品依然可能留下东西。

它让你真正理解了一项技术,让你认识了后来一起合作的人,让你发现自己并不喜欢原先向往的方向,也可能教会你以后不要再犯某种错误。这些收获无法把失败改名为成功,却能让那段时间不至于只剩下浪费。

我写过一个人做全栈,最后往往是在替六个岗位加班。个人项目尤其容易把人拖进无限加码。愿意做东西很可贵,学会停止也同样重要。完成一个边界清楚的小作品,常常比维持一个永远宏大的半成品更有力量。

人需要确认自己仍能影响一点现实

每天的信息很多。新闻、推荐流、短视频和群消息不断进入眼睛,大部分时候,我们只是接收、判断、转发,然后继续向下滑。

做东西的状态不一样。

你面对一块还不存在的页面、一段没有工作的代码、一张空白的纸,或者几块尚未连接的电路。经过一段时间,它们发生了变化。变化也许很小,却能明确追溯到你的行动。

这种经验给人一种朴素的确定感:现实并非只能被动接受,我仍然可以整理其中的一小块。

一个工具帮某个人节省了十分钟,一篇文档让后来者少踩了一个坑,一个开源补丁修掉了陌生用户遇到的问题。它们放在世界尺度里微不足道,对具体的人来说却是真实发生的改善。

我们未必都有机会创造宏大的东西。多数作品不会改变行业,也不会被很多人记住。可“改变世界”这个说法本来就太大了。世界也由一台台设备、一个个页面、一次次具体的使用组成。

能让其中很小的一部分变得更好,已经算和现实发生了有效联系。

写在最后

我们为什么还要亲手做东西?

可能因为制作是一种理解方式。只有真正做过,才知道问题的边界在哪里。

可能因为作品能保存人的选择。多年后再打开旧仓库,看到的不只是一套过时的代码,还有当时的判断、耐心和局限。

也可能因为人在漫长的生活里,需要一些摸得着的证据,证明自己没有一直被事情推着走。

那个证据可以很小。一个能用的脚本,一块焊得不太整齐的电路板,一个只有少数读者的博客,一套终于跑通的系统。

世界未必缺少它。

但在制作它的过程中,我们把一点混乱整理成了秩序,把一个模糊的念头带进了现实,也更清楚地看见了自己。

有时候,这就已经足够。


延伸阅读

图片来源

  • Electronics workbench.jpg:James Bastow,CC BY-SA 2.0。
  • Electronics-White-Breadboard.jpg:Evan-Amos,公共领域。