所谓“系统性思维”,就是将认识对象作为一个独立的“系统”来进行观察,从系统与要素、要素与要素、系统与环境之间的相互联系、相互作用等方面综合地考察认识对象的一种思维方法。就是说,首先要确定一个研究对象,然后确定它的边界,再对边界内的各要素之间的关系进行研究,这种思维方法使人们的思维更具全局意识和整体性。
软件编程是这种思维方式的集中体现。在编写程序之前,先要搞清楚需要完成的功能,以及要达到的性能,即理清它的业务架构和应用架构,确定整个程序系统的边界。如下图所示的飞机机票预定系统,理清各主要的要素、以及各要素之间的关系。然后再做进一步的细化,包括数据库、各要素模块之间接口的定义等。最后更进一步,确定用哪种语言编程,如用C++等,设计类、数据、函数的结构等等。所以整个的思路是从系统的角度出发,一步步的细化。无论编写复杂的系统,如需要分布式的架构体系、并发多线程,还是嵌入式的编程,其系统化的思想类似。只是由于软件工程的成熟,你可以基于现有成熟的框架,而不用从头来开发系统,从而减少整个开发的工作量,如在IaaS、PaaS的基础上编写应用层的软件、基于Docker+Kubernets的系统框架,基于Java的编程环境及丰富的调用接口,基于安卓提供的丰富的framework,嵌入式的内核调度系统等。
对更为复杂的系统来说,特别是包含各种软硬件的系统来说,系统性的思维同样重要。如安防的系统,如下图所示,基于对整个业务的框架,确定硬件和软件的整个架构。从硬件的角度来讲,基于业务的需求,确定好系统的容量、传输速率、各个硬件之间的接口、规格等。同时基于硬件的架构,再确定整个软件的架构,使软硬件要素的协同配合。比如交换机、管理服务器等这些硬件内,都需要匹配需求的软件。
而从更微观的系统,如芯片的设计,同样需要系统的思维理念。首先对整个系统的功能与系统提出总体的需求,架构出各主要的模块,如CPU、DSP、Memory、PMU、总线等,如下图的结构框图、以及各主要模块要素之间的关系。类似软件的编程,只是语言换成了verilog等硬件描述语言,进行编程与验证。对各功能模块进行版图的划分,确定好各模块的物理位置,以及按照系统的要求,Pin脚的接口定义等。
对一个公司来说,系统性的思维同样适用。只是基于公司作为一个系统的研究对象,公司是一个严密的组织,依据公司战略、业务、规模等的不同,会有不同的组织架构,有事业部制的、职能制的、矩阵制的。不同的组织架构,对各个子模块如何协同合作也会产生不同的影响。所以诊断一个企业时,需要深入观察公司各部分之间的协同合作是否顺畅,是否与公司作为整体的系统的战略相一致。
研究一个企业的时候,商业模式是我们一直很关心的。下图是非常出名的商业模式画布图,包括了重要伙伴、关键业务、核心资源、价值主张、客户关系、渠道通路、客户细分、成本结构、收入来源9个方面。这可以看作是研究企业的9个重要要素,需要着重指出的是这9个要素是相互关联,而不是孤立的静态的。举例来说,公司的价值主张是指通过产品和服务向消费者提供的价值,而这种价值是否能体现很重要取决于公司的关键业务,而公司的关键业务是否能顺利开展,取决于公司掌握的核心资源是否足够,而这种核心资源的稀缺性,往往决定了公司的成本、毛利等相关情况。所以可以看成是环环相扣,每一环运转不顺畅,将直接导致公司商业模式的缺陷。
从更大范围来说,系统的思考方式对一个产业的思考同样是如此。经典的波特五力模型分析方法就是一种很好的系统思考方法。一个产业的激烈竞争不是事物的巧合,而是五种力量要素之间的博弈,这种要素之间的博弈、以及力量之间的转换,决定了该产业当前的状态,以及未来可能的走向。当然还有其他各种产业分析模型,很多思想与系统的思维方式一致,只是要素的划分,边界的定义有区别。
系统的分析方法,特别注重全局的输入输出,以及内部各主要要素之间的互动,可以适用于许多的场景。
-
C++
+关注
关注
22文章
2108浏览量
73625 -
软件编程
+关注
关注
1文章
41浏览量
11296
原文标题:系统性的思维习惯
文章出处:【微信号:gh_0cdc890e93ea,微信公众号:电子信息产业洞察】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论