独立开发最难的部分并不是写代码,而是决定什么不做。一个人能投入的注意力有限,项目越小,越需要清楚地知道核心体验是什么。
从一个具体问题开始
我现在更倾向于从一个很具体的问题开始,而不是从一个宏大的产品想法开始。比如“我想更快记录灵感”比“我要做一个知识管理平台”更容易推进。前者能很快做出可用版本,后者会不断膨胀。
独立项目的早期目标不是证明自己能做很多功能,而是证明这个问题值得继续做。
保持节奏
我会把项目拆成可以在一个晚上完成的小块。每个小块都要能带来一点可见变化,这样长期推进时不容易失去方向。
一个好的小块应该能被明确验收:新增一个页面、完成一个筛选、修掉一个交互卡点。太抽象的任务,比如“优化体验”,很容易拖成无底洞。真正需要优化时,也要先把问题写清楚:是加载慢、信息不清楚,还是路径太长。
记录取舍
每次砍掉功能都写下原因。未来如果想重新加回来,也能知道当时的上下文,而不是在同一个问题上反复摇摆。
我会记录三类内容:
- 为什么要做这个功能。
- 为什么现在不做某个功能。
- 哪些地方是临时方案。
这些记录能减少很多重复思考。一个人做项目时,没有团队会议帮你同步上下文,文档就是自己的第二记忆。
允许粗糙
早期版本可以粗糙,但不能含糊。粗糙是细节不够,含糊是目标不清。两者的修复成本完全不同。
粗糙的按钮、临时的文案、还没接真实 API 的数据,都可以后面补。但如果核心流程本身说不清楚,越往后做越痛苦。我的经验是:能在纸上画清楚的流程,代码里也更容易落地。
不要过早追求完整
完整是独立开发里很危险的词。评论、订阅、国际化、主题市场、后台管理,每个都看起来合理,但它们会迅速吃掉注意力。对个人项目来说,先做出可用的第一版,比做出完整但永远不上线的版本更重要。
真正值得做的项目,会在使用中自然暴露下一步。只要保持可维护,慢一点没关系。
