架构师视角下的架构活动全生命周期。在整个周期中,一共有八个需要关注的节点。
节点一:搭建架构环境
架构师在架构活动的第一步就是为它搭建一个架构环境。遗憾的是,很多架构师由于没有认识到这个环节的内在价值,所以常常忽略了这一步。
打个比方,架构环境是架构活动在企业真实物理环境中运行的虚拟机。我们的研发是在企业这个大的物理环境下进行的。这个物理环境包括决策环境、商业环境、软件研发环境、文化环境和有限的商业和研发资源等等。在模块一里,我们有系统的介绍。这个环境是全集团共享的一个物理机,而你需要给架构活动搭建一个它自己的虚拟机,来模拟这些完整的环境。而你这个虚拟机宕机了,架构活动也就一块儿宕掉了。
节点二:确认目标
架构师需要保障整个架构活动有且仅有一个正确的目标。在这个节点上,架构师不仅需要确认这个目标的赞助人,还需要确定目标是正确、合理、可达的,也就是一个定义清晰、满足 SMART 原则的目标。
在这个过程中,切忌简单相信,而是要通过事实、数据和严密逻辑来保障决策者、赞助者和执行者等干系各方的利益,为企业找到一个正确、合理、可达的目标。在这个过程中,我们也要试图从中发现一些具有长期价值的行动点,从而吸引那些坚持长期主义的同事也投入到我们的架构活动中来。
节点三:可行性探索
架构师必须要确定最终的目标可达。那么如何在最短的时间内识别尽可能多的风险?如何从全局视角锁定重大风险呢?这就是我在这部分内容要着重阐释的问题。这个环节的目标是,向所有合作方提前传递重大风险,并准备合适的预案,从而得到决策者的支持,以继续全力推进整个项目。当然,如果风险不可控,我们也可以选择叫停,避免重大损失。
节点四:架构规划
有了架构环境、确定目标和可行性探索的基础,我们就可以为架构活动做宏观规划了。这里有四个关键动作,分别是统一语义、执行域映射、任务边界划分和规划确认。而这些动作的目的,就是进一步提升架构活动的高确定性和对目标的高保真性。
架构规划之统一语义。统一语义的过程是一个循环往复的识别不同角色、不同场景、不同语境,然后逐渐建模、整合、修正语义的过程。直到所有参与者的需求能够被准确无损地表达、记录和传递,最终通过架构活动实现出来。
架构规划之需求确认和执行域映射。在统一语义的前提下,我们就可以确认架构活动的核心需求了。在架构规划之初,我们要梳理架构活动的用户角色,发掘每个角色的核心诉求,并从活动目标出发确认需求的正确性与合理性。同时,还要在统一语境下建立问题域模型,与执行者一起推导出从问题域到执行域的映射。在这个过程中,许多领域映射的冲突可能会被暴露,这个时候,我们必须及时将冲突上升,然后尽快解决,尽量避免将冲突带到任务边界划分中去。
架构规划之任务边界划分。任务边界划分是真正体现架构师思考力的地方,也是很多棘手问题集中爆发的地方。在这个环节,我们需要依照搭建架构环境的方法,先为团队建立一组任务边界划分的决策信条。接着,再进行用户需求和任务分解,尤其是对任务颗粒度的判断。最后,我们要确保任务相关的有限资源被提前锁定。
架构规划之任务规划确认。架构规划的最后一个环节是规划确认。在这个过程,我们需要把输入转成一个不但可行而且要有约束力的规划。除了要最小化项目交付风险外,还要确保所有参与者有能力、有意愿履行各自的责任,从而提升交付的确定性。
节点五:正式启动
启动,代表着合同正式签约生效。那么在正式签约之前,我们还有机会将之前未暴露的重大风险公之于众。这也是最后一个暂停或延后架构活动启动时间的机会。
所以在这个环节,我们需要与执行团队完成一次深度握手,为接下来的实施环节提供问题预警和冲突解决的机制,确保执行过程中可能发生的问题能够被及时解决,团队间的冲突能够被及时化解。有了这些准备,我们才能以高质量的技术内容和充分的信心来开启项目。
节点六:阶段性价值交付
活动启动后,就进入了阶段性交付这一环。过去我们经常见到的都是项目按照时间段,被划分成多个里程碑。这种划分方式虽然可以降低整体目标交付的不确定性,却不能保障架构活动最终交付预期的增量价值。
一种基于最小增量价值单元的交付策略,以保障架构活动的最终产出。这样做的目的是把问题尽早提给市场,让市场给我们指点迷津。此外,我们还可以根据线上效果的评估和分析,来调整阶段性目标,甚至是整个架构活动的目标。
节点七:全面上线
最后就是全面验收后的庆祝环节了。如果前面这些工作都做到位,毋庸置疑,这将是最轻松的一个环节了。值得一说的是,在这个隆重的、最具仪式感的环节,我们可以把高光时刻留给项目经理和各个产品、研发和运营等团队的一线人员。我们架构师反倒要站在幕后。
节点八:活动复盘和机会发现
复盘是被最频繁提起但却很少被认真执行的话题。这是一个架构师成长的关键。
对于架构活动而言,复盘的真正目的是为企业未来的架构活动提升成功概率。那么在复盘工作中,架构师需要平衡好不同的审查视角和分析维度。通过搭建安全的复盘氛围、充足的前期准备、对复盘过程针对性的控制、对机会点的梳理与把控,以及讨论过程中的深度剖析,从而发现深藏在流程和假设中的问题,并找到有效的行动点,确保之后的架构活动能够吸取之前失败的教训。
此文章为4月Day28 学习笔记,内容来源于极客时间《郭东白的架构课》,推荐该课程。