我的架构思想(五):你所关注的系统——了解系统的过程(尝试一个“建立知识”的过程)

阅读数:28 2019 年 10 月 12 日 16:44

我的架构思想(五):你所关注的系统——了解系统的过程(尝试一个“建立知识”的过程)

我们讨论上面的认知理论,其实是在讨论我们建立“知识”的具体方法。然而如上面讨论的,我们从一个系统中获得的知识因人、因方法而不同;既便是相同的方法,由于其实施者的不同以及方法(本质中存在的)误差,也会不同。这就是作为架构师,任何两个人都不可能得到相同的架构结果的根本原因。所有的最终架构都是在实施过程中的调和,以及某些决策者、决策机构的“决定”。

大多数的外在特性是容易从系统中辨识出来的。例如,我们要做一个办公系统(OA,Office Anywhere),那么我们可以肯定几点事实:

(1) 这一系统总是某些办公室成员使用的;

(2) 这一系统总是提供上述人员的日常工作所需的功能;

(3) 这一系统既包括对现实工作的映射,也包括一些试图改变现行工作的电子化需求。

这几点事实显而易见,是由系统本身决定的4。我们可以因此找到一些系统的组成部分:

4 事实上并不尽然,我只是有意地忽视了这一过程的复杂性。

(1) 观察办公室成员的工作,所以需要邮件、日程、考勤、审批等功能;

(2) 考虑到电子化管理,所以需要新闻发布、消息通信、文件管理、讨论区等功能。

据此很快我们就可以描述出这一系统的架构,如图 2 所示。

图 2 通用办公系统架构 v0.0….1

我的架构思想(五):你所关注的系统——了解系统的过程(尝试一个“建立知识”的过程)

但这些只是一些共性的功能,也就是大家都需要的。随着你对办公室成员的调查进一步地展开,你必然面临一些特定的需要,例如:

(1) 人力,即档案、招聘、培训;

(2) 营销,即客户、活动;

(3) 经营,即资产。

据此我们进一步补充这一系统的架构,如图 3 所示:

图 3 通用办公系统架构 v0.0….2

我的架构思想(五):你所关注的系统——了解系统的过程(尝试一个“建立知识”的过程)

回溯我们对这些“功能性模块”进行分类的依据,我们可以为这个系统的三个主要部分命个名,分别为“日常办公”、“电子化管理”与“特定业务”,如图 4 所示:

图 4 通用办公系统架构 v0.0.0.1

我的架构思想(五):你所关注的系统——了解系统的过程(尝试一个“建立知识”的过程)

几幅架构图的演进关系并不难理解,但有一点点差异:图 2 至图 3 的标题中的版本号是“v0.0….x”,而在图 4 中却是“v0.0.0.1”。更深层次的问题是:何以认为前者连“一个架构的阶段性版本都算不上”,而图 4 却可以称为“一个最最最初级的架构版本”?

我们可以依赖种种视角对系统加以观察,并添加种种分类依据来得到前两幅图所示的“v0.0….x”版本的架构。但是,这些“识别”与“分别”的方法,无助于你得到“v0.0.0.1”中的几个关键概念:日常办公、电子化管理与特定业务。关键的区别在于,在你做出这些定义之前,现实系统(我的意思是需要你开发这个系统的客户、办公室成员或部门)并不会向你提出这三个概念;除非你主动提及,否则这些概念也不会对现实系统的实务有任何影响;除非你将这些概念独立出来,否则即便现实系统的确是由这些规律内在地驱动着的,也不会有人发现。

但是,是何种思维方式,让你:从现实系统中“发现”这三项知识,并将它们设定为这样的一些概念,并为这些概念设定了有别于其他的依据?

又或者问:你何以在系统中做出一些设定,而非仅仅陈述现实系统的事实?

评论

发布