- Authors

- Name
- Youngju Kim
- @fjvbn20031
开篇 — 文件夹里剩下的十二个开头
打开项目文件夹,看到的景象大同小异:只做到登录页的应用、只有说明文件写得像样的仓库、在三个初始提交之后安静了八个月的分支。开了十来个头,真正上线的只有一两个。而看着这份清单时的心情,多半是自责,最后落到一个结论上:自己没有毅力。
可毅力多半是个错误的诊断。把死掉的项目摆在一起看,共同点有三个。第一,没有完成标准。没有定义什么算完的事情,是不可能结束的。功能永远还能再想出一个,代码永远还能再打磨一点。不定义终点,剩下的就只有累到停下来。
第二,没有公开时间点。没有人会给一件没有截止日期的事排优先级。公司的活儿有截止日期,副业项目没有,所以每次冲突时被往后推的那一边,从一开始就定好了。第三,没有复盘。不管是做完了还是死掉了,如果没有把学到了什么写成一页留下来,半年后剩下的既不是代码也不是经验,而是“那个我做到一半就没做了”这种模糊的记忆。
在这之上还叠着一个偏差:丹尼尔·卡尼曼和阿莫斯·特沃斯基在1979年命名的规划谬误。罗杰·比勒(Roger Buehler)研究团队1994年做的那个著名实验里,正在写毕业论文的学生预测平均34天左右能写完,实际却平均花了55天。要求他们按最理想的情况预测时,预测值更短,准确度更差。觉得一个周末就能全做完,这种感觉不是信息,是症状。
能变成资产的项目的三个条件
不是每个副业项目都得变成职业资产。纯粹图开心做的,本身就已经足够。但如果想把它当资产用,就要附带三个条件。
第一,别人得看得到。只存在于本地的东西,等同于不存在。一个上线的网址、一个公开仓库、一个应用商店链接,至少也要有一篇配了截图的文章。让它变得可见所花的成本大概是整个项目的5%,而资产价值一半以上从这里来。
第二,你的判断得显现出来。照着教程原样做出来的第十个待办事项应用,里面没有一个属于你的决定。反过来,哪怕只留下一处“我判断不需要实时同步所以改用了轮询,作为交换在这一块把复杂度压了下来”这样的痕迹,这个项目在简历上读起来就不一样了。判断和规模无关,一个300行的小工具里也有取舍。
第三,得能当成故事讲出来。如果没法在90秒内把问题、选择、结果说清楚,那它在面试里、在聊天里都用不上。而这个故事不是项目结束后编出来的,是从过程中随手记下的笔记里长出来的。
| 维度 | 会死掉的项目 | 会变成资产的项目 |
|---|---|---|
| 完成标准 | 直到自己满意为止 | 这三个功能能跑就是v1 |
| 公开时间点 | 准备好了再说 | 先把日期定下来 |
| 体量 | 想到什么加什么 | 两周内能上线的范围 |
| 留下的记录 | 只有提交日志 | 决策笔记和一页复盘 |
| 半年之后 | 模糊的记忆 | 一个链接和一个90秒的故事 |
| 对下一个项目 | 没有影响 | 素材和读者都能结转 |
强行把范围压下来 — 两周和一个丢人的v1
范围不会自己变小,得靠结构强制。
最管用的装置是把顺序倒过来。Basecamp在《Shape Up》里整理的做法值得借鉴:通常是先定想做什么,再据此估算周期;这个方法反过来,先把愿意投入的时间钉死,再削功能直到塞得进去。对副业项目来说,两周内能上线的体量是个不错的默认值。两周接近热情能维持的上限,也接近公司工作忙起来一波之后还能活下来的下限。
要压进两周,该砍的东西就很清楚了:注册和登录(眼下只有自己在用)、后台管理页(直接看数据库)、设置页(在代码里写成常量)、响应式设计(v1只做桌面端)、多语言。把这份清单先写下来,砍功能就不再是失败,而是在执行计划。
关于丢人这件事也得说一句。创立领英的里德·霍夫曼(Reid Hoffman)说过,如果产品的第一个版本不让你觉得丢人,那就是发布得太晚了。这句话不是让人放弃质量,更接近于把完成度的判断放到房间外面去做,而不是在自己屋里做。一个人闷头打磨的两周,和给三个用户看过之后的两周,会流向完全不同的方向。
不过这条建议也有边界。在支付、医疗、安全这类早期失误代价不对称地大的领域,不能照搬。丢人的v1被允许的地方,是那些可以回头的决定的领域。
一个做完的小东西为什么胜过五个没做完的大东西
在简历上写五个没做完的项目,不如写一个做完的小东西有力。原因不是谦虚或诚实这类美德,而是面试里真正会来回的那些问题的性质。
关于项目的提问,几乎总在这四个附近打转:为什么做这个?这一块为什么这么定?什么地方和你预想的不一样?如果重来一次你会改什么?这四个问题,只有走到最后的人才答得上来。没做完的项目没有上线,所以既没有和预想不同的瞬间,也没有可回望的结果。剩下的只有意图,而意图无法被验证。
尤其第三个问题是分水岭。真正上线过的人,可讲的材料多到用不完:本地是100毫秒的响应,到了真实环境变成3秒;以为没人会用的功能,结果成了唯一被用的;因为没留错误日志,第一次故障时什么都看不到。这样一个故事,比一段设计得完美却没做完的架构讲解更能建立信任。
关于规模的误解也顺带说清。让面试官动心的不是项目的大小,而是决策的密度。做一个40个用户在用的工具时撞上的一个真问题,能把对话带得比六个没人用的微服务远得多。从这个角度把项目搬进简历句子的方法,在被读完的简历那篇里讲得更具体。
比代码杠杆更大的东西 — 写作和分享
同样的4小时,可以花在代码上,也可以花在写作上。令人意外的是,从职业角度看,后者收益率更高的情况相当常见。
原因很简单。代码要被读到,得有人主动找上门;文章却会被搜索发现、被链接传开。一个仓库是需要访客自己判断的原料,而一篇写着“这个问题我是这么解的,这一条失败了”的文章,把判断也一并送到了。变成资产的不是成果本身,而是附在成果上的解读。
在学习效率上也有依据。约翰·内斯托伊科(John Nestojko)研究团队2014年发表的实验中,被告知稍后要把材料教给别人的参与者,比被告知要参加考试的参与者记得更牢。以要去教为前提,整理信息的方式本身就会改变。一边做项目一边写文章,不是抢时间的副业,而是学习的一部分。
落到实处,有三种形式性价比最好。第一,一篇项目复盘 — 问题、选择、失败、重来一次会怎样。第二,一篇从项目上掉下来的窄技术文,比如“WebSocket重连我是这么处理的”,搜索流量大多从这里来。第三,一场15分钟的内部分享或小型聚会。分享留下的不是听众规模而是准备的过程,幻灯片可以原样变成下一篇文章的骨架。
而且这三样互相喂养:分享变成文章,文章带来下一个项目的读者,读者的提问又成了下一个项目的题目。副业项目开始产生复利的地方不在代码里,而在这个循环里。
和公司的边界线 — 请先读合同
从这里开始不是愉快的话题,但必须确认。先说明一下,下面写的是实务上的注意事项,不是法律意见。如果真的存在纠纷可能,建议务必咨询专业人士。
争议点通常沿三条轴分开:是不是在工作时间做的、有没有用公司的设备或资源、内容跟公司业务有没有关联。韩国著作权法第9条规定,在法人等的企划之下于职务上完成、并以法人名义公开发表的作品,其著作者原则上是法人。专利这边则有发明振兴法上的职务发明概念,如果发明属于公司的业务范围并且属于员工的职务,公司会被认可享有一定的权利。离这三条轴越远越安全,越近灰色地带就越宽。
最常见的失误不是出在法律条文上,而是出在合同上。劳动合同或入职时另外签署的承诺书里,往往写着知识产权归属、禁止兼职、禁止竞业的条款,而且条款的范围有时写得比法律规定的还宽。现在就去确认当初入职时没读就签下的到底是什么文件,是这一节唯一的行动项。手上没有副本的话,向人力资源部索取即可,提这个要求一点也不奇怪。
实务上的安全措施很简单:只用个人电脑和个人账号;别让提交时间集中在工作时段;公司的代码和内部数据一行都不要搬;如果东西和公司产品构成竞争或替代关系,开工前先问一声。觉得含糊的时候,用邮件留下一段简短的确认,是最便宜的保险。口头批准会随着经手人换掉而消失。
一旦涉及变现,标准还要再上一档。免费开源时不追究的公司,变成付费产品后态度可能就变了;关于兼职的公司内部规定也可能另行适用。开始收钱的那一刻,就是该再确认一次的时刻。
可持续的节奏 — 每周4小时
最后要谈的不是速度,而是持续。
我建议每周4小时。看起来少,但一年就是200小时,足够把两周体量的项目跑完好几轮。更重要的是,这个量在加班的那周、感冒的那周也活得下来。杀死副业项目的不是懒惰,而是连着三周每周投15小时之后袭来的反弹。猛冲能推进度,却会砸坏节奏,而砸坏的节奏要几个月才恢复得回来。
4小时怎么用也很重要。八次30分钟远不如两次2小时。写代码光是把上下文重新搭起来就要20分钟,碎片时间大多消耗在热身上了。把星期几和几点固定下来也有帮助,因为它省掉了每次都要决定什么时候做的成本。设计的是系统而不是目标,这个原理和系统优先于目标那篇讲的完全一样。
还有,把休息区间提前放进计划里。上线一个项目之后的两周什么都别开始。这段空白感觉像偷懒,可写复盘、挑下一个题目的时间只会从这里冒出来。上线第二天就建新仓库的人,多半在第三个项目上就停住了。
最后,如果有一段时间什么都不想做,那可能不是项目的问题。副业项目是靠富余的能量做的,不是靠把没有的能量硬挤出来做的。如果光是公司的活儿就已经赤字,那段时间需要的不是新仓库,而是恢复。
结语 — 两周后的一个链接
现在文件夹里那些没做完的项目,不必都救活。从里面挑一个,今天要做的只有这些:用三行写下v1的定义,把上线日期放进日历,再列一张要砍掉的功能清单。两周后留下的不是完美的产品,而是一个链接和一页复盘。
那一个链接,会带来下一个项目的读者、下一场对话的话题、下一次面试的头五分钟。复利不是从大收益开始的,是从一个走到最后的小东西开始的。