业务模型推导

自顶向下构建架构

在架构设计中,往往提出问题难于解决问题,Brooks 的《The design of design》中介绍到:The hardest part of design is deciding what to design. 团队中常见典型矛盾的就是产品团队和研发团队的矛盾。作为研发团队,我们常吐槽产品团队的需求不合理的时候,不懂技术等。其实我们可以试想把自己的工作在往前移一下,不仅仅是去设计架构实现产品的需求,而是去实现客户的需求,甚至发现潜在的需求。这时我们就变成了在设计上提出问题的人,你会发现其实提出问题,很多时候需要同样深入的思考。设计一个好的问题,甚至比解决问题更难。

首先定义问题,而定义问题中最重要的是定义客户的问题。定义问题,特别主要识别出关键问题,关键问题是对客户有体感,能够解决客户痛点,通过一定的数据化来衡量识别出来,关键问题要优先给出解决方案。问题定义务必加入时间维度,把手段/方案和问题定义区分开来;需要对问题进行升层思考后再进行升维思考,从而真正抓到问题的本质,理清和挖掘清楚需求;要善用第一性原理思维进行分析思考问题。

问题解决原则:先解决客户的问题(使命),然后才能解决自己的问题(愿景);务必记住不是强调我们怎么样,而是我们能为客户具体解决什么问题,然后才是我们变成什么,从而怎么样去更好得服务客户。我们应当善用多种方法对客户问题进行分析,转换成我们产品或者平台需要提供的能力,比如仓储系统 WMS 可以提供哪些商业能力。

对我们的现有的流程和能力模型进行梳理,找到需要提升的地方,升层思考和升维思考真正明确提升部分。定义指标,并能够对指标进行拆解,然后进行数学建模,将抽象出来的能力诉求转换成技术挑战,此步对于技术人员来说相当于找到了靶子,可以进行方案的设计了,需要结合自底向上的架构推导方式。

创新可以是业务创新,也可以是产品创新,也可以是技术创新,也可以是运营创新,升层思考、升维思考,使用第一性原理思维、生物学(进化论–进化=变异+选择+隔离、熵增定律、分形和涌现)思维等哲科思维可以帮助我们在业务,产品,技术上发现不同的创新可能。可以说哲科思维是架构师的灵魂思维。

自底向上推导应用架构

先根据业务流程,分解出系统时序图,根据时序图开始对模块进行归纳,从而得到粒度更大的模块,模块的组合/聚合构建整个系统架构。基本上应用逻辑架构的推导有 4 个子路径,他们分别是:

  • 业务概念架构:业务概念架构来自于业务概念模型和业务流程。
  • 系统模型:来自于业务概念模型。
  • 系统流程:来自业务流程。
  • 非功能性的系统支撑:来自对性能,稳定性,成本的需要。

效率,稳定性,性能是最影响逻辑架构落地成物理架构的三大主要因素,所以从逻辑架构到物理架构,一定需要先对效率、稳定性和性能做出明确的量化要求。如果是产品方案已经明确,程序员需要理解这个业务需求,并根据产品方案推导出架构,此时一般使用自底向上的方法,而领域建模就是这种自底向上的分析方法。

自底向上重度依赖于演绎和归纳,演绎,演绎就是逻辑推导,越是底层的,越需要演绎:

  • 从用例到业务模型就属于演绎
  • 从业务模型到系统模型也属于演绎
  • 根据目前的问题,推导出要实施某种稳定性措施,这是也是演绎

归纳,这里的归纳是根据事物的某个维度来进行归类,越是高层的,越需要归纳:

  • 问题空间模块划分属于归纳
  • 逻辑架构中有部分也属于归纳
  • 根据一堆稳定性问题,归纳出,事前,事中,事后都需要做对应的操作,是就是根据时间维度来进行归纳。
上一页