郭东白的架构课36
你好,我是郭东白。
这是我们第二个模块的最后一节课,我会先来展示整个架构活动的大图,然后总结一下模块中的核心知识点。
这个模块的内容非常多,所以通过这节课的总结与回顾,希望你能对整个架构活动建立起宏观的认识。同时,也可以再温习一下相对陌生的内容。此外,评论区的内容也很丰富,是不错的学习材料,可以为你提供不同的思考视角。
架构活动总览
首先看一下架构活动这张大图,它覆盖了整个模块的所有知识点:
图中描述了架构活动的四个核心角色,分别是决策者、赞助者、执行者和架构师。架构师的作用贯穿架构活动的整个过程,是架构活动的设计者、规划者和执行保障者。我用底部的绿色条,来表示架构师在架构活动中持续创造的价值。即:通过持续发掘和评估重大风险,来控制整体的交付风险;通过分析和解决差异点,促进尽可能多的参与者达成共识;通过不断分解问题,保障增量价值的交付;通过持续的文档沉淀,从而驱动科学的决策。
一般来说,架构活动有八个大节点,依次是环境搭建、目标确认、可行性探索、规划确认、项目启动、阶段交付、项目上线和总结复盘。我在图中用浅蓝色来表示。其中项目上线是个比较常规的重大节点,不过在我们的方法中,对于架构师来说并不是重点内容,所以就一笔带过了,没有单独拿出来讲解。
这些节点不一定要出现在我们主持的架构活动中。比如环境搭建,如果你所在的公司很小,或者你在同一拨人中主持过多次架构活动,就没必要重复搭建类似的架构环境了。
如图所示,这些节点基本上是按顺序进行的。但我们也经常遇到需要循环往复不断调整节点顺序的情况,尤其是目标确认和可行性探索这两个节点,可能需要反复迭代才能完成。
当然,从宏观层面看,架构活动又是连续不断的。一个架构活动结束之后,你和其他参与者又将进入到下一个架构活动中,从流程搭建重新开始。
不过更现实的情况是,任何时候,部分参与者会同时参加多个架构活动。这涉及多个架构活动互相干扰的情况,就共享资源而言,是一个多方博弈的过程。
到这里,你对架构活动应该建立起宏观的认识了。接下来,我就总结一下我们近二十节课中覆盖的重点思想。
一个大环境
架构活动是在一个大的架构环境之下进行的,也就是我们在节点一里搭建的架构环境,所以这张图还可以有另一种表现形式。节点一产生了能覆盖其余六个节点的大环境,也意味着节点一与其余六个节点形成了父子关系。
不过我们这张图主要是为了示范从架构师的视角看架构活动都有哪些行动点,所以这七个节点在图中就表现成了并列关系。
在图中,我用黑色直角线条连接了节点一与其他六个节点,来表示这种父子关系。整个大的架构环境,需要有一个所有参与者共同认可的决策信条和冲突解决机制,以及能保障活动成功的激励机制和工作环境。
我们在一些节点中反复提及这些信条和机制,比如重大风险梳理的过程、任务边界划分的过程等。这种基于理性思考、尊重事实的决策方式,是我们为整个架构活动建设的最重要的保障机制。
两个目标确认点
图中有两个圆环形图标代表了“目标确认点”,就是完成架构活动目标确认和验证的时间点。一个是在目标确认环节,一个是在项目上线环节。
我们在模块一的法则一就提到了,保障唯一且正确的目标是架构师的生存之根本,所以目标确认和可行性探索这两个节点(即节点二、三)就是在保障目标的正确性、合理性和可达性。经过反复确认后,一直到阶段性价值交付(即节点六),我们将始终以这个目标为决策和行动的指引,从而作出正确的判断。到了项目上线之后, 我们依然要以这个目标为标准来验收整个项目的产出。
当项目没有达到预期目标时,很多人非常担心被老板追问为什么目标没达成,然后试图逃避验收环节。但事实上,这个验收环节可以帮助你发现具体的问题点。而这些问题点,就是我们启动复盘环节的前置条件。那么复盘环节,最终就是要找到具体决策和流程中的缺陷,从而修复问题,避免同类问题的发生。
三个放弃点
图中还有两个深红色的三角图标,代表执行放弃的动作。每个放弃的动作都有三个入口,也就是三个放弃点:
- 入口一是风险决策的时候,指的是发现无法控制的重大风险。
- 入口二是架构规划确认的时候,指的是发现架构规划无法满足预期目标。
- 入口三是规划正式确认的时候,指的是发现执行计划存在重大风险,无法满足预期目标。
我们在前面的课程中已经多次强调了,放弃得越早,风险越小,成本也越低。放弃得越晚,团队承担的心理压力越大,对团队的士气打击也越大。
需要注意的是,随着我们架构师判断力的逐渐提升,发现重大风险和及早止血就变成我们的核心能力了。
四个主要角色
图中有四个主要角色,分别是决策者、赞助者、架构师和执行者。也就是标记在图中的四个人。
其实架构活动中还有很多重要的角色,比如项目经理。同时,需求侧的角色也对项目成败有着重要影响,比如产品经理、产品业务运营等。此外,在有多个复杂汇报关系长期参与的情况下,HR也是一个非常重要的角色。
这里需要注意的是视角的不同。我们整个模块是从架构师的视角出发,来描述我们在架构活动中的关键动作和行为。如果换个视角,比如把架构师换成决策者,那么他的关注点、行动点和思考方式又有所不同。
另外我想强调一下架构师与这些角色之间的互动。如图所示,在目标确认和可行性探索的过程中,我们主要跟决策者和赞助者互动,目的是辅助他们作出正确的决策,为架构活动设定正确、合理和可达的目标。
在规划确认、项目启动和阶段交付的过程中,架构活动的核心转移到了执行者,那么我们和执行者之间的大量互动,目的就是保障架构规划的完整性、合理性和结构性,控制执行风险,并持续关注执行过程中的核心增值点。可以说,在架构活动后期,执行者是主要角色。那么架构师的作用就是为执行者注入全局视角,提升决策质量。
多条反馈链路
这张图里还绘制了一些反馈链路,比如蓝色线条,始于节点六(阶段性价值交付),终于决策者,代表在阶段交付的过程中,架构师必须向决策者反馈交付进度和重大风险之类的信息。
这里要强调的是,架构活动成功的关键,就是为整个架构活动设置多个反馈链路,确保自上而下和自下而上的反馈链路都是通畅的。有了这些反馈链路,我们才能掌握架构活动的真实进展,在出现问题时能及时干预,避免问题失控。
全程持续地增值
最后我想特别强调一下“架构师是如何创造增值的”这个问题。有些人误以为增值就是撸起袖子加油干,也有些人误以为增值来自深度参与,还有些人认为增值来自明智的决策。这些想法的确有一定的道理,不过根据我的观察,这些都不是架构师最核心的增值。架构师最大的增值来自我们在整个架构活动中对决策的持续引导上。
自始至终,架构师都不是团队大脑的角色。无论是宏观节点上,还是节点内的重要步骤上,比如说任务分割,我们都要建设并倚仗去中心化的决策过程,鼓励参与者来贡献尽可能多的想法。
从这个角度看,架构师的重要性可能不是很高。但是事实上,对高质量决策的识别和引导能力,会让我们变得不可或缺。正是这种去中心化的决策过程,使得我们主导的架构活动比其他人主导的架构活动有着更高的成功概率。
在具体的实施过程中,我们需要做到三点:
- 确保软件架构的合理性视角不被忽略;
- 引导参与者在信条之下做理性讨论;
- 确保讨论的收敛,防止讨论变成脑暴。
这些内容,我们在课程里都有示范。最后我再强调一下粉红色的度假标识。个别公司存在一种非常病态的文化,把持续加班与员工价值贡献画等号。事实上二者完全不等价。从我个人的加班体会来看,在持续9117加班的过程中,我的总产出是低于996,甚至是995的。
在互联网几乎全体舍命狂奔的状态下,高强度的工作是个必然。我也见到过不少同事生重病的例子。在一个持续高强度的工作周期之后,必须要学会调整自己的心理和身体健康。我的经验是,没有充足的体力,思考质量也不会有多高。
关于王道和霸道
我们刚才提到了多个架构活动之间形成博弈的情形,关于这些内容的讨论深度,将会远远超过我们这门课程的范围。所以我仅就之前提到的王道和霸道的行为方式,来简单阐释一下。王道和霸道也是一个博弈的立场。
我们很难定义一个普遍的王道,不过一家公司内部的王道,我认为还是可以被定义的。从价值创造的角度出发,王道就是公平、理性且公开透明的环境,以及尊重事实的行为方式。具体而言,包括如下三个判断条件:
- 架构活动的资源分配以预期的价值创造为准。
- 架构活动的激励以实际可度量的用户和商业价值创造为准,不能偏离架构活动时设定的预期。
- 架构活动中的主要决策要尽量公开透明。
一般来说,王道就是顺应自然和民意的行为。在商业环境中,我理解的“顺应自然”就是尊重市场规律,以真实的价值创造来分配资源和激励。而“顺应民意”,则体现在真实的用户指标上的贡献值上,也就是大家常说的用脚投票的部分。
总的来说,架构师会面临很多挑战,应付这些挑战,有一些更符合长期的市场发展规律的办法,也更有利于提升企业长期的效率。比如用户体验提升和技术创新,我将这类解决办法称为王道。不过也有一些办法,通过相对简单粗暴的手段能达到短期目标,比如推广营销和强制997等,我称之为霸道。
有兴趣的话,你可以上网查一下关于王道和霸道的解释,这些内容会激发非常有趣的思考。我相信学习这些知识,会对你的架构师职业产生很多启发。
这里需要注意的是,如果是在一家行王道的环境里工作,行王道就相对容易一些。如果是在一家行霸道的环境里工作,行王道就相对难一些。你可能会问我,我的环境到底是行王道还是霸道啊?官方回答肯定是行王道。这个时候你只有听其言观其行,靠管理层的真实行为来判断了。如果说你观察到企业的行为不满足我前面提到的三个判断条件,那你就是在行霸道的环境工作。
但是无论是在哪种环境下工作,我都建议你尽量行王道。行王道的做法,会提升你作为一个架构师的普遍适用的能力。即使离开了这家企业,之后还可以继续创造价值。但是行霸道的做法就像是混黑社会,只能在同一条街上混,没办法搬家。
小结
我们这节课讲了架构活动的整体宏观视图,以及我们在其中的核心价值。我看到模块二里有不少同学说:“我要是早早读到这些文章就好了,可以避免一些错误。”从我自己的经验来看,还真不是这样。在我的认知里有这么一句朴素的话:“实践里面出真知”。
什么是真知呢?我认为就是那种你坚信且知道在什么时候去如何利用的知识。换句话说,没有实践过的理论,都不是真知。
我在开篇词就提到过。我们处在一个信息泛滥的年代,接收太多的理论了。如果你非常好学,今年你可能已经学了10门课了。但是如果不实践,那么知识不会对你的命运产生任何改变。
如果实践了,比如像一些同学,在学习这门课程之前就已经实践了。那么恭喜你,那些你深有同感、如获至宝的建议,就能成为你认同、并且能够利用的真知了。
模块二都是关于架构活动中的实操建议。因此,请你实践!
思考题
这节课只有一个作业:模块二至此就结束了。你觉得这个模块还缺少什么内容吗?你有什么好的改进建议吗?
欢迎把你的思考和想法分享在留言区,我们下节课再见!
本文来自博客园,作者:易先讯,转载请注明原文链接:https://www.cnblogs.com/gongxianjin/p/17012090.html