lq是什么意思(产品必读)
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

编辑导语:设计系统的组织,由此产生的设计相当于组织内部和组织之间的沟通结构,但其思考的深度远不止于此。在这篇文章中,作者深入分析了康威定律,并详细解释了团队组织和产品架构设计。有兴趣的话,来看看吧。
"组织形式等于制度设计& quot——这是康威定律阐述的一个关键思想。康威法律(melconway.com)
原话如下:
这些组织的通信结构。-梅尔文康威(1967)
中文直译大致意思是:设计一个系统的组织,由此产生的设计相当于组织内部和组织之间的沟通结构。
但它的意识形态灵感远不止于此。
这篇文章的内容如下:
团队组织& amp产品架构设计。通信成本=n(n-1)/2。孤岛系统集成接口数量。康威定律与微服务的合理性。团队组织与管理。产品架构设计面试的时候,面试官问我们想问什么。当我们实在想不出什么的时候,就问问团队组织架构。
这不仅关系到入职后的汇报和合作,也关系到对产品体系架构的预估。
为什么?因为组织结构往往代表一种合作分工,而分工的产物就是产品。
所以团队组织形式首先体现在制度上。
比如苹果产品和微软产品的脚骨设计,就能形象地理解这句话。
从这张图片可以看出:
亚马逊是有等级的,有秩序的;Google架构清晰,但产品和部门交织混乱;脸书建筑是分散的,就像一个分散的网络;在微软内部,山头为王,军阀作风深入骨髓;苹果说了算,那个人众所周知;在甲骨文中,臃肿的法务部显然比工程部更重要。
很多年前的《第一财经周刊》,甚至有人试图炮制一张中国各大科技公司的结构图——百度、腾讯、华为、联想、阿里巴巴、新浪。
结果显示,它们之间也有很大的不同(与今天的实际情况不同):华为,技术创新导致矩阵结构的变化;阿里巴巴,马云的影子无处不在;新浪,靠微博画大饼;百度崇尚简单;联想,有大有小,却左右互斗;腾讯,产品和部门有着千丝万缕的联系,QQ是所有产品和服务的基石。
这给我们的启示是,我们想要什么样的制度,就要建立什么样的团队。
举个例子,如果按照业务边界划分系统,每个人按照一个业务目标把自己的模块做成小系统、小产品,你的大系统就会成长为下面这个样子,也就是微服务架构:
这个想法其实来源于康威定律。
二、沟通成本=n(n-1)/2 《人月神话》最著名的一句话是:
添加manpowertoalatesoftwareprojectmakesitlaterFred brooks,(1975年)
这是因为通信成本=n(n-1)/2。
沟通成本随着项目或组织中人员的增加呈指数增长。例如:
对于一个5人的项目团队,沟通渠道是5 *(51)/2=1015人,15 *(151)/2=10550人,50 *(501)/2=1225150人。
这是为什么呢?国外研究表明,灵长类动物的脑容量与其对应种群的大小有关;
推断人脑智能只能支持我们维持这么多关系:亲密朋友,5信任朋友,15亲密朋友,35随便朋友,150。150也成为了很多设计的参考。例如,某个系统的购物车最多允许200件商品(覆盖150件商品)。
所以一个大的组织,因为沟通成本/管理问题,总是被分成小的团队。每个管理者都被赋予了一定的责任,去做大系统的一小部分,他们与大系统有一个沟通的边界。
三、孤岛系统集成接口数量是一个案例:随着医院信息化建设的不断完善,医院逐步推出了HIS、EMR、PACS、LIS等多个业务系统。由于这些业务系统是由不同厂商开发的,每个系统的操作系统和数据库不同,导致不同业务系统之间需求调用复杂、接口数量多且无统一标准、数据交互效率低、维护困难等问题。
作为神话& quot人月& quot提出,随着一个项目或组织中人员的增加,通信成本等于n (n-1)/2,传统模式下每个孤立系统对接时的最大接口开发数也是N*(N-1)/2。
这就导致了很高的实现成本,于是出现了很多集成平台。
/p>集成平台的重要性在于,其不仅能够在各个系统之间实现统一集成和交互,同时为数据集成提供了可能。
通过将各个系统产生的数据集中存储并重新组织形成医院的数据仓库,集成平台为下一步数据分析创造条件,即充分挖掘数据价值进而形成一系列数字化应用支撑智能化决策,帮助医院实现真正数字化转型。
可以说,集成平台是医院数字化转型的重要基础。市场出现很多超融合架构承载集成平台,相较传统架构具备高可靠、高性能、简单敏捷等多种优势,将会成为企业集成平台基础架构选型的一个不可忽略的选项。
所以大的系统也会因此被拆分成一个个小团队负责的小系统(微服务是一种好的模式)。
微服务是指将应用功能最小化,原子化,尽可能减少应用服务之间的耦合,而后通过不同微服务组合出不同的功能,提供给用户。最大化服务的可重用性。
康威定律其实在半个世纪前就奠定了微服务架构的理论基础。
如果子系统是内聚的,和外部的沟通边界是明确的,能降低沟通成本,对应的设计也会更合理高效。复杂的系统需要通过容错弹性的方式持续优化,不要指望一个大而全的设计或架构,好的架构和设计都是慢慢迭代出来的。
带来的具体的实践建议是:在对应下衡量微服务的标准,我们很容易会发现他们之间的密切关系:
分布式服务组成的系统按照业务而不是技术来划分组织做有生命的产品而不是项目Smartendpointsanddumbpipes(我的理解是强服务个体和弱通信)通过MVP的方式来设计系统,通过不断的迭代来验证优化,系统应该是弹性设计的。自动化运维(DevOps)容错快速演化微服务的理念团队间应该是inter-operate,notintegrate。inter-operate是定义好系统的边界和接口,在一个团队内全栈,让团队自治,原因就是因为如果团队按照这样的方式组建,将沟通的成本维持在系统内部,每个子系统就会更加内聚,彼此的依赖耦合能变弱,跨系统的沟通成本也就能降低。
康威定律可归纳一些核心观点,如下:
第一定律:Communicationdictatesdesign(组织沟通方式会通过系统设计表达出来)
第二定律:Thereisneverenoughtimetodosomethingright,butthereisalwaysenoughtimetodoitover(时间再多一件事情也不可能做的完美,但总有时间做完一件事情)
第三定律:Thereisahomomorphismfromthelineargraphofasystemtothelineargraphofitsdesignorganization(线型系统和线型组织架构间有潜在的异质同态特性)
第四定律:Thestructuresoflargesystemstendtodisintegrateduringdevelopment,qualitativelymoresothanwithsmallsystems(大的系统组织总是比小系统更倾向于分解)
人与人的沟通是非常复杂的,一个人的沟通精力是有限的,所以当问题太复杂需要很多人解决的时候,我们需要做拆分组织来达成对沟通效率的管理。
组织内人与人的沟通方式决定了他们参与的系统设计,管理者可以通过不同的拆分方式带来不同的团队间沟通方式,从而影响系统设计。
我们要用一切手段提升沟通效率,能2个人讲清楚的事情,就不要拉更多人,每个人每个系统都有明确的分工,出了问题知道马上找谁,避免踢皮球的问题。
你想要什么样的系统设计,就架构什么样的团队,能扁平化就扁平化。最好按业务来划分团队,这样能让团队自然的自治内聚,明确的业务边界会减少和外部的沟通成本,每个小团队都对自己的模块的整个生命周期负责,没有边界不清,没有无效的扯皮,inter-operate,notintegrate。
做小而美的团队,人多会带来沟通的成本,让效率下降。亚马逊的Bezos有个逗趣的比喻,如果2个披萨不够一个团队吃的,那么这个团队就太大了。事实上一般一个互联网公司小产品的团队差不多就是7,8人左右(包含前后端测试交互用研等,可能身兼数职)。
作者:深度,微信公众号:产品找北
原文链接:https://mp.weixin.qq.com/s/blyD6R-pD-rHApRLZv93LQ
本文由@产品找北授权发布于人人都是产品经理。未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议