/ Methodology

如何思考

        去年(2015),在Facebook的一场内部演讲中我幸运的见到了John Carmack//约翰·卡马克解释他的想法生成机制,一开始我以为他会花好几个小时不停的说关于编程语言,游戏开发,大规模软件工程和其他技术话题,可是出乎我意料的是,他开场就谈到了“有一个好的想法对于成功带来的作用被夸大了,执行才是一切”这样的硅谷陈词滥调,然而,他提到一个叫做“反脆弱性”的概念。

脆弱的反位面?

        作为一种描述脆弱的反面的现象,我们目前并没有现成的词可以形容,你或许会指出“健壮”,“柔韧”,“坚强”是它的反义词,不过这些词语都描述的是一种在压力下不会崩溃的系统,有什么词能用来描述从压力中得到裨益的系统?

这个问题虽然简单,但让我惊讶的是直到今天我才开始主动思考这个存在潜意识里许久的问题。
以下是《Antifragile》的序:

人类骨骼持久经受压力和扭矩会变得更坚硬,许多事物也得益于压力,无序,和动荡的环境,塔里布(Antifragile的作者)指出的是一类不仅得益于混乱,甚至依赖于混乱而生存和繁荣的事物。

读过这本书后,我发现这跟卡马克提到的反脆弱想法生成器有异曲同工之妙,而且,从这样的出发点看世界,会有很多不一样的感悟,例如,我认为大型开源软件项目就是“反脆弱”的,越多的人出于各种原因对该项目施加压力,这个项目反而会变得越好,越多的人不按常理使用这个软件,越多的代码执行路径被探索到,则越多的BUG会被发现和修复。反过来,私有软件往往是在一个被控制的环境中使用,久而久之,脆弱性不断累积直到最终爆发不可收拾的灾难(见黑天鹅理论)。

反脆弱式筛选器

        在编程和许多其他需要创造性的工作中,每天你都会有很多想法,但你只能实现其中的一小部分,那些没有实现的想法可能在你的脑海中挥之不去,每个人都有他们津津乐道的那个“宠物点子”。这个点子在你脑海中萦绕的时间越久,你就越不会以批判性的角度去看待它,当到了你真要开始实现它的时候,如果失败了,你会垂头丧气,感到十分尴尬,甚至干脆甩手不干。

        这很明显是一个脆弱的系统,你从中立的态度开始,在想到一个点子时有些小激动,然而随着时间的推移这个点子在你脑中积累着脆弱性,直到未来某个时刻它崩塌,严重损害你的生产力。好了,那一个反脆弱的系统长的什么样?

首先来定义几个准则:

  1. 反脆弱性的系统应能不被负面性干扰。i.e.该系统不受负面性的负面影响。
  2. 失败的事件应最终加强整个系统。

这是卡马克设想的反脆弱性系统:

  • 你开始在某个问题上工作,并且从最初的想法上得到了一个促进力。
  • 你应该立即试图打败你自己的想法 - 设想所有该想法不成立的情形,测试这些情况,给你自己的想法压力。
  • 如果你的点子成功的在这些无情的批判下生存了下来,那么它就是一个未来值得花费精力去探索和实现的候选者。
  • 如果这个想法实施后确实达到了预计的效果,那么很好。
  • 如果这个想法没有经过批判,或者实施不成功,那么你可以很快的转移你的注意力而不用感到尴尬,因为你没有对别人夸夸其谈过这个所谓的明星点子。

这几个月来,我在工作和个人生活中都不断在使用这个方法,我推荐所有人都这么做。这样下来,每天我可以快速原型更多的想法,对想法进行更快的迭代,这让我回忆起了刚开始编程的日子,那时什么都不懂,所以任何想法都需要编代码来验证可行性,结果就是每天我都要完成好几个VB项目。

工作上,目前我们主要关注Javascript和Web性能,这种思考方式对于我目前的工作是不可或缺的,优化型的工作在逼近极限的时候往往是反直觉的,许多听起来不错的想法实践中往往行不通,为了取得进展我们需要尝试海量的想法,反脆弱式的想法筛选器是从事这种工作的绝佳思维框架!

译者注:此文大部分来自http://amasad.me/2016/03/09/john-carmack-on-idea-generation/