我的架构思想(十五):你所关注的系统——最初的事实(仰首者瞻,凝神者瞩)

阅读数:15 2019 年 10 月 12 日 16:52

我的架构思想(十五):你所关注的系统——最初的事实(仰首者瞻,凝神者瞩)

在讨论中,我们的下面两点设定将会带来一个“没有战略”的死结:

  • 客户并不清楚战略;
  • 架构是服从客户设定的战略,而非为客户设定战略。

因此“依据内在动律来主观判断整体动向”其实是不得已而为之的,因而我们也必须质疑:作为架构师,是否真的“不能设定战略”呢?

战略与方向,是存在本质性的不同的。方向只表达动向,而战略其实是已经决策的动作,或对其行动步骤的规划7。对于架构师来说,无法决定的其实是客户的战略决策,但对于客户的方向是可以有自己的判断的。以某一企业客户为例,架构师可能不能决定该客户:

7 我们要尽可能避免望文生义地去理解这些概念。基本上来说,方向与战略并没有非此即彼的边界。事实上在一些讨论中,方向也是战略的一部分,例如将战略表达为战略方向、战略方案、战略决策等的统一。同理,架构师与决策者也并不具有那么明显的分别,很多时候架构师也是决策团队的成员,甚至是 CEO/CTO 本人。问题是,如果我们非得要分离出一个“架构师角色”来,那么我愿意将架构师作为战略的分析、细化和推进者,对决策过程只作辅助,而认为战略的制定者另有其人。

是否通过购并消灭 30% 的竞争公司。

但架构师可以考虑:

购并是企业客户的一个可选途径,若该途径成立,则账户合并将会成为系统中长期的关键问题。

我们看到,这里存在架构师必须“考虑到”的两个因素:

  • 其一,消灭竞争者是公司运作目的;
  • 其二,购并是达成上述目的的一个可行手段。

架构师对“方向”的考虑在于上述的第一个因素,即对“公司运作目的”的判断:某些情况下,公司并不存有这样的目的,或公司可能根本没有短期竞争者;某些情况下,公司可能需要跟竞争者在某些领域合作,而在某些领域相互牵制;某些情况下,消灭竞争者只是公司经营者的一个口号,而非阶段性的目标……对于类似这些问题,是架构师在方向问题上必须有的判断,这些判断才是后续“是否需要将账户系统的通用化作为架构意图8”的依据。

8 我们这里假设了一种情况,即在某个系统的建设中,架构师将“使用统一的、通用的账户”作为架构意图。而我们的讨论要点在于:是哪些因素决定了架构师应当(或不应当)作出该判断。

但无论是否以此作为架构意图,架构师在整个过程中都没有将“购并”作为一个客户战略。架构师只是在客户的经营动向上作出了自己的判断,更或者是尝试性地思考了这一方向的可能性,并更进一步思考了架构需要为此而做出的准备。

是否将“通用账户系统”作为架构意图,是依赖对许多假设条件的分析而作出的,决非凭籍上述一个推断而得。需要指出的是,上述的思考背景包括许多方面,例如:

  • 架构师是否有客户领域的工作经验;
  • 架构师是否对相关行业的信息有过统计分析与评估;
  • 架构师是否了解客户或其领域当前面临的主要问题;
  • 架构师是否参与客户的经营决策;
  • 架构师所面临的系统是客户的解决方案还是试探性产品;
  • 架构师所面临的是对客户系统的改造还是重建(或新建);
  • 架构师是否了解客户对该系统的持续投入情况。

对于这些问题,一方面它并不仅仅取决于系统内部的一般过程,另一方面它也不是对客户战略的直接设定。它们(以及更多的问题)综合地反映了在架构问题上的、最后可以依赖的一些信息,亦即是:客户在系统——所对应的现实系统——中可能选择的方向。

这种情况下9,架构师需要一些主观判断的能力,以及在系统推进中的一些尝试机会。

9 领域产品、客户项目、通用应用与自用系统,这些都因涉及的系统对象(及其用户、用户的认识)的不同,而导致对它们的架构过程不同。在这里讨论的主要是:当我们需要去提供一些领域产品,而对该领域又并不十分清晰的情况下,我们可以依赖哪些“信息”来构建事实并进一步地提出架构意图。这其实也可以应用于当前系统与现实系统由于高速发展而暂时性地失去方向的情况——它们都处于一种类似“三岔口”的局面中,需要重新的选择与定位。

评论

发布