写点什么

发展不能违背康威定律

  • 2016-10-18
  • 本文字数:1085 字

    阅读完需:约 4 分钟

在 SpringOne 大会上,来自 Credera 的 Jason Goth、Micah Blalock 和 Patricia Anderson 介绍了他们如何使用康威定律调整一个客户的技术架构和流程,帮助他们扭转了生产率下降的趋势,提高了高质量代码的生产速度。

康威定律指出“设计系统的组织……其产生的设计等价于组织间的沟通结构。”也就是说,团队创建的东西依赖于组织内部的沟通方式。

在为他们的医疗客户创建自定义分析平台时,Credera 了解到,对于一个或两个并行的软件开发团队而言行之有效的架构和流程,在并行开发团队发展到五个时会迅速陷入僵局。Credera 的方案是,根据康威定律重新定义问题,调整技术架构和流程。最后,经过努力,Goth、Blalock 和Anderson 扭转了生产率下降的趋势,提高了高质量代码的生产速度。在2016 年8 月份举行的SpringOne 大会上, Credera 分享了他们的经验

起初构建代码时,只有两个并行 Scrum 团队,Credera 取得了初步的成功。因而,客户给他们安排了额外的工作。新工作需要另外增加几个并行开发团队,以应对同时到来的截止期。遗憾的是,这种规模的增长让他们的工作陷入了停滞。简单的代码变更需要级联修改多个下游服务。团队之间在工作时间里召开的沟通会议呈指数增长。不同团队的工作量差别很大,有些团队的成员很早就离开了,而其他团队则工作到深夜。士气下降,截止期已过,事情悬而未决。

为了匹配自己的沟通结构,Credera 团队从技术上改进了其软件设计。为了完善划分,他们在代码上应用了开 / 闭原则。在多个团队操作类似的代码时,这可以降低成本,但会导致团队编写重复的代码。他们将这一做法称为 GARY(继续前进,重复自己)。为了解耦大部分代码,他们创建了一个水平面,以防止许多与生成的重复代码相关的缺陷使他们多次“野蛮地重构”。

Goth、Blalock 和 Anderson 进行了组织变革,停止违背康威定律。代码标准被取消,只为开发人员提供了一份可以让他们快速从一个代码集迁移到另一个代码集的准则。一名成员充当软件开发过程中所有团队的负责人,推动团队之间的沟通。另一名资深成员 Blalock 则成为“献祭的羔羊”,负责会见客户以及与遗留代码打交道。虽然并不常见,但团队成员在冲刺过程中会在团队之间流动。结果是会议频次降低。团队工作量正常化,士气上升。最后,截止期不再那么令人焦虑。

该团队是受 Fred Brook 的著作《人月神话》所启发。通过那本书,他们认识到,沟通成本加上工作划分会导致效率变化。只有当工作可以划分时,你才可能通过增加团队成员来提高效率。

该团队采用了 Spring 平台,并将微服务作为项目的一部分。他们使用 Angular 和 Java 编码。

查看英文原文 Grow with Conway’s Law, Not Against It

2016-10-18 19:002597
用户头像

发布了 1008 篇内容, 共 402.1 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

【YashanDB知识库】数据库升级后用yasboot在线扩充备节点出现报错

YashanDB

数据库 yashandb

Zerto 10.0 Update 5 - 适用于本地、混合和多云环境的灾难恢复和数据保护

sysin

Zerto

RocketMQ实战—营销系统代码初版

EquatorCoco

数据库 RocketMQ 运维

Redis 持久化原理分析和使用建议

vivo互联网技术

redis 持久化

【YashanDB知识库】扩展redo大小

YashanDB

数据库 yashandb

【YashanDB知识库】共享超过32000字节字符串插入CLOB类型方案

YashanDB

数据库 yashandb

LibreOffice 25.2 (Linux, macOS, Windows) - 自由免费的全能办公套件

sysin

《一文讲透》第4期:KWDB 数据库运维(7)—— 集群规划

KaiwuDB

数据库 集群规划

【YashanDB知识库】DataX迁移Hive到崖山分布式

YashanDB

数据库 yashandb

【YashanDB知识库】分布式LSC表修改字段

YashanDB

数据库 yashandb

macOS Sequoia 15.3.1 (24D70) Boot ISO 原版可引导镜像下载

sysin

sequoia

深入剖析Base64加解密中遇到的坑点

快乐非自愿限量之名

前端

5G毫米波阵列天线仿真——CDF计算【CST仿真案例】

思茂信息

5G 仿真 CST软件

无问芯穹上架满血DeepSeek-R1国产适配,叠加Cursor开发效率飞升,附教程链接

科技热闻

Studio 3T 2025.2 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端

sysin

普通人也能轻松掌握的20个DeepSeek高频提示词(2025版)

王磊

TikTok运营中的IP问题解析

Ogcloud

TikTok tiktok运营 tiktok矩阵 TikTok矩阵运营

开发拍卖软件网站不再烧钱!低成本上线秘诀大揭秘!

软件开发-梦幻运营部

Topaz Gigapixel AI for Mac(AI图片无损缩放工具)v8.2.0激活版

小玖_苹果Mac软件

一文简单了解企业级数据安全管理办法核心以及详细措施等

行云管家

数据安全 堡垒机 企业数据安全

设计师怎么进行在线评审?2个实用软件盘点!

职场工具箱

效率工具 设计 设计师 软件推荐 在线白板

本地搭建DeepSeek和知识库 Dify做智能体Agent(推荐)

不在线第一只蜗牛

人工智能 DeepSeek

一文详解 RocketMQ 如何利用 Raft 进行高可用保障

阿里巴巴云原生

阿里云 RocketMQ 云原生

【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法

YashanDB

数据库 yashandb

征程 6 相比征程 5 对算子支持扩展的具体案例讲解

地平线开发者

自动驾驶 算法工具链 地平线征程6

Symantec Endpoint Protection 14.3 RU10 v14.3.12154.10000 下载

sysin

一个测试代币引发的「血案」:TST 从 0 到 5 亿市值始末

TechubNews

加密货币 加密市场 TST

超高清4K动态壁纸花见 Live Wallpaper & Themes 4K Pro for Mac激活版

小玖_苹果Mac软件

【YashanDB知识库】Springboot启动找不到崖山jdbc驱动的问题处理

YashanDB

数据库 yashandb

【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法

YashanDB

数据库 yashandb

发展不能违背康威定律_架构_Mikael Zandin_InfoQ精选文章