在技术学习、探索的过程中,我们常常会遇到「Yak Shaving」------一个看似无休止的任务链条,让我们不断偏离最初的目标。而我,曾经也是「Yak Shaving」的受害者,但随着经验的积累,我学会了如何利用这种现象,将其转化为创造价值的机会。
Yak Shaving 是什么?
Anthony Fu 在他的博客《关于 Yak Shaving》中描述了一个经典的 Yak Shaving 场景:
你想烤一个苹果派,走进厨房,发现墙上的油漆剥落了。 于是你去买油漆,路上看到一家面包店,停下来吃了个蛋糕。 在吃蛋糕时,发现牙疼,决定预约牙医。 在打开手机预约时,看到朋友的聚会通知,又决定去买一瓶酒......
最终,苹果派没有烤成,你却经历了一连串意想不到的任务。这在开发过程中也很常见,比如想写一篇博客,结果却造了个新的博客模板。
我的 Yak Shaving 之旅
我过去也常常掉入 Yak Shaving 的陷阱。最开始,我只是想写点技术博客记录自己学习的过程。然而,当我开始寻找合适的博客系统时,发现没有符合自己技术栈的 Astro 模板,大多数都以 React 或 Astro 结合的方式构建,而我更倾向于 Vue 生态。
然后,我注意到了 Anthony Fu 的个人网站,设计简洁,体验优秀,非常符合我的审美。于是,我决定改造他的博客网站,使其适配 Astro,并整理成一个开源模板 Vitesse theme for Astro。
最终,我不仅解决了自己的问题,还顺手开源了这个项目,意外收获了 100 多颗 Star,也算是一个意外的「副产品」。
不过写了两篇,发现自己的博客并没有流量,所以还是换到了掘金上发表文章,正反馈好很多 :P
Yak Shaving 思考总结
Yak Shaving 往往被认为是低效的,甚至是拖延症的表现,但它也可以成为探索新技术和创造价值的驱动力。如何把握这个过程,不至于让自己迷失在无休止的任务链条中?
1. 发现问题,解决问题
与其空想一个"伟大"的开源项目,不如从自己的需求出发。当你真正需要一个工具时,你才会有最大的动力去实现它,同时你也最清楚它的痛点。
2. 控制范围,点到为止
Yak Shaving 最大的风险是无休止的探索,让自己偏离目标太远。因此,在发现一个新问题时,要问自己:"这个问题值得花时间解决吗?" 如果只是一个小问题,现有方案可以满足,那就不必造轮子。
3. 及时收敛,完善项目
如果 Yak Shaving 让你意外创造了一个有价值的项目,不如花点时间完善它,比如写个 README,整理文档,分享给社区。这样,你的努力不仅能帮助自己,也可能帮助更多的人。