读《Java编程思想》,很受启发。
启发1:“模式语言”是一种新型“管理语言”。管理语言有很多种,例如流程,例如标准,例如规章,例如管理办法,例如通知,例如……
“模式语言”与其他管理语言有其独特之处:
(1)“模式语言”是面向问题的管理语言,而不是面向管理体系的管理语言(流程、标准、规章都可以认为是面向管理体系的管理语言)。面向问题的管理语言的好处,易于表达,易于理解,便于检查、修订,也便于“发动群众”来发展它。
(2)万事皆模式。任何事物都是某种“力场结构”(包括原子)。模式作为一种可以变化、进化的力场结构的表达,不但有明确的“问题”标识,而且可以储存解决方案(数据),可以执行自身的操作。对于需要解决的问题,可以抽取其中任何概念化“构件”并将其表示为模式。
(3)任何人类活动都是模式集合,或者说是调用一个模式组合。
(4)每一个模式都由其他模式所构成。可以通过创建包含现有模式的“包”的方式来创建新类型的模式。因此,可以在一个模式语言系统中构建复杂的体系,而且脉络清晰,仍能保持直观、简单外貌,使人们容易把握。
(5)每一个模式都隶属于更大的模式,或者说每一个模式都是一个上层模式的“实例”。
(6)每一个模式集合内部的模式都可以被其他模式集合引用,减少了管理体系设计过程中的重复劳动。
(7)模式语言具有强大的包容性,可以包容流程、标准、规章,而每一个模式如同一个微型的管理体系。
启发2:每一模式只完成单一的功能(动作)。这是模式语言与其他管理语言相比较可以看出的第二个明显特征。
传统的管理语言由于面向管理体系,其功能是复合的。复合的结果是,一种方法只能针对一种特定问题,可复用性差。模式语言将每一个模式都定义为单一功能的,再由另一个模式将其联系起来服务于一个具体问题的解决。对于那些解决通用问题的模式,企业不需要自己设计,从外部“采购”更为划算。
启发3:模式语言管理将模式语言库的维护与应用流程分开,在应用现场表现为应用流程对模式语言库的调用。这就带来一个重大“利益”——模式语言库的修正、改善可以不影响应用现场的流程,不用重新改写应用流程;而应用程序的改变也不影响模式语言库的结构。这就解决了一个从模式语言库和应用流程两个方面不断升级的方便性问题。这样做比“版本控制”的“更改”成本降低了很多,可以实现企业管理的持续进化。
顺着这个思路思考下去,还可以想到:
1.一个解决问题的模式语言“包”的建立所需要的内在逻辑(侯象洋正在研究这个问题,如果这个问题暂时在电脑中难以解决,则只需要一个指导思想来指导应用者用人脑来解决即可);
2.在现场应用过程中的调用路径程序是否就是一个“包”;
3.模式语言的特征决定的模式语言不可能由一个权威机构制定和发布,只能是一个群策群力的过程,这个群策群力的载体可能就是主题社区。