所谓康威定律,来自于Melvin Conway1968年写的一篇论文,原文是Any organization that design a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.其大意是设计系统的组织,其产生的设计等同于组织之内、组织之间的沟通结构。更加直白一点的说,一个团队设计出来的系统,和这个团队的组织结构,交流方式有很大的关系,如果一个团队是松耦合的,那么开发出来的产品也将是松耦合的。反之亦然。
在软件开发的实践中,会出现下面的现象:
-如果一个团队的成员地处世界各地,那么他们开发出来的系统,模块化程度会更高。
-一个复杂的系统更有效的方式是将复杂系统分解成为多个微服务来完成。微服务的特点是松耦合,高内聚。所以,微服务适合一个在同一屋顶下工作的小型团队来完成。他们可以充分地,及时交流。而且这个团队承担这个微服务的所有工作,包括所有技术的开发,维护和维护。
康威定律也告诉我们,组织架构按照技术架构来组建,会使技术开发的效率更高。
有此想到的。。。
细想起来,康威定律是有一些道理的。沿着康威定律的思维方式进一步地思考,我们会发现更多有意思的话题。
每一个产品看上去是一个没有生命的物件,不过它们都是由一群人开发出来的。开发者的精神,文化和道德会成为该产品的基因。特别是进入了AI 时代后,软件越来越无法通过最初的测试和debug 来确定它们未来的行为。也许它们会越来越贪婪,狡猾,虚伪,善于伪装,也可能会越来越善良和善解人意。这一切也许就是由该软件原始的开发者赋予它们的道德基因决定的。