注:

原文链接:

关于 Yak Shaving (antfu.me)

正文:

休息时漫无目的地翻阅其他人的博客,看到了这篇文章,其中提到的Yak Shaving这个概念我觉得非常有趣。

原文写到:

Yak Shaving 的字面意思是为剪牦牛毛,而引申出来的意思是,当你在进行一个工作时,发现另一个工作还没有完成,你便先去解决那个工作,在进行那个工作时,你又发现另一个工作… 如此往复,让你偏离了原本本该完成的工作,最终却也什么都没有完成。一个实际的例子:

You want to bake an apple pie, so you head to the kitchen.
In the hallway, you notice some paint chipping on the wall.
So you walk to the hardware store for some paint.
On the way, you pass a bakery and stop in for a cupcake.
While eating the cupcake, you feel a pain in your mouth. It’s that cavity that you’ve been putting off.
You pick up your phone to call the dentist to make an appointment, but you see a notification from your friend Cher, who’s having a party.
You don’t want to show up empty-handed, so you stop for a bottle of wine…

你想烤一个苹果派,所以你去了厨房。
在走廊里,你注意到墙上有一些油漆剥落。
于是你走去五金店去买一些油漆。
在路上,你经过一家面包店,停下来吃了一个小蛋糕。
在吃蛋糕时,你感到嘴里很痛。这是你一直在拖延的蛀牙。
当你拿起手机想给预约牙医时,你看到了你朋友 Cher 正在举行一个聚会的通知。
你不想空手去参加聚会,所以你停下来买了一瓶酒…

其实Yak Shaving本身应该是一种负面的例子,喻指做事情没有坚定的方向,总是被其他的事情所干扰,最终一事无成。就像上面的例子,“你”没有烤出苹果派、也没有补好家里的漆、“你”没有解决拖延的蛀牙,可能也耽误了朋友的聚会。这么看倒是非常不值得提倡了。

但是实际上原文的作者是在推崇Yak Shaving的思想。他以自己的亲身经历从另一个角度理解了这个概念。

作者想做一款关于换汇与记账的APP,所以他找了学外语的同学
学外语的同学不会用JSON,所以他找到了 think2011/vscode-vue-i18n
这个项目缺少一些需要的功能,他基于此做出了i18in Ally
开发中发现常用的通用函数,他借由 react-use 的思想,做出了VueUse

作者也是在解决一个目标问题时发现了一个新的问题,从而去解决新的问题的反复过程中。但是不同的地方在于,他发现了新的问题并且把新的问题解决了甚至在解决的基础上做了完善。

所以本质的差别还是在于是否有在解决问题。两个角度的Yak Shaving实际都是在解决一个问题的过程中不断发现新的问题的过程。对于原本语义中的人,新的问题打断了他解决原有问题的过程,并且他也没有解决新的问题,因此问题的产生是负面的;对于该作者而言,他不断遇到问题,并不断地解决问题、完善解决方案,成就了更好的自己。不断发现问题对于一个执着的问题解决者应该算是一件好事。

之前在汪定老师在分享科研经历的讲座当中提到,(大意)不应该等到做好所有的准备之后再开始做科研,因为“准备好”这个状态是不太现实的,应该做的是在确定一个方向之后,缺什么补什么,需要学什么再去学什么。我想这二者应该有异曲同工之妙。

简单来说,坏的Yak Shaving是从1个问题出发,解决过程中遇到了99个问题,但是最终100个问题的解决进度可能都是50%,所以什么都没有解决;好的Yak Shaving是从1个问题出发,解决过程中遇到了99个问题,但是最终100个问题中绝大多数问题的解决进度都是100%或者100+%。

遇到问题不一定是坏事,发现问题也不一定是好事。问题的出现是好是坏,恐怕最终还是取决于我们是问题的解决者还是问题是我们的解决者。

解决一个目标问题时遇到了其他的问题,有时候可以忽视突然出现的问题(比如去厨房烤苹果派时,不要在乎油漆的脱落),这样至少我们解决了目标问题;当然如果补完了油漆也吃上了苹果派自然更好;但有的时候必须解决后期出现的问题才能解决目标问题(比如某个工具出现了问题或者需要新增什么功能);还有时候可能在解决一个又一个的问题时,丢掉了最初的问题(像作者最终没有去开发那款APP),这也不一定是坏事,毕竟后期出现的问题也可能更具价值又或者最初的问题已经被颠覆了。

Yak Shaving的情况有很多。所以或许可以说,成功并不源自Yak Shaving,最终还是取决于解决问题的态度、能力,以及对形式和自身的判断和把握。