那些年我在大厂学到的工程思维(五):飞轮思维

3,375 阅读20分钟

雄关漫道真如铁,而今迈步从头越。

——毛泽东

万事开头难

在前一章中,我们探讨了迭代思维,研究了PDCA环。

然而,实践之后我们会发现,想要驱动PDCA环持续转动并没有那么简单

在日常中,包括我自己在内的很多人在为某个目标建立好PDCA环之后,除了兴奋期还没有消退的时候勉强执行了几个周期之外,其他的时间里我们就把目标和PDCA环完全抛诸脑后了。

懈怠似乎才是常态,这是为什么呢?

因为,我们日常中的诱惑实在是太多了,而违背自己的常规生活路径的去坚持一件平常不会做的事情的阻力又非常的大。

那怕我们知道完成这件事将会是一个非常了不起的壮举,那怕我们知道这个目标并非遥不可及,我们都不愿意用当下去做交换。

这个场景似曾相识,不禁让人想起经典电影《闻香识女人》里阿尔帕西诺的名言:

“我知道正确的道路是什么,但是那种生活对我来说太他妈的痛苦了。”

5-闻香.jpeg

事实上,只要稍加思考,我们便会发现我们无法长期坚持一件事情的原因,主要在于我们无法在短时间内改变我们在生活路径和思考模式上长期积攒下来的的巨大惯性——我们不会让已有的飞轮停下来。

换言之,我们懈怠的原因并非是因为我的惰性,而是出于我们长期形成的惯性

巧的是,这种惯性产生的原理和本章将要讨论的工程思维——飞轮思维——如出一辙。

那么,什么是飞轮思维(或者飞轮效应)?

一句话概括下来,就是“万事开头难”。

我们都知道,汽车在发动的时候需要消耗巨大的能力,而一旦引擎启动之后,汽车在前进时依赖的其实是汽车自身重量带来的巨大惯性(你没看错)。

5-汽车飞轮.jpeg

如果你在高速上开过车,你就会发现在车速很高的时候,耗油量反而比走走停停的市区道路上少很多,你甚至可以在空档的情况下滑行,这时候车速也不会下降很多——这就是飞轮系统的典型特点——维持(具备巨大动能的)飞轮的旋转并不需要太大的能量,难的是让静止的飞轮转动起来——实际上,我写这篇文章的过程就是一个启动飞轮的过程,一开始我写的很困难,但是一旦有了灵感之后,就开始越写越快。

当然,从工程师的角度来看,如果只把飞轮思维的理解停留在“万事开头难”上,那就太表面了。

在卓越工程师那苛刻的目光中,弄懂飞轮思维一定一定意味着搞懂它的why(为什么),what(是什么)和how(如何使用)。这就要求他(她)不仅能够看到现有系统(计算机系统、人类组织系统、这个世界中各式各样的系统)中存在的飞轮系统,能够驱动或者调试这个飞轮系。

最重要的是,他(她)要能够亲手设计、建造、驱动、验证一个独立的飞轮系统,直至这个飞轮系统可以自动前进,然后自己全身而退。

作为一个每天都在飞轮打过交道,有实践经验的工程师,笔者写作本章的目的,就是为了同大家分享飞轮思维的内涵和外延。让大家对飞轮思维有所认识,获得构建自己的飞轮的基本能力。如果在看过本章之后,你能把飞轮思维应用到生活当中,那将是笔者的莫大荣幸。

言归正传,作为文章的第一个例子,我们将考察一家坚持使用“飞轮思维”最后取得成功的公司。

亚马逊的商业飞轮

起初,飞轮理论是由管理学大师吉姆·柯林斯提出的,他甚至专门写了一本名为《飞轮效应》的小册子。

5-飞轮效应.jpeg

在这本小册子中,吉姆·柯林斯用来支撑飞轮理论的案例里的公司就是亚马逊。实际上,后来几乎所有介绍“飞轮理论”的文章都会用亚马逊飞轮来举例子。既然这个例子已成为业界标准,那么本文也不能免俗。

吉姆·柯林斯认为,一个公司的飞轮就是公司各个职能模块的组织模式,也就是所谓商业模式。而亚马逊的飞轮,据说是有一次贝佐斯灵光乍现然后在餐巾纸上画下来的。且不说这个故事有多少杜撰的成分,不妨先让我们看一下这个飞轮长什么样子:

5-亚马逊飞轮.jpeg

[更廉价的商品——>更多的用户流量——>更多的卖家——>更大的销售渠道——>更多的盈利——>回到第一步]

接着,再让我们检查一下飞轮中每一步之间的逻辑:

首先,更廉价的商品必然会吸引大量的用户进入;更多的用户流量必然会吸引更多的卖家前来入住;而随着卖家数量的增加,必然会让销售渠道增加;销售量的增加,则意味着平台自身的更多盈利;有了盈利之后,亚马逊就可以通过竞争和优惠让商品更加廉价,然后廉价的商品必然会更加吸引用户。到了这一步,这个因果链就回到了原点——廉价的商品将吸引更多的买家——这样,亚马逊的飞轮系统就设计好了。

正如我们在亚马逊飞轮上看到的这种自增强特性。吉姆·柯林斯说,飞轮系统的厉害之处,在于它每一步的结果都是后一步的原因,这种前后咬合的因果关系让飞轮系统拥有了自增强的特性(在自动控制领域,自增强的专业术语叫正反馈)。

这种特性意味着飞轮系统每往前推进一步都会自动推动下一步的加强。所以,一旦这个飞轮成功地转动起来之后,它便会在旋转中慢慢地积蓄能量,以至于在旋转足够多的圈数之后,维持它的旋转只需要很小的力气,惯性会让飞轮持续转动,而且,在自增强特性的加持下,它会越转越快。

在控制论中,我们把这种系统称为“反馈控制系统”。

当然,纸面上讨论是一回事,实际操作起来是另一回事。吉姆·柯林斯说,对于一个飞轮系统来说,最难是的推动飞轮转动的最初几(或者几十、几百)圈,这几乎是一个九死一生的过程,绝大多数人在这一步就失败了。

对于亚马逊来说,实际想要推动这个飞轮的转动,中间自然经历了各种磕绊,进行了少不了各种的试错和调整。关于这一点,有兴趣的朋友可以阅读《一网打尽》,在这本描写亚马逊的发展历程的书里,有对推动飞轮的事情有详细的叙述,限于篇幅,本文就不再展开了。

总之,就是靠着推动这个飞轮的转动,亚马逊走出了2000年前后的互联网泡沫。即便是后来从电商转型为云服务提供商,亚马逊始终都没有改变这个飞轮的基本结构,他们十年如一地推动着这个飞轮,最终取得了巨大的商业成功。

飞轮思维

说了这么多,到底什么是飞轮思维?

飞轮思维的核心思想是打造一个“飞轮系统”,然后通过持续推动飞轮的转动来积累足够的能量,直到用很少的力气就可以让飞轮能够自发持续地转动下去。

核心概念

作者认为,飞轮思维包括两部主要内容:飞轮思维的行事态度和构建飞轮的方法论。

5-飞轮效应主图.jpeg

首先,飞轮思维的行事态度非常较简单但却非常重要,它的理念类似于前阵子非常火的长期主义

用一句话概括,就是因为我们知道在飞轮能够自发转动之前推动飞轮持续转动起是整个过程中最艰难、最劳心费力的一步,所以在开始的时候,我们要有数十年如一日地推动飞轮旋转的觉悟和毅力。

换言之,你有没有把牺牲自己、把自己变成飞轮的一部分的觉悟呢?

其次,确认过态度之后,然后才是飞轮思维的方法论

飞轮思维的方法论主要集中在如构建飞轮上。而构建飞轮的过程,需要和我们所解决的实际问题相结合。

就像上一节中讨论的亚马逊飞轮一样,为了解决亚马逊的“商业模式”问题,亚马逊的领导者需要找到四到六个解决问题的关键商业构件,并且要确保这些构件在逻辑上形成一条互为因果链条,这才组成“亚马逊”的商业飞轮。如果是个人成长的问题,那么我们就要找到个人成长过程中的关键构件,然后组成飞轮,这个例子我会在后文中详细展开。

三个注意点

组成飞轮的构件非常关键,有三个要点需要注意。

其一,为了保证方向和结果的正确,必须确保这些部件是和我们的问题紧密相关而不冗余。

过多的或者和问题无关的部件会都掩盖问题的本质、让大家分心,这也是吉姆·柯林斯在书中建议设计飞轮时只引入四到六个部件的原因。

其二,为了保证整个系统不会出现短板,必须确保这些部件必须具备理论上的无限增长能力。

换言之,飞轮系统的部件是开放的而不是封闭的。比如,亚马逊飞轮中的“更多的用户量”就是在理论上可以无限增长的,这样飞轮才可能在旋转的过程中积蓄更多的能量。

最后,在组装好飞轮之后,方法论的最后一步就是测试飞轮了。

这一步的操作理念和本书“灰度思维”的基本原则完全一致:如果你不是不差钱的主,最初的测试最好还是通过最小可行飞轮(MVP)来进行,直到反复推动飞轮、确认飞轮能够按照预期运转之后,再投入更多的资源对每个构件进行加强和升级。

这里再次强调,推动飞轮的过程是一个漫长且一定会有反复的过程,在质变出现之前,除了烧钱和花时间之外,更需要我们时刻保持耐心和平常心——水滴石穿绝非一时之功。

我们常说的验证商业模式,其实就是最初推动飞轮的过程,只有过了这个阶段,飞轮正常运转之后,这个公司才有可能成功

作为例子,笔者分享一个我们在公司里经常拿出来讨论的支付增长飞轮。

作为第三方支付公司,我们公司的主要任务是为商户提供支付和结算服务。粗暴地说,衡量我们的绩效的指标只有两个:其一,我们对接了多少支付渠道;其二,我们服务了多少商户。因此,我们的支付增长飞轮是这样的(没记错的话):

[接入更多的渠道 ——> 吸引更多的商户 ——> 获得更多的利润 ——>回到第一步]

这个飞轮的逻辑非常清楚:接入更多的渠道,才会有多样的支付和资金能力,才能吸引商户入住;更多的商户入住之后,我们才能获得更多的服务费;有了服务费,我们才能接入更多的渠道。为了推动这个飞轮的转动,在过去我们已经做了大量的工作,在飞轮能够完全自驱地转动起来之前,我想我们还会继续推动下去。

大家可以思考一下,自己从事的行业有没有类似的飞轮系统。

除了用在商业上之外,飞轮思维还可以用在个人成长中。以笔者的经历为例,虽然自己当时不知道,但是我在公司的第一个年头确实就用到了“飞轮思维”。

个人成长飞轮:我在公司的头一年

2014年刚进入公司的那会儿,我就是一个愣头青,对自己的技能迷之自信,对公司里的项目充满期待,摩拳擦掌准备干出一番事业,我想这是大多刚刚进入工作的新人所共有的美好憧憬。

但是,问题很快就出现了——除非有人想把事情搞砸,否则老人绝对不会把重要的事情交给一个搞不清状况的新人去做

我的印象非常深刻,刚来的头半年里,我的绝大多数时间不是在给团队里的老人的代码写测试用例,就是在修复因为各种问题莫名其妙失败的测试用例,俗称干脏活

之后的半年,微微进了一步,我成了团队里的迭代master。这里稍微科普一下,迭代master就是团队里的项目经理,主要职责是管理团队内的每月迭代,工作内容包括但不限于收集需求、催促进度、组织评审会议、修改bug等等,可以说是一个鞍前马后、端茶倒水,除了不贡献核心代码,啥事都要干的角色。

就这么干了小一年,在熟悉了系统、业务和研发流程之后,我终于得到了团队成员的认可和信任,有了贡献某个系统核心代码的机会。

贡献一点核心代码意味着什么呢?

意味着我可以参加组内的迭代研发了,但是也就止步于此了——组内乃至整个部门的核心项目,这不是我的能力范围所能覆盖的,在这个阶段想都别想,先去迭代里打磨半年再说。

当然,也不是说完全没有机会进入核心项目组,因为总有一些重要项目“时间太紧,任务太重”,老人又抽不开身,这个时候,新人的机会就来了。

我的第二个机会就是这么来的,那是一个关于“系统发布流程”改造的项目。这个项目涉及的技术比较底层,同时改动范围覆盖到整个技术部,因为大家的系统发布都需要依赖这个改造。

即便以现在的眼光来看,这个项目都是一个名副其实的大项目,当时我有幸跟着另一位老人投入了这个项目。

过程中,这个项目涉及到了很多运维层面和网络层面的东西,当时我们都没有接触过,于是我们只得边学边做(我甚至专门学了lua脚本和nginx源码),虽然中间出现了好几次意外的小插曲,但是好在最后项目和功能还是如期上线和投入了使用。

上线之后,我又做了三年多的维护工作。而整个发布系统则为部门系统发布服务了七年之久。

也是在前不久,因为发布流程升级,这个系统终于完成了他的使命、宣告下线,老板们还为此发了封邮件以表祝贺。

而第一年的我,也是借着这个项目才积累了足够的自信并且得到了同事们的认可,作为一个技术人的职场开端,我认为我的表现还算不错。

当然,当时的我并不知道什么飞轮思维。现在用飞轮思维去思考当时的境况,会发现我的第一年其实存在着一个明显的飞轮,我把它称之为“成长飞轮”,这个飞轮的关键部件如下:

[从小需求做起——> 高质量交付工作,自身能力提升——> 获得同事信任——>委以更大的需求——> 获得自信 ——> 回到第一步]

值得一提的是,仅凭我一人的力量是绝对无法让这个飞轮旋转下去的,这里还得感谢当时帮助过我的师兄、师姐,是他们的指导和帮助才让我的成长飞轮得以开始旋转。

换言之,飞轮能够有效,环境因素非常的重要。

飞轮思维的关键点

如果你只想要了解设计和推动飞轮的基本逻辑,那么上面的内容就已经足够入门了。

但是,如果你想要更好地推动飞轮,那么你最好还是看一下我在本节提及的的关键点。这些内容都是吉姆·柯林斯在他的书中没有提及(也许他默认我们都已经知道了),但在实践中却非常重要的。

1)飞轮系统必须是一个开放系统

飞轮系统能够持续转动的本质是量变的无限积累。只有把飞轮系统中的每个部件设计成开放系统,才有可能持续地产生量变。比如,在个人成长的例子中,“我”能肩负的需求难度必然是可以无限增加的(当然现实里肯定不行)。如果不这样做,飞轮的威力就会受到限制。

2)推动飞轮时不要忽视环境的因素

在描述飞轮思维的文章里,我们经常能够看到“长坡厚雪”推雪球的说法,实际上这个描述并不正确。如果这个雪坡道是一个又高又远的上坡,那么不管你怎么推动飞轮,恐怕飞轮也无法自发转动,而你则变成了那个终日无休的西西佛。

换言之,设计飞轮时不但要考虑内部因素影响,还得考虑环境因素的影响。这一点我发现其他关于飞轮思维的文章鲜有提及。回到“成长飞轮”的例子中,如果我的第一年在一个矛盾存生、同事之间关系紧张的环境中度过,那么此时成长飞轮怎么样推恐怕都转不起来。这就是我们常说的:选择比努力更重要。

3)飞轮转动的原动力来自于基本的供需关系

飞轮不是永动机,在最后飞轮之所以能够自发转动,是因为背后存在的供需关系在推动,供需关系之间本来就有吸引力存在。为什么一开始飞轮不能自发转动?因为一开始数量极少的供需关系产生的力量很小,不足以产生足够的推力。而我们所做的事情——“推动”飞轮转动,就是把供需关系的双方吸引到你的飞轮上来,让量变引发质变——反映在表象上,就是飞轮自发地转动起来了。因此,在设计和推动飞轮时,一定还是要回到供需关系这个本质上去思考问题。比如,亚马逊的商业飞轮,本质上还是买家和卖家的供需关系;我的成长飞轮,本质上是生产者和消费者的供需关系。

4)不要试图让飞轮瞬间停止转动,你一定会失败

为什么我们定的新计划总是会失败?在本文开头我说过,这不是因为新的计划很难开始,也不是因为我们的懒惰。

真正的原因在于,在开始推动一个新的飞轮的时候,意味着我们得让已经在转动的飞轮停下来——而让一个已经推动的、拥有巨大动能的飞轮在瞬间停下来,这基本上是不可能的。同时,让一个新的飞轮开始推动,这基本上又非常的困难,难上加难,于是我们就失败了。

另外,已经转动的飞轮,每个独立的构件已经吸收了巨大的能量,此时想要在瞬间让飞轮停止,那么就得想办法让能量在瞬间释放。如同上文中的例子,亚马逊的业务不可能在瞬间停止,而我的个人成长已经和团队绑定了,秤砣离不开秤杆,不可能在瞬间就找个人完成替换——除非我们能接受巨大的代价。

所以,和推动飞轮转动一样,让飞轮停止转动必然是一个非常缓慢的过程。

讽刺的是,绝大多数人根本就没有考虑过如何让飞轮停止的问题。

然而,如果你想成为一名优秀的工程师,我的建议是有始有终且善始善终——在想好如何开始的同时就一并想好如何结束。

组合使用

因为飞轮需要反复的升级和优化,所以飞轮思维可以和迭代思维组合使用。

此外,在推动飞轮时,为了减少不确定性带来的风险,我们可以用使用灰度思维。

在推动飞轮的过程中,难免会遇到问题,此时可以使用根因思维和复盘思维。

本章小结

本章讨论的飞轮思维求我们设计一个“飞轮系统”,然后通过持续推动飞轮的转动来积累足够的能量,直到飞轮能够自发持续地转动下去。

飞轮思维适合于需要长期投入的事情。而飞轮思维最难的一部分在于,在飞轮能够自发转动前推动飞轮的阶段——这个阶段需要我们数十年如一的不懈坚持。

就像本章开始就意味着本章会结束一样,思考飞轮时,不但要思考如何开始,同样也要思考如何结束。

(本章完,版权归作者王晓辰所有,若要转载,请标明出处)

作者简介

王晓辰,软件研发工程师,8年+金融科技从业者,文字价值和文字理想的信仰者和践行者,公众号“架构师的白日梦”的作者。

他坚信用心写就的文字具有无穷的能量,可以穿越时空的阻隔,向读者传达最纯粹的经历、最质朴体悟以及最深邃的思索,最终完成思想的启迪和灵魂的交流。

架构创造未来,文字打败时间!