分享

匹配组织架构的系统会更好

 东北十三少 2023-05-11 发布于四川

传闻:某个组织需要编写一个COBOL和一个ALGOL编译器,当时有8个程序员可用。在对难度和时间做了初步的估计之后,安排5个人去写COBOL编译器,3个人写ALGOL编译器。结果,COBOL编译器的运行分5个步骤,ALGOL编译器的运行分3个步骤。

有人由此得出个推论:任何组织设计出来的系统(此处指广义的系统)的结构都会照搬这个组织的沟通结构。

这就是有名的康威定律。

从1967年起,已经有人开始对软件工程的一些理论进行实证研究,其中就包括了对康威定律的实证研究。虽然并没有一个完美的证明,但是这些研究也都表明软件结构对应到组织结构不但是一种趋势,而且还非常有必要。

因为任何一个系统都是由稍小一些的子系统相互连接组成的,而这些子系统又是由更小的模块相互连接组成的。如果系统中的每个模块都有一个与之对应的设计团体,即便两者之间不是一一对应的关系,因为同一个设计团体可能设计多个模块,那么系统的结构也已经映射到现实的开发团队结构之上了。

如果由两个不同的设计团体分别设计的模块之间需要做连接,那么这两个团体必然需要商量并确定一套接口规范,让两个模块可以进行沟通;如果这两个模块不需要做连接,那么两个设计团体就无需进行沟通。

也就是说,(软件)系统结构以及开发它的组织的结构之间是有紧密关联的。而且,软件的需求可能发生变化,开发团队的成员也可能发生变化。无论发生哪一种变化,系统都会随之改变。

康威定律还有一个可能的推论:系统的结构能和开发组织的结构高度对应的软件比那些不能对应的软件要“更好”。

一些实证研究将上述推论中的“更好”一词用开发效率和软件质量来衡量。研究结果表明匹配组织架构的系统在开发效率和软件质量方面确实会优于不够匹配的情况。

有鉴于此,我们应当在完成软件架构设计之后在决定开发团队的组织结构,使得那些有连接关系的模块的开发人员便于沟通,这将有利于我们开发出“更好”的软件系统。

这正是:

康威定律很神奇,结构匹配会更好
既然人家有实证,我们不妨来应用

参考数目:软件之道: 软件开发争议问题剖析,作者: Andy Oram Greg Wilson,出版社: 人民邮电出版社

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多