生产力、生产关系、康威定律
开篇先引用心理学导论的两句话:
Are Zebras White with Black Stripes or Black with White Stripes?
Everything is the way it is because it got that way.
万物如此,皆因其本――达西·汤普森.
生产力指具有一定生产经验和劳动技能的劳动者和他们所使用的生产资料结合起来, 从而在物质资料生产过程中所发生的力量, 也就是人类在生产过程中征服和改造自然界, 并获得适合自己需要的物质资料的能力.它是生产过程中人与自然的关系。
生产力包括三个要素: 劳动者、劳动资料、劳动对象.劳动者在生产力中是起主导作用的因素;劳动资料中的生产工具部分是生产力发展水平和性质的主要标志, 是划分经济发展时期的主要标志.科学技术被应用於生产过程, 渗入劳动力、劳动资料、劳动对象之中, 可引起他们素质的变化, 产生出巨大的物质力量, 从而转化为现实的直接的生产力.因此, 科学技术也是生产力.
生产关系指人们在物质资料生产过程中结成的相互关系.它的具体内容包括人们在物质资料的生产、交换、分配、消费等方面的关系.生产资料所有制是生产关系的基础.一定的生产资料所有制形式, 决定人们在生产中一定的地位和相互关系、一定的交换关系、一定的产品分配和消费关系。
(一)生产力和生产关系的矛盾
在生产方式中,生产力是内容,比较活跃,生产关系是形式,则相对稳定,按照内容和形式辩证关系的原理,内容要求形式与之相适应,因此,生产力和生产关系之间必然发生矛盾。
(二)生产力和生产关系的辩证关系
内容决定形式,形式反作用于内容。因此,生产力与生产关系就是决定与反作用的关系,这种关系是对立统一关系的进一步展开和具体化。
1. 生产力决定生产关系
( 1 )生产力的状况(包括生产力的性质、水平和发展要求)决定生产关系的状况、性质和形式。
就是说,有什么样的生产力,就会有什么样的生产关系。在生产力发展的一定质的阶段上,生产力的性质和水平决定与之相适应的生产关系的性质和具体形式。每一种现实的生产关系都是建立在一定性质和水平的生产力基础之上的。
马克思指出:“手推磨产生的是封建主为首的社会,蒸汽磨产生的是工业资本家为首的社会。”
( 2 )生产力发展的要求决定生产关系的变革。
在生产方式中,生产力既是决定的因素,又是最革命的因素,整个社会生产方式的变化总是从生产力的变化和发展开始的。
马克思指出:“各个人借以进行生产的社会关系,即 社会生产关系,是随着物质生产资料、生产力的变化和发展而变化和发展的。 ”(《马克思恩格斯选集》第 1卷,第363页。)
随着生产力的发展,就使原来由它所建立并同它相适应的生产关系,变得越来越不能适应,以至不能继续保持其稳定不变的状态。在这种情况下,生产关系就不得不进行部分的变革以继续维持它的存在;
而当这种生产关系已经完全不能适应生产力继续发展的客观要求时,就必须进行全面的变革,以新的适合生产力发展状况的生产关系来代替原来的、业已丧失其存在必然性的生产关系。所以,旧生产关系的灭亡、新生产关系的创立,都是客观的必然。
2. 生产关系对生产力能动地反作用
生产关系对生产力的反作用表现在以下两个方面:
( 1 )当生产关系同生产力的发展要求相适合时,它有力地推动生产力的发展。
新的生产关系之所以能够促进生产力的发展,有两个原因:
① 它为生产力诸要素的结合,特别是人与物的结合,提供了较好的形式,从而把潜在的、可能的生产力变为现实的生产力,能够比较充分地调动生产力中的积极因素,使其发挥作用。
② 它为生产力的发展提供了一个更广阔的空间,使生产力的进一步发展有了余地。
历史上生产关系的每一次合乎规律的变革,适应新的生产力发展的客观要求而形成的新的生产关系,都曾经促进了生产力的迅速发展。资本主义生产关系在它形成以后不到 100年的时间内所创造的生产力,超过了以往一切时代所创造的生产力的总和,就是一个证明。
( 2 )当生产关系不适合生产力发展要求时,它就严重地阻碍了生产力的发展。
这种阻碍作用分为两种情况:
① 当生产关系落后于生产力的状况及其发展要求时,对生产力的发展起阻碍作用。
② 当生产关系“超越”生产力的状况及其发展要求时,对生产力的发展也起阻碍作用。
康威定律
Soft skills are always hard than hard skills. 软技能比硬技能难。
老板听说最近流行“微服务”,问架构师咱们的系统要不要来一套?老板又听说最近流行“中台系统”,问架构师咱们要不要搞起来?其实,这些问题不用老板问,关注技术发展趋势的架构师每当听到新的技术或解决方案,都会暗中思忖是否应用到系统中。然而,用或不用,总不能凭感觉吧。此时,如果你能灵活运用康威定律,那么做出的判断将更加完美。
康威定律
康威定律是马尔文·康威1967提出的:“设计系统的架构受制于产生这些设计的组织的沟通结构。”通俗的来讲:产品必然是其(人员)组织沟通结构的缩影。
跨部门沟通是非常难的,系统各个模块的接口也反映了它们之间的信息流动和合作方式。

康威定律可谓软件架构设计中的第一定律,起初只是在杂志上的发表,后经过《人月神话》这本软件界圣经的引用,并命名为康威定律(Conway’s law),因此得以推广。
只通过简单的描述可能无法理解康威定律的精髓所在,原文中康威定律可总结为四个定律:
第一定律 组织沟通方式会通过系统设计表达出来。
第二定律 时间再多一件事情也不可能做的完美,但总有时间做完一件事情。
第三定律 线型系统和线型组织架构间有潜在的异质同态特性。
第四定律 大的系统组织总是比小系统更倾向于分解。
第一定律
Communication dictates design。
组织沟通方式决定系统设计。
这条定律重点是讲组织架构和沟通对系统设计的影响。组织的沟通和系统的设计之间紧密相连,特别是复杂系统,解决好人与人的沟通才能有一个更好的系统设计。
《人月神话》中总结出了随着人员的增加沟通成本呈指数增长的规律:沟通成本 = n(n-1)/2。举例说明一下:
5人项目组,需要沟通的渠道是 5*(5–1)/2 = 10
15人项目组,需要沟通的渠道是15*(15–1)/2 = 105
50人项目组,需要沟通的渠道是50*(50–1)/2 = 1,225
150人项目组,需要沟通的渠道是150*(150–1)/2 = 11,175
这也是为什么互联网公司都追求小团队的原因之一。沟通的问题会带来系统设计的问题,进而影响整个系统的开发效率和最终产品结果。
第二定律
There is never enough time to do something right, but there is always enough time to do it over。
时间再多一件事情也不可能做的完美,但总有时间做完一件事情。
人手永远是不够的,事情永远是做不完的,但可以一件一件来。这不就是软件行业中“敏捷开发”模式所解决的问题吗。面对这样的状况,敏捷开发可以做到不断迭代、持续交付、快速验证和反馈,并持续改进。
再牛的开发也会写出bug,再全面的测试覆盖率也无法测出所有的问题。解决方案不是消灭这些问题,是容忍一些问题的存在,然后通过适当的设计(冗余、监控、高可用设计)当问题发生时能够快速解决。
几个开发人员的小公司,去追求微服务、去追求中台架构,这是追求完美吗?不是,是找死。
好的架构不是买来的,也不是设计出来的,而是根据业务落地生根长期演化来的。
第三定律
There is a homomorphism from the linear graph of a system to the linear graph of its design organization。
线型系统和线型组织架构间有潜在的异质同态特性。
这一定律是第一定律的具体应用。想象一下如果公司的组织架构是这样的:团队是分布式,每个团队都包含产品、研发、测试、运维等角色。而此时系统是单块的,项目沟通和协调的成本是巨大的,弄不好还会打起来。

如果将单块的系统拆分成微服务,每个团队负责自己的部分,对外提供对应的接口即可,互不干扰。系统效率将得到提升。这与软件设计中的高内聚、低耦合是相通的。

直白的说就是想要什么的系统就搭建什么样的团队,有什么样的团队就搭建什么样的系统。需要前后端分离的系统就搭建前后端分离的团队,反之,拥有前后端分离的团队,可以设计前后端分离的系统。当然,如果能统筹管理,拥有重组团队或设计系统架构的权利,那就再好不过了。通常情况下让两者形成1:1的映射关系,更加高效。
第四定律
The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems。
大的系统组织总是比小系统更倾向于分解。
“话说天下大势,分久必合,合久必分。”系统越复杂,越需要增加人手,人手越多,沟通成本也呈指数增长。分而治之便是大多数公司选择的解决方案。分不同的层级,分不同的小团队,让团队内部完成自治理,然后统一对外沟通。
小结
架构不仅仅需要技术,在大公司尤其需要政治,所谓的架构的政治。
杨波老师曾在他的文章《
每个架构师都应该研究下康威定律》中提到:“政治指的是和他人协作将事情搞定的艺术,架构是一种社交活动,在技术的世界里,个人主义很容易被打败,即使你的目的是好的技术是最优的,技术决策是政治决策(technical decisions are political decisions),一个技术产品,一波人可以做,另一波人也可以做,到底谁做的好,真不好说,不管谁做,都给业务套上了一副手拷。
https://mp.weixin.qq.com/s/0LXQNTY-VuftsZcbXyjM-A
生产力决定生产关系,生产关系影响企业的组织模式,组织模式倒逼着系统架构适应组织架构,所以有了微服务、中台,这就是康威定律。
许多互联网时代的先锋企业,已经敏锐地嗅到了时代的气息,革自己的命,推动企业架构升级。比如阿里的“大中台,小前台”、“数据-业务双中台”的战略演进,海尔的小微企业、人单模式、创客平台,都是在顺应时代的发展进行组织变革,组织变革驱动IT架构变革。