46-架构重构内功心法第三式:运筹帷幄
前言
通常情况下,需要重构的系统,基本上都是因为各种历史原因和历史问题没有及时处理,遗留下来逐渐积累,然后到了一个临界点,各种问题开始互相作用,集中爆发。到了真正要开始重构的时候,架构师识别出系统关键的复杂度问题后,如果只针对这个复杂度问题进行重构,可能会发现无法落地,因为很多条件不具备或者有的问题没解决的情况下是无法做架构重构的。因为,架构师在识别系统关键的复杂度问题后,还需要识别为了解决这个问题,需要做哪些准备事项,或者还要解决哪些问题。这就是下面要讲的运筹帷幄。
运筹帷幄
经过分析和思考,我们可能从100个问题中,挑选出了50个需要通过架构重构来解决的,其中一些是基础能力建设和准备工作,而另外一些就是架构重构要做的核心工作。有了这样一份表格以后,我们应该如何去解决这些问题呢?
最简单的办法就是每次从中挑一个解决,最终把所有的问题解决。这种做法操作起来简单,但效果很差。
- 没有区分问题的优先级,所有的问题都一致对待,没有集中有限的资源去解决最重要或者最关键的问题,导致最后做了大半年,好像做了很多事,但是没有阶段性的成果。
- 没有将问题分类,导致相似问题没有统筹考虑,方案可能出现反复, 效率不高。
- 迫于业务版本的压力,专门挑简单做的实施,到了稍微复杂一点的的问题的时候,就因为复杂度和投入等原因被搁置,达不到重构的目的。
正确的做法是“分步实施”,就是将要解决的问题根据优先级、重要性、实施难度等划分为不同的阶段,每个阶段聚集于一个整体的目标,集中精力和资源解决一类的问题。这样做的好处是:
- 每个阶段有明确的目标,做完之后效果明显,团队信心足,后续推进更容易。
- 每个阶段的工作量不会太大,可以和业务并行。
- 每个阶段的改动不会太大,降低了整体的风险。
具体如何进行“分步实施”呢?
优先级排序 将明显且又比较紧急的事项优先落地,解决目前遇到的主要问题。
问题分类
将问题按照性质分类,每个阶段集中解决一类的问题。
先易后难
循序渐近
划分好重构的实施阶段后,需要评估每个阶段要耗费的时间,很可能会出现有的阶段需要1个月,有的阶段需要6个月,虽然有时候这是客观事实,但通常情况下,按照固定的步骤和节奏,更有利于项目推进。每个阶段最少是一个月,最长不要超过三个月。如果评估超过3个月,那就拆分为更多阶段。