14|模块小结:这些生存法则的逻辑是什么?

你好,我是郭东白。到这里,我们就完成了模块一的学习。那么这节课,我就以一个更宏观的视角来总结一下整个模块的思路,帮助你更好地理解与吸收。

过程正义:为什么要定义生存法则?

你有没有想过,我们为什么要定义这些生存法则呢?在我看来,我们架构师要尤其信奉原则(Work by principles)。所谓信奉原则,就是采用相信过程正义的工作方式,用一组原则来指导行为和决策,而不是随心所欲地工作。

过程正义,这个词源自法律领域。如果放在架构活动的情境中,就表示你作出决策的每一步都是公平(Fair)、正义(Justified)和可解释的(Explainable),而不是靠一两个人的强势来达成的。

架构师这个角色从定义上来说,本身并不具备决策权和取舍权,他仅仅可以靠寻找更优路径和目标来推动架构活动。如果多数参与者都不认同你的“更优”,那么架构活动成功的概率就会大幅缩小。所以过程正义的价值就在于,架构师可以和架构活动参与者一起找到那个更优的路径。

要做到过程正义,意味着架构活动参与者都要在事先约定的某几个原则之下,来进行决策和行动。这些指导原则,可以是参与者为这个架构活动临时约定的,也可以是我们讲的这六条生存法则。法则可以变,但相信法则这个宗旨不能变。这么做,有两个最显而易见的好处。

一方面,法则具有对称性。你是法则的发现者和传播者,但同时你也受法则的约束,这是一组行为信条,引导你与周围人共同去做正确的决策。对称性,从某种程度上来说,暗示了某种形式的包容。对于架构师而言,不论你出具什么规则,都没办法全面证明法则是万能的,适用于各种情形用。

那么在无法证明的情况下,对称性就要求我们敢于包容不认同法则的人,而不是打压他们。所以我一直认为那些举起道德大旗想一下子把对立者置于死地的人,是不讲公平正义的。

另一方面,我们共同坚信的做事的法则就是“道”。之所以将我所相信的法则讲出来,是期望可以有更多的人学习并应用。如果你认为这些“道”不够合理,那么我们可以共同探索更好的“道”。而如果我的“道”为人所知,那么就会有更多的追随者。同样的,你作为架构师,也可以总结你组织架构活动的法则,从而吸引更多有相同“道”的人。我认为这就是所谓的“得道者多助”。

道可道:生存法则背后的总体价值观

在六条生存法则背后有一个大假设,就是“道可道”。意思是架构活动的成功规律都是可以被发现、表达和反复使用的。

不过这里还有个大的命题:什么才算是成功呢?这个问题与企业的核心价值观有着强关联。其实答案有很多,我们这六条生存法则选择了一个答案:达尔文主义价值观,即企业生存是第一优先级

你会发现,这个价值观渗透在了每条法则中。拿外部适应性这条法则来说。架构师通过提升架构方案的结构性,来防止架构随着时间熵增而逐渐发散、失速。那么架构师就需要为企业注入灵活性(Agility)。这就是达尔文认定的物种生存之必须。其他的法则,你也可以试着推演一下。

请注意,我这里强调的达尔文主义限定在企业范围内,并非你生活中必须信仰的价值观。此外,价值观因人因场景而异,无所谓对与错,更无所谓高与低。除了达尔文主义,企业也可以选择其他的价值观。只不过在商业竞争这个大环境下,如果企业不将自己的生存放在第一优先级,那么作为架构师,我认为你也很有必要重新审视一下企业的价值观究竟是否合理。

非常道:六条生存法则就够了吗?

我尽自己所能总结了适用于当下互联网环境的六个架构法则。我认为这些是一个架构师应该聚焦的思考和行动的关键点。不过也有人问我,法则为什么是六条呢?六条就足够用了吗?

答案是:肯定不够。准确来说,这些法则只满足了以下三个条件:

  1. 它们适用于我的个人经历,以及我能近距离观察到的场景中(以百计);
  2. 这些法则对我而言,置信度(Confidence Level)足够高(~90%)。;
  3. 这些法则能把我的注意引向那些会导致架构失败的关键点上。

也就是说,我把我过去二十多年的个人观察总结成了六个法则,可以帮助我解除一些失败的根因。也意味着,除了这些根因之外,肯定还有其他根因存在。所以这六条法则具有一定的普适性,可以帮你躲开大多数的失败,但不一定能完全帮助你成功。因为这些法则是基于我过去多年的观察和学习,主要是PC、互联网和移动互联网环境下的观察。要知道,技术和社会环境一直在变,所以这些法则肯定不是一成不变的。也就是说,它们“非常道”,你应该能找到更好的一组法则。

那么为什么就是六条呢?我二十年就总结了六条法则吗?肯定不是的。我总结了不止六条,但是使用这些法则也是有成本的。我认为你不应该关注太多的法则。

这与我日常的管理和做事习惯有关。在我的团队中,几乎所有的架构评审,我对长度和条数都有所限制。实质上,我期望他们能在日常中练就取舍的能力。

一方面,我们的注意力和精力是极其有限的。不论是大的架构活动还是日常工作,都有很多事情要做,所以要保证注意力和思考尽量集中、不分散。

另一方面,从一线研发人员到CTO,真正要取舍的只有几个最核心、最基础、最具决定性的点。其他的都不重要,甚至你也不应该关心。

比如我一年下来,做的真正有价值的决策也就两三个。而大多数时间,都在思考不同的优化路径。因而在这几个核心点之外的事情,我都不会放太多的精力。

这些年来,我虽然洋洋洒洒总结了很多东西,但真正值得绝大多数架构师关注的,我认为这六个方面已经足够了。它们覆盖了架构活动的目标、环境、输入输出、优化方向和文化环境。这些生存法则试图把你的注意力引导到这些问题上去,同时也意味着最终也要转化为行动。

对架构师来说,针对每一个问题,你都需要有一个行动点。我现在再把这些法则放在一起。不过这次我建议你细细品味这些法则,从你的注意力、价值创造点和行动点来重新审视这些法则。

第一,审视整个架构活动的方向是否正确。对应的法则是要有一个正确的目标。而你的行动点就是确保目标与公司的战略意图相匹配。

第二,审视参与者动机和用户的需求是否合理。对应的法则是不要搭没有人性的架构。而你的行动点就是在方案设计和架构活动组织中充分考虑研发和用户的人性。

第三,审视你的技术是否能够创造商业价值。对应的法则是要有自己的商业模式。而你的行动点就是在一个有限资源下最大化商业价值。

第四,从技术和商业视角审视架构方案是否合理。对应的法则是注重商业和技术的生命周期。而你的行动点就是选择已经有规模优势或者是即将有规模优势的技术。

第五,在变化的环境中审视你的行动。对应的法则是追求外部适应性。 而你的行动点就是干预架构活动和设计方案来不断地注入外部适应性。

第六,审视你是否拥有安全的架构探索的环境。对应的法则是构建或寻找一个友善的环境。而你的行动点就是在思想上要包容和求真,在行为上要有良知和勇气,最终达到知行合一的形态。 ​

这六个法则是乐观的。相信事在人为,相信通过你的行为可以改变一家企业的生存概率,哪怕是微弱的百万分之一。而改变概率的机会点,对于每个角色来说都不一样。从架构师的角度来说,我认为最大的机会点就是以上这六个。

如果你认为我的判断不对,我很期望你能在留言区提出建议或思考,帮助所有在学习这个课程的人。不过你提出的时候,我建议给出一些上下文解释来帮助大家理解。

另外,这六条法则的顺序并不是完全正交的。事实上,只有法则一必须要排在第一位,其他法则的优先级排序和使用都需要根据实际情况来调整。我看到留言区经常有同学问“人性是不是必须要被最大化”这样的问题。我们不可能仅以一个法则为根据来做所有的决策,而是要在最大化目标成功率的前提下对法则做取舍。虽说这几个法则都是为了帮助你避免失败的,但是就像我们在课程中不断提起的:有时候环境没有那么尽如人意,你可能要被迫违反一个或多个法则,这个时候你就只能两害相较取其轻了。

三个小番外

至此,我们第一个模块就圆满结束了。接下来,我简单对留言区里的一些共性问题做个简单的回复,是为“番外篇”。

第一,多从失败中看机会。

在模块一里我分享了很多失败案例,目的是想让你规避我走过的弯路。然而现实是,我们要走的弯路一个都不会少。你如果从来没经历过任何我在课程里提到的任何事情,我讲的这些法则你看看也就忘了,也不会有共鸣。不过一旦你在实际工作中犯了与我类似的错误时,我期望这六条法则可以帮助你快速认识到问题,在每条弯路上走的时间短一点,痛苦少一点。毕竟失败是常态,一个真正意义上的成功要等一两年甚至是几年。

这些年来,我有个非常清晰的认知,就是从失败中学习。有些人试图忘记过去的痛苦和失败,我认为这是个不够明智的选择。回想起来,我人生每一步都在不停地犯错,这可能跟我喜欢冒险的性格有关。冒险,不可避免会遭遇一些失败和错误。我所能做的,就是尽量把犯错的经历转化成认知,看清楚错在了哪里、为什么会犯错,然后再从中看到机会。

第二,有勇气相信你身边的人。

架构就是人的活动。讲失败,不可避免会提到某个人或某个团队犯过的错误。我看到了极个别同学评论中,似乎从这些案例分享中得到了“防人之心不可无”的结论。

这不是我的真实意图,更不是我想传达的人生态度。从我个人的经历来看,我觉得要用勇气去相信对你而言还比较陌生的人。

很多资深架构师,尤其是在一家企业工作了多年的架构师,更愿意和“熟悉的人”合作一个大项目,认为这样的合作者是靠谱的。事实上,对一个相对陌生的人形成正确判断,并通过你们的合作将架构活动推向成功,在我看来这种能力是一个你内在的、更容易迁移到新环境的一个生存技能。

在这一点,你甚至可以给那些曾经让你失望过的队友一个机会。如果你这么做了,我相信最终取得的成功,无论是对于你个人还是对于企业,收益将是不可估量的。

第三,关于讨论区和思考题。

我的内容写得没那么快,比如这篇文章是在发布前两周才写好的,又经过了好几轮打磨。所以你写在留言区的精彩内容,给了我非常大的写作动力。

在回复留言的同时,我也发现了大家的一些学习习惯。比如有些同学喜欢追更,发布当天就学完了;有些同学喜欢只听音频,不看文稿;还有些同学则喜欢晚别人一两周,等有留言了再来学习。

无论你是哪一种学习习惯,我都强烈建议你再花点时间看看留言区的内容。这些内容不但澄清了一些疑问点,有些甚至是正文的拓展与再创作,让我也获益匪浅。我相信这些内容,也会帮助你加深对课程内容的理解。

此外,我发现留言区的评论大都围绕着思考题来作答。事实上,我也很建议你能对正文的内容提出问题,甚至是反驳的意见。这不但会帮助你提升,也会帮助我提升。

最后,如果你的学习速度比较快,或者觉得有些内容太抽象,你很难产生共鸣, 那么我建议你可以再做三件事情:

  1. 试图回答留言区中提出的问题;
  2. 尝试分享你对正文内容的理解和建议。
  3. 回顾自己过去经历的一些类似案例,并与法则结合起来,融汇成自己的知识框架。法则不难懂,但要紧的是找到与之相关的案例。

思考题

学习有时候是虚幻的、麻痹的,因为它会营造出一种“我努力了”的假象。我们的课程内容仅仅是学习的开始,而在日常工作中的不断运用和实践,才会真正对你产生帮助。所以我很想请你分享一下,学了课程后,你在工作中是否有所践行呢?有什么反馈吗?如果不方便分享,你也可以“Mark+${timestamp}”一下。timestamp就是你标记在日历里的某年某月的某一天。或许有一天,你将回来说一句:“Done”!

最后,非常感谢你认真学习了模块一。也期望你和我一起,在下一个模块继续探索架构!

精选留言

  • kq yang

    2022-01-20 10:45:49

    事物维持自我存在的能力叫自持性。自持性远比经济系统更深刻,更古老得多。所有你这里从达尔文主义理解生存和发展法则,我觉得已经足够深刻。
    但是有一点要注意的。系统和物种的自持和系统要素和个体的自持是两个概念,细胞必须经常更新,蚁巢中只有老年的蚂蚁才从事风险登记最高的外出觅食。
    但是另一方面,很大程度上这样的“花落”,才是系统自持的结构性成因。
    但这些观察却决不能上升到信念。系统间的对抗,扩张和收缩是环境依赖和户反馈的,也就是索罗斯说的反身性。我们在理解优劣势演变的时候更多要观测环境要素的构建和瓦解,相机因势,不存在多少绝对先验
    商业世界的演变就是一个反常识的过程。像Stuart J.Russell说的,从信息看,事实和观念的差别是获利的根本来源。另外,孙子兵法的最高智慧是虚实篇,所有人的资源都是有限的,你只有不按别人的规则,让别人按自己的规则玩,最后才能玩得精彩。他们说的是同一件事。
    作者回复

    谢谢! 学习了。

    2022-01-20 18:58:21

  • 2022-01-18 08:36:16

    六条法则就够了吗?我觉得数量上是够了,但是随着时间的推移,内容不一定就是老师现在讲的这6条。我们平时在工作或者做决策的时候,并非都需要将这些法则都对一遍看看是否满足再做出决策,而是结合你当前的情况,可能在当前阶段有其中的2条或者3条法则是需要你特别注意,在团队中要特别强调的,做到这些可以带来比较明显的改变,当遵从这些法则成为习惯后,就会变成团队文化,以后遇到类似情况,不需要特别强调原则,团队的决策都是按照这个法则在执行的,这时需要在当前特别强调的可能就是新的法则。
    举个例子:有段时间我们特别强调墨菲定律,你觉得有问题就一定会产生问题,在修改软件问题的时候,要求每个研发都说清楚自己的修改思路,有说不清楚的大概就是没有完全掌握,修改的内容可能还会存在问题,就要求继续了解,知道能够清晰说明修改思路,执行一段时间后研发的修改质量明显提升,改一个问题又引入一个问题的情况大大减少,现在已经不需要特别强调,大家已经能够比较好的执行了。
    作者回复

    是的, 解释的非常好! 例子也有意思, 非常赞! 想问你一下, 这个方法从开始尝试到有效果花了多久? 又过了多久增量价值变低的? 这么面主要是靠讨论, 还是有个比较好的资深同学做引导?

    2022-01-18 10:47:02

  • Jxin

    2022-01-23 10:44:14

    随手笔记:
    1.六个法则,法则一是最关键的准绳,其余五项都是实现一时的行为原则。
    2.关于法律。强烈建议大家学一学,个人觉得受益匪浅。比如,我们判断一种行为是否属于犯罪,首先要搞清楚刑法中这种罪名背后保护的是什么法益;我们在解释一个刑法条款时,首先要心怀正义。这些行事准则其实就很贴合我们的法则一,也就是目标优先。只有跳出表象抓住本质,围绕核心目标去解释或则行动才不会偏离方向。只有心怀正义,看的是社会价值的大局,才能在分毫取舍间快速做出有利于大局的决策。
    3.关于失败。成功需要各个因素都达标,而失败只需要一个因素达到就足以万劫不复。所以做好风险管理,培养拥抱失败的文化(从失败中总结经验站起来,而不是一味不惩戒),或许比规避失败更适用。
    作者回复

    这两个挺赞的: “背后保护的是什么法益”, “解释一个刑法条款时,首先要心怀正义”, 学习了

    2022-01-26 10:16:53

  • neohope

    2022-01-18 11:39:33

    郭老师,您这是以CTO的角度,提出了CTO对架构师工作的期望和要求:
    在一个友善的环境下,从人性出发,尊重商业和技术的生命周期,用尽量有外部适应性的技术方案,抵达正确的战略目标,最大化技术的商业价值,从而体现出架构师工作的价值。
    【这里是一个表示震惊的表情,请自行脑补】
    作者回复

    我在开篇词里提到过, 整个课程是一个架构师给另外一个架构师的建议。 我作为一个CTO是不会让团队里的架构师自己去找一个对架构师友善的环境的。 我要想方设法为他创造这个环境。

    我不知道你想通过震惊的表情想表达什么?

    2022-01-18 17:10:00

  • 小昭

    2023-04-29 20:10:16

    【学习有时候是虚幻的、麻痹的,因为它会营造出一种“我努力了”的假象。我们的课程内容仅仅是学习的开始,而在日常工作中的不断运用和实践,才会真正对你产生帮助。】

    老师这句话说的真好啊,作为一个非架构师来学这门课,每节课都听了两遍以上,但感觉还是没进到脑子里,究其原因就是跟我的工作关联内容太少了。

    但还是学到了很多,比如:
    1、目标:要确定一个短期目标,并为之付出努力;
    2、人和:关注人性,关注朋友们的需求;
    3、资源:时间精力有限,要把这些放在对自己的目标有用的地方;
    4、天时:遇到机会要及时抓住,但更要能看到这个机会;
    5、行为:社会在发展,要不断学习才能适应社会,不会被淘汰;
    6、地利:知行合一;
    作者回复

    谢谢!

    2023-07-05 00:23:51

  • Geek_sa2mt4

    2022-09-12 23:33:01

    学习了模块1,我深刻的感受到老师在用技术手段创造商业价值,同时也感受到了中国哲学的魅力。
    中国哲学是一门践行的哲学,不光是阳明心学中点破的知行合一,连早了很多年的论语也是如此,论语通篇没定义过仁,但读过论语的人都可以判断出一个事情是否仁。我想这也是老师希望我们学习法则达到的最终境界,通过学习引发自己的思考,找到自己的架构原则,这些原则很可能殊途同归。
    同时中国哲学也是一门人生哲学,教会我们做人。比如老师多次提到的勇气,它的底气来自于我们的良知,如果不能致良知,则无法真正践行这些原则。
    作者回复

    这个很有意思。 其实我自己也没做好。 我一个朋友前两天对我说: 你这个人太理性, 不能够接受“模糊”的概念。 我觉得中国哲学的模糊性的确也是它能够传承千年的一个很重要的原因。

    2022-09-19 20:20:44

  • 坤蛰

    2022-04-25 08:34:08

    感谢老师的分享与总结。学完六个法则,回想了一下最近做的一次架构重构,满足了法则一,重构的目的或预期效益与公司的战略目的一致,降本增效,可以打磨成产品;技术选型过程中,与团队成员进行了技术选型,沟通了多次,最终选择了生命周期比较成熟的;对人性的考虑,是欠缺的,有个别小伙伴表现出了危机感或者说是存在感较低;外部适应性,我在物流行业,当前的架构重构与物流行业的发展契合度还算可以,满足当前的应用场景和用户需求。后续在工作中还要再结合六大法则深入学习体会,感谢老师分享!
  • Neil43

    2022-01-28 15:13:47

    郭老师,请教个问题,之前郭老师专门探讨了中台的本质和定义,中台本质是把一些分散的重复的开发工作集中起来, 通过共享同一个研发团队来提升不同业务线之间的共性;我现在是在一个面向其他金融公司的ToB公司,那对于这样垂直行业,我们目前的做法是类似SalesForces去做一个行业最佳实践的标准版,客户的定制化功能通过服务编排方式来实现;这种ToB Sass方式等同于业务中台的方式吗?那中台这个概念在目前ToB行业是不是还是可以继续坐下去,尤其那些技术演化相对慢且功能通用性高的垂直化场景中呢?
    作者回复

    中台我会在后面的课程作为一个案例专门讨论

    2022-01-29 12:08:46

  • 本一

    2022-01-24 11:24:00

    这六填法则其实很有体会,之前基本就有在做,之前没有系统性的总结过。

    现在基本做建模之前会先问战略目标是什么,拆分到技术上需要提供哪些帮助,影响商业模式的因子有哪些。

    拆团队也按目标拆,自然而然每人都有自己的地盘。这两条基本上是做之前都能想到了。

    外部适应性,原来也是用的一些个成熟或者即将成熟的技术,这块之前是理解成技术合理性,外部适应性相对更合适一些。

    商业和技术生命周期这块,之前有谈过融资,他们对这块是看的很清晰的,一个商业模式是一个生意,不是一个终生制的事业,我觉得是需要学习这种视角的。技术也一样,一个技术体系类似一门生意,有起有落有终结的。

    架构师的价值这个事情之前也会考虑,最起码看下自己能不能值回票价(自己的收入)。
    作者回复

    “一个技术体系类似一门生意,有起有落有终结的。” 是的, 建议读一下 马克吐温的《Life on the Mississippi》, 这种感觉非常非常深。

    2022-01-26 10:15:41

  • 剑八

    2022-01-19 07:49:50

    符合研发人性法则,这块之前项目中有不符合这条,架构认识成本大
    法则终结起来就是:在良好的环境中,以企业的生存为目标,咬合企业战略目标,为企业发展注入适应性。
    设计架构时要有一个架构目标。
    作者回复

    “架构认识成本大” 能方便给一下案例吗? 感觉很有故事。。。

    2022-01-19 21:09:23

  • 咏晨桃

    2022-02-10 20:23:28

    最近在尝试用事件风暴来领域建模,从零到一的过程中有很多点都是模棱两可,在请教公司内部大牛的时候他们会介绍一些事件风暴的原则, 以此来纠正自己,最终让建模过程和结果看着更加的正规,有说服力,更体系化;联想到这六条架构原则,作用应该差不多,就是让行为或者判断更加的正规
  • thinkers

    2022-01-18 10:10:50

    日常工作中能坚持正道、追求真理的架构师好少,大部分架构师只是形似,老师这个课程真好!
  • 堡循环

    2024-05-19 07:00:39

    mark 2024-05-19
  • 李沛霖-程序猿

    2023-09-29 11:10:10

    企业创建的目标是为了生存呢?还是为了构建一个酷酷的产品呢?
  • 夏嘉斌

    2023-02-20 13:30:51

    架构是否违反人性,由于人性和群体的复杂性,本身也面临全局和局部的取舍。有相当能力影响普通人的AI产品,例如ChatGPT,对用户和厂商是不同深度和方面的影响力,是否整合,如何整合也是需要仔细考虑的。

    站在厂商的角度,可能会考虑:
    * 对话模型AI是否能提升客户满意度?
    * 是否可以降低客服成本?
    * 是否可以迅速响应定制化需求?

    厂商员工考虑:
    * 是否会取代我的工作?
    * 是否会取代部分高频低难度的工作,把更复杂更难处理的工作交给员工?
    * 是否会加强工作难度和工作强度?
    * 是否影响收入?

    客户角度:
    * 我的需求AI是否真的能够明白?
    * 我如果需要人工客服,是不是仍然有难以分辨AI的参与?
    * 我的个人数据和隐私会不会被进一步被厂商利用最大化我的商业价值?

    诸如此类其实都属于人性,但是架构师往往只能选择最适合企业利益的“人性”。
  • jinny

    2023-02-09 17:14:01

    Mark+2023-2-9
  • jinny

    2023-02-09 17:13:00

    Mark+${timestamp}
  • Geek_Lawrence

    2023-01-17 23:15:10

    架构师没有决策权和取舍权,这看起来更像是一个建议者的角色,想拿结果有点难
  • 大道至简

    2023-01-10 17:02:47

    企业的成功需要去做很多的事情,但是如果想长期持续地取得成功,需要有一个纠错机制,类似王朝的御史机制,公司需要有纳谏的机制,企业老板要能够虚心听取建议,而实际的情况是很多企业老板有点过于自信,不能很好地纳谏(人性),无纳谏的途径,导致一些公司一堆问题,但是老板掩耳盗铃视而不见,最后极有可能导致企业失败,如果能纳谏,可以有更长久更大的成功。
  • williamcai

    2022-12-04 21:57:30

    虽然学习完了,但是我感觉能够对架构有了一个简单的认识,值!