写点什么

发展不能违背康威定律

  • 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:002935
用户头像

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

关注

评论

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

数字化转型之数字资产知识库(springboot+es+vue+neo4j)

金陵老街

全文检索 知识图谱 Vue 3 spring-boot

Java—线程安全II

武师叔

6月月更

Java项目集成activity工作流,快速开发业务审批单据(低代码,敏捷)

金陵老街

敏捷 springboot Activity Vue 3 BPMN

还不知道npm私服?一篇教会你搭建私服并发布vue3组件库到nexus

Jianmu

ci 前端 npm Vue3 私服

NFT卡牌盲盒链游系统dapp开发搭建

薇電13242772558

智能合约 NFT

莫把暑假插错秧,代码哪有足球香,Alluxio足球青训营在线摇人!

Alluxio

微软 开源 足球 分布式, CCF开源高校行

一文掌握软件安全必备技术 SAST

SEAL安全

网络安全 软件安全 SAST工具 SAST

洞见科技当选中国信通院隐私计算联盟「副理事长+政务应用工作组组长」单位

洞见科技

隐私计算

技术分享| 云服务器的使用-nginx的安装及使用

anyRTC开发者

nginx centos 音视频 服务器

得物前端唤端业务场景和技术精讲

得物技术

前端 前端教程 等待唤醒 业务场景 前端工具

千亿参数“一口闷”?大模型训练必备四种策略

OneFlow

人工智能 模型训练 策略

Linux开发_动态静态库创建与Makefile规则

DS小龙哥

6月月更

运营商动态路由的神器 :IS-IS 协议

wljslmz

6月月更 路由协议 IS-IS

Vue-10-class的动态绑定

Python研究所

6月月更

影响软件公司开发价格的因素有很多,你知道吗?

开源直播系统源码

软件开发流程 直播系统 app源码 直播源码 定制软件开发

如何制定业务的故障分级标准?

华仔

架构实战营 故障定级 故障分级

【Python技能树共建】验证码实操2案例

梦想橡皮擦

6月月更

远程办公带来的挑战和变化 | 社区征文

编程攻略

初夏征文

JavaScript期约Promise

大熊G

JavaScript 前端 6月月更

java编程培训Mybatis的增删改查与获取参数值

@零度

mybatis JAVA开发

谈谈 JDK 和 SAPMachine 的关系

汪子熙

Java jdk jre SAP 6月月更

洞见科技荣获「最受投资人欢迎的隐私计算服务企业」奖

洞见科技

隐私计算 数据要素

开课报名|「Takin开源特训营」第一期来啦!手把手教你搞定全链路压测!

TakinTalks稳定性社区

开源 全链路压测 生产环境全链路压测 安全生产 稳定性保障

市值严重低估,现金15亿,百世走的路对吗?

科技新知

测试基础之:测试覆盖率

甜甜的白桃

软件测试 测试覆盖率 JACOCO 6月月更

大数据培训flink窗口(Windows)的表现形式

@零度

大数据开发

谷歌AI人格觉醒“喜提”热搜,我们找清华大佬聊了聊 AI 对话系统的惊人进展

硬科技星球

人工智能 谷歌 图灵测试

InfoQ 极客传媒 15 周年庆征文|手摸手教你在Windows安装Docker,一定要看到最后

迷彩

Docker 架构 运维 6月月更 InfoQ极客传媒15周年庆

企业知识管理系统应具备的功能

小炮

【直播回顾】战码先锋第五期:深入理解OpenHarmony系统启动,轻松踏上设备软件开发之旅

OpenHarmony开发者

Open Harmony

WebStorm注册码_WebStorm2022年激活永久实测有效

Geek_75f9e9

webstorm

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